PhD topics on Self-adaptive and Self-aware Systems.
by  Dr. Nelly Bencomo, Aston University

Key terms: SE and RE for Self-adaptive, Autonomous and Self-aware Systems,  models@run.time, software architecture for self-adaptive systems, links between SE, RE and AI.

--->>> I am offering 2 scholarship advertised .  <<<--- (TO START in 2017 ) The students will be co-supervised with Dr. Antonio Garcia.

scholarship 1:

scholarship 2:

Examples of different research topics I would like to develop are:

- Decision-making under Uncertainty for Self-adaptation (more info here)

- Requirements-aware Systems for Self-adaptation under Uncertainty (more info here)

- Synergies and Applications of Artificial Intelligence and Software Engineering to develop Self-adaptive, Autonomous and Self-aware Systems. (more info here)

- [ PROPOSE YOUR OWN TOPIC HERE ], taking into account the key and relevant terms and topics explained above.

More information and current results about these research topics can be found in .Any further information can also be required to nelly at

Further context of the research topics  named above are:

- Decision-making under Uncertainty for Self-adaptation: Different modelling techniques have been used to model decision-making of self-adaptive systems (SASs). Different design strategies can have different effects on QoS (sometimes related to non-functional requirements) which are specified using weighted contribution-links associated with a utility function. The final decision about what strategy to use is based, among other reasons, on the utility function that takes into account the weighted sum of the different effects on the QoS properties. Furthermore, one of the main challenges about decision-making in self-adaptive systems is to deal with uncertainty during runtime. New techniques are needed to systematically revise the current model when empirical evidence becomes available from the deployment (i.e. at runtime). The use of AI techniques can be an interesting path to follow in order to tackle decision-making under uncertainty for self-adaptation (relevant publications NIE2014 and SEAMS-2013).

- Synergies and Applications of Artificial Intelligence and Software Engineering to develop Self-adaptive, Autonomous and Self-aware Systems: Our argument is that AI techniques can support the development of increasingly complex SE systems as in the case of self-adaptive and self-aware systems. Also, SE plays an important role in easing the development activities associated with AI tools and its applications such as autonomous robotics. Our own focus is on the link that favours the development of autonomous and self-adaptive systems. (relevant publications NIE2014 and SEAMS-2013).

- Requirements-aware Systems for Self-adaptation under Uncertainty


The development of software-intensive systems is driven by their requirements. Traditional requirements engineering (RE) methods focus on resolving ambiguities in requirements and advocate specifying requirements in sufficient detail so that the implementation can be checked against them for conformance. In an ideal world, this way of approaching the software requirements can be successful. Requirements can be specified clearly, updated as necessary, and evolutions of the software design can be made with the requirements in mind.

Increasingly, however, it is not sufficient to fix requirements statically because they will change at runtime as the operating environment changes. Furthermore, in modern software systems there is growing uncertainty about the environment and so requirements changes cannot be predicted at design-time. The above has led to the development of self-adaptive systems (SASs), which have the ability to dynamically and autonomously reconfigure their behaviour to respond to changing external conditions.

A key argument is that current software engineering (SE) methods do not support well the kind of dynamic appraisal of requirements needed by a SAS. In most software, information about the definition and structure of requirements is lost as requirements are refined into an implementation.

This research proposal is based on a new paradigm for SE, called requirements-awareness (also known as requirements reflection), in which requirements are reified as runtime entities. This allows systems to dynamically reason about themselves at the level of the requirements - in a similar way that architectural reflection currently allows runtime reasoning at the level of the software architecture. We believe that requirements-awareness (i.e. requirements reflection) will support the development and management of SASs because it will raise the level of discourse at which a software system is able to reflect upon itself.

Different complementary and inter-linked areas needing research to realize requirements-aware systems have been already identified:

1. Run-time representations of requirements: the first challenge is the runtime representation of requirements in a form suitable for introspection and adaptation. Introspection implies the ability of a runtime entity to reveal information about itself.

2. Evolution of the requirements model and its synchronization with the architecture: Any runtime re-assessments to the requirements must, of course, be reflected in the running system and the crucial link to enable this to happen is to synchronize the runtime representation of the requirements and the software architecture. Therefore a major challenge of requirements reflection is to maintain this synchronization as either the requirements are changed or the (runtime) architecture is changed.

3. Dealing with uncertainty: a key additional challenge is to deal with the inherent uncertainties of self-adaptive systems. Uncertainties arise because of the stochastic nature of events in the environment, limited sensor capabilities, and difficulties in predicting how the modification of system services will affect agents' behaviors and the system goals.

We are looking for PhD students willing to pursue further research in the three areas named above.  We foresee that each research area corresponds to at least one PhD research topic.

Dr. Bencomo has already been working on the design and implementation of systems with the ability to dynamically observe and reason about its requirements (partially tackling challenge 1). However, other techniques can and should be developed. Also, further research is required to study how existing requirements languages (like RELAX) and mathematical techniques (based on Fuzzy Logic or Bayesian reasoning) can be applied to deal with uncertainty so that self-adaptive systems have run-time flexibility to temporarily suspend some requirements in favour of others that is, we envisage run-time trade-offs of requirements being made as the environment changes.

More information and current results about these research topics can be found in my publications.

Any further information can also be required to