Software Engineering

The research activities of the Software Engineering group focus on producing accurate models of software that can be analysed in the early stages of software development. Such software models can be used to show feasibility of planned software systems, explore design alternatives and verify specified properties of software systems. Software models are particularly useful in critical domains where human life or large amounts of money are at stake.

RESEARCH IN THE SOFTWARE ENGINEERING GROUP

The group works towards integrated “tool chains” for comprehensive Model-Based Design (MBD) of Cyber-Physical Systems (CPSs). These tool chains will support the multidisciplinary, collaborative modelling of CPSs from requirements, through design, down to realisation in hardware and software. This will enable traceability at all stages of the development.

This will support the holistic modelling of CPSs, allowing system models to be built and analysed that would otherwise not be possible using standalone tools. We will integrate existing industry-strength tools with high Technology Readiness Levels in their application domains, based centrally around Functional Mockup Interface (FMI)-compatible co-simulation. The focus is on the pragmatic integration of these tools, making extensions in areas where a need has been recognised. The tool chains will be underpinned by well-founded semantic foundations that ensure the results of analysis can be trusted.

The tool chains will provide powerful analysis techniques for CPSs, including connection to SysML; generation and static checking of FMI interfaces; model checking; Hardware-in-the-Loop (HiL) and Software-in-the-Loop (SiL) simulation, supported by code generation. The tool chains will allow for both Test Automation (TA) and Design Space Exploration (DSE) of CPSs. The technologies will be accompanied by comprehensive method guidelines that describe how to adopt the approach, lowering entry barriers for CPS development.

OVERTURE MODELLING AND ANALYSIS OF DISCRETE AND REAL-TIME SYSTEMS

The Overture Tool is an open-source integrated development environment (IDE) for developing and analysing VDM models. The tool suite is written entirely in Java and built on top of the Eclipse platform.



CRESCENDO CO-SIMULATION FOR MODELLING AND DESIGNING CYBER-PHYSICAL SYSTEMS

The Crescendo Tool is a modelling environment for combining continuous timesystem models with discrete event controller models through co-simulation to allow multidisciplinary modelling, including modelling of faults and fault tolerance mechanisms.
The Crescendo Tool was developed in the DESTECS EU FP7 project.

 

SYMPHONY MODELLING AND ANALYSIS OF SYSTEM OF SYSTEMS

The Symphony Tool supports developers in building models of Systems of Systems and analysing the global System-of-System-level properties of these models for exploring alternative architectures and allocations of responsibilities to constituent subsystems.

The Symphony Tool was developed in the COMPASS EU FP7 project.

 

VERIFICATION AND VALIDATION RESEARCH

The software tools described above deal with the problem of verification and validation on various levels: software, systems and systems of systems. We investigate specific techniques for verification and validation in particular, simulation, co-simulation and formal proof as well as their combination. As a result of this approach, we produce scientific and technological advances in specialised areas and methodological advances that are necessary to get the highest benefit in practical applications.

The importance of this work is given by the ever-greater role software plays in all kinds of systems. Advance knowledge of its suitability and correct functioning becomes increasingly important.