Research Areas
The research interests of the group spans a wide range of topics.
The links below connect to overviews of the main areas of research within the group. Each summarises our work, and provides links to introductory papers and projects in these areas:
Current Research Areas
Requirements and Software Enginering: Members of the group have extensive experience in the provision of methods to support requirements elicitation and analysis, in the adaptation and use of formal specifications, and in the provision of software support tools for aspects such as method guidance, animation and interpretation of requirements specifications, and reuse of specifications. more>
Software Architecture, Design and Analysis: The CONIC, Rex and Regis work demonstrated the utility of using a separate architectural language for describing system structure. Current work is centred on the Darwin language and includes investigation of dynamic configuration management, self-organising software architectures, and mobile systems. more>
Distributed Systems Management and Security Policies: Distributed systems management involves monitoring the activity of a system, making management decisions and performing control actions to modify the behaviour of the system. Policies are one aspect of information which influences the behaviour of objects within the system. more>
Distributed Databases: The group has been involved in research into advanced techniques for database schema integration. In collaboration with a group at Birkbeck College, a framework for the definition of schema transformation rules has been developed, which may be applied between database schemas which are both physically and semantically heterogeneous in nature. more>
Ubiquitous Computing: The overall focus of the DSE group in this research area is to provide a sound Software Engineering approach to adaptive mobile and ubiquitous computing systems that covers the full life-cycle from requirements engineering, to specification design and implementation. more>
Feedback, Evolution and Software Technology: This group focuses on the study of feedback and business process as systems in the system theoretic sense and seeks to identify empirical and theoretical foundations that contribute to the intellectual and managerial mastery of such processes. more>
Large-Scale Distributed Systems: The goal of this research area is to support the architecture and engineering of scalable and robust large-scale distributed applications. We investigate new abstractions and infrastructures for building Internet-wide applications and are interested in the unique algorithmic and data management challenges in this domain. more>
Past Work
In the area of distributed systems, the group has been involved in distributed systems research for 20 years, receiving funds both from the EPSRC and industry. A concrete result was the development of the CONIC Environment for constructing and managing distributed systems, particularly for embedded applications. CONIC provided a comprehensive set of tools for program compilation, configuration, debugging and execution in a distributed environment. Flexible configuration, modularity and reuse of software components was facilitated by separation of the language for programming individual task modules from the language for configuring programs from predefined modules. In addition, CONIC catered for dynamic configuration, supporting on-line modifications to a running system. Users of the CONIC environment included both industry (British Coal, British Petroleum Research Centre, GEC Research PLC, British Telecom Research Laboratory, and Intracom) and academic centres in Belgium, Brazil, Canada, France, Germany, Greece, Hong Kong, Japan, Korea, Sweden, USA and the UK. This work was continued in a number of related projects, such as the REX Project , which aimed at providing a software environment for the development and maintenance of reconfigurable and extensible distributed and parallel systems. Recent work was conducted in the Regis project to provide support for distributed programming, including open systems connection. Darwin is used as a declarative architecture language supporting both static and dynamic structures.
The CONIC, Rex and Regis work demonstrated the utility of using a separate architectural language for describing system structure. Current work is centred on the Darwin language. This supports multiple views, including both a service view for system construction and a behaviour view for system modelling and analysis. An environment, the Architect's Assistant , supports the design of distributed Darwin/Regis programs.
Behaviour modelling is supported by modelling the behaviour of individual components and composing them to form composite components based on the architecture. The work thus exploits the positive experience in the use of configuration languages for system description and construction as the basis for formal specifications, i.e. using configurations of specifications as a means for specifying and analysing systems in a compositional manner. The work, which was conducted in the TRACTA project, uses LTS (labelled transition systems) as the underlying formalism, with specifications given in FSP (Finite State Processes), a process algebra. Model checking is provided by the LTSA analysis tool, which supports graphical LTS displays, animation, and safety and progress checking.
Future Directions
In addition to the work described under the areas above, the following are new areas of research which are currently being developed:
- Integrating requirements and architectures
- Analysis of requirements for safety-critical systems
- Self-organising architectures
- Policy based programmable networks
- Mobile systems, e.g. for medical applications
- Trusted internet services and e-commerce
- Integration of heterogeneous distributed databases