.: topics

The following is a list of suggested PhD topics. Most of these could be reduced in scope to make a MSc dissertation. If you are a student interested in any of these topics, please contact me.

Empirical Evaluation of Model Driven Engineering

The term Model-Driven Engineering (MDE) refers to the systematic use of models as primary artefacts during the engineering process. MDE has recently become popular in both academia and industry as a way to handle the increasing complexity of modern software, and, by many, is seen as the next step in increasing the level of abstraction at which we build, maintain and reason about software. The recent trend towards MDE was triggered by the Object Management Group’s standardization of a particular MDE process, Model Driven Architecture (MDA), in 2001.

MDE claims many potential benefits to software development, the most important of which are gains in productivity, portability, maintainability and interoperability of software-intensive systems. However, there is currently a distinct lack of empirical evidence to support these claims. Rather, companies tend to adopt MDE based not on an analysis of how it will affect their business but on perception or the advice of evangelists.

The aim of this thesis is to provide a scientific foundation for MDE adoption. In essence, it will try to understand empirically which factors lead to successful adoption of MDE and which do not. A secondary aim is to develop a theory of software modellers’ cognitive processes. The former will have immediate impact on MDE tool developers and MDE end-users by cataloguing what works in MDE and what does not work. The latter will have longer term, broader impacts on the entire discipline of software design since its results will inform the future generations of software design tools.


Bio-inspired Software Engineering for Next Generation Open Systems

This thesis will study self-organization in biological organisms as a way to inspire radically new principles for the software engineering of next generation open software-intensive systems. Open systems – that is, collections of interacting components allowing modifications not conceived by the original design – are now widely researched and developed for a variety of contexts, including smart office applications, assisted living and industrial monitoring systems. The state-of-the-art in open systems development is that, in practice, it is manually-intensive and time-consuming to modify the component configuration (e.g., to add a component with a new interface). Human engineers must get involved in complex integration tasks to integrate new components, as well as challenging retuning tasks to ensure that overall system goals are maintained.

Radically new engineering principles are needed to rethink how we engineer open systems and provide innovative capabilities that allow them to autonomously self-organize when components are added or removed, when environmental conditions change, or when retuning of system goals is necessary. Despite advances in modularization technologies, conventional software engineering techniques do not scale to support the vision of self-organizing systems because, whenever a new component is added, unintended side-effects inevitably break existing functionalities. In other words, as open systems grow to include vast numbers of components, current software engineering technologies will not be able to handle the inherent complexity.

Complexity and contingency, however, are ubiquitous in biology. There are many examples of cellular organisms which self-organize but are not structured in a way that maps well to existing computer science notions. Traditional software engineering techniques are plug and play solutions based on the principle of divide and conquer. However, biology does not work like this. This is evidence therefore that the self-organizing capabilities of biological organisms, which are not reflected in mainstream thinking in computing, could inspire novel organizational rules and patterns. These patterns could represent a step change in software systems engineering and could enable true self-organization in the systems of tomorrow.

 

 

 

 

 


 



















Web site contents © Copyright Jon Whittle 2006, All rights reserved.
Website templates