Computing Sciences
Currently available projects
Software Engineering Agents: Autonomous Exchange and Interpretation of Software Engineering Information
- School:
Computing Sciences
- Primary Supervisor:
Dr Joost Noppen
Information
- Start date: October 2013
- Programme: PhD
- Mode of Study: Full Time
- Studentship Length: 3 year studentships have a (non-funded) 1 year ‘registration only' period
How to Apply
- Deadline: 28 February 2013. NB Applications are processed as soon as they are received, so early application is encouraged.
- Apply online
Fees & Funding
- Funding Status: Competition Funded Project (EU Students Only)
Further Details - Funding Conditions:
Funding is available to EU students. If funding is awarded for this project it will cover tuition fees and stipend for UK students. EU students may be eligible for full funding, or tuition fees only, depending on the funding source.
- Fees: Fees Information (Opens in new window)
Entry Requirements
- Acceptable First Degree:
Computing Science, Software Engineering
- Minimum Entry Standard: The standard minimum entry requirement is 2:1
Project Description
The development of a software system is a complex activity and over time many different models, such as UML (I), have been proposed to describe various aspects of the system under development. These models differ in the viewpoint they take of the software system. For example, a class diagram defines a structural view on the system and a sequence diagram defines a behavioural view. Many more models and viewpoints have been proposed, such as architectural models (II), goal models, feature models (III) etc.
Each of these models defines a unique view of the software system being developed and therefore contains unique information about this system. They form a complementary description of the system, their combined information more than any that can be found within a single model.
However, more often than not the relations between these models are not made explicit. Software developers move from one model to the next during software development and find it hard to take along the knowledge and information they have acquired in their previous modelling activities.
Even when the model of a completed development phase contains valuable information for the new model to be designed, it is hard to consider this information due to the lack of systematic support. Nevertheless, this information can be extremely valuable during software development. For example consider examining the consistency between class diagrams and sequence diagrams from UML. Whenever an object occurs in a sequence diagram but has no corresponding class within the class diagram, this is a potentially critical omission that needs to be addressed.
While some families of models have tried to define their mutual relationships (for example within UML) it can be argued that it is not feasible to define the relationships among all models in detail. The fact that new models are being created on a regular basis only strengthens this argument. Unlocking the knowledge and information of existing models when creating a new view of a software system therefore requires a more flexible and dynamic approach.
This project aims to achieve such a flexible and dynamic approach by using autonomous programs called agents (IV). Each agent will examine and analyse a particular type of model, then interact with other agents to exchange knowledge to further their own understanding. This new approach will investigate how relationships between models can be established dynamically by information exchange between agents based on a minimal set of common knowledge. A novel way of information modelling, exchange and interpretation will be developed to enable the extension of the approach to new models that may be developed in the future.
This project will involve examining existing model relationship approaches, automated interpretation of software engineering models, defining a common model for information interchange, and implementing automated tool support to perform the autonomous exchange and interpretation of software engineering information. Once the tooling is completed empirical experiments (V) need to be performed to assess the accuracy and quality of the approach.
References
(i) The Unified Modeling Language Reference Manual by James Rumbaugh, Ivar Jacobson and Grady Booch
(ii) David Garlan, Robert T. Monroe and David Wile. Acme: Architectural Description of Component-Based Systems. In Foundations of Component-Based Systems, Pages 47-68, Cambridge University Press, 2000.
(iii) K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson, "Feature-Oriented Domain Analysis (FODA) Feasibility Study," Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, Technical Report CMU/SEI-90-TR-021 , 1990. http://www.sei.cmu.edu/library/abstracts/reports/90tr021.cfm
(iv) Software Agents: An Overview, Hyacinth S. Nwana. Knowledge Engineering Review, 11(3):1–40, September 1996. Cambridge University Press.
(v) Barry Boehm, Hans Dieter Rombach, and Marvin V. Zelkowitz (eds.), Foundations of Empirical Software Engineering — The Legacy of Victor R. Basili, Springer-Verlag, 2005, ISBN 3-540-24547-2.
Apply online


