Research

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.

  • 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