Research Interests
- 
Distributed computing: architecture description languages and support environments; distributed algorithms; dynamic configuration and self-organising systems.
 - 
Software architectures: Architectural Description Languages (ADL): structural concepts; underlying theory; application to the specification, analysis and construction of concurrent and distributed software systems.
- 
Darwin Architecture for Concurrent and Distributed systems
 
 - 
 - 
Behaviour analysis: compositional techniques for modelling and analysis of concurrent and distributed systems specified in the Finite State Process (FSP) process algebra, Labelled Transition Systems (LTS) and Compositional Reachability Analysis (CRA); probabilistic models.
- 
LTSA Extensions:
 
 - 
Software evolution and change: Change as fundamental in architecture definition: rigorous techniques for unplanned change, decentralised development and conflict detection using ADLs.
- Evolve is a flexible and lightweight software tool for software component reuse and evolution, providing a more principled way to construct and maintain software systems than approaches such as dependency injection
 
 - 
Adaptive software systems: rigorous architectural approaches to self-organised adaptive software, including dynamic planning, component assembly and execution.
 - 
Requirements analysis: multiple perspectives (ViewPoints): inconsistency; requirements evolution, synthesis of behaviour models from scenarios and goals; experimental plugin version of LTSA; requirements elaboration combining model checking and machine learning.
 - More Tools