WP4 - Synthesis in model-based systems engineering
Partners Involved: IMP / ULEIC / TUE / UBA
Model-based engineering can play a key role in addressing the demands that system complexity, time-to-market and development costs reduction place on software systems engineering processes. Control synthesis naturally supports model-based software engineering as it provides a transformational approach from requirements towards implementation that is sound and automatic.
Synthesis is a formal method for automatically generating programs from formal descriptions of desired goals. These programs then, by construction, fulfil their specified goals in a dynamically evolving environment. Synthesis requires (i) formalizing informal goal descriptions and modelling the system environment and (ii) feeding these formal descriptions to a program generator. Goal formalization is covered in other workpackages of this proposal. In this work package we aim to research, and develop, program generators that will make synthesis viable, cost effective, and widely applicable in model- based systems engineering. We aim to investigate the following weakness points of current approaches to synthesis and its tailoring to the usage in the context of model- based software engineering. Our goals are partitioned to three objectives: scalability of synthesis algorithms, synthesis for distributed systems, and domain specific applications of synthesis.
- Scalability. To significantly extend the capabilities of synthesis in order to handle realistic, and therefore much larger and more complex, specifications. We aim to address the problem of scale through the use of abstraction and domain specificities.
- Distributed Synthesis. To develop efficient synthesis techniques that produce correct programs for multiple components cooperating to achieve a common goal, and to integrate such solutions in existing control systems. We refer to distribution as the partitioning of a global task to be synthesized between components whose combined behaviour gives rise to the desired functionality. Distribution fulfils several vital parts in applicability of synthesis. In a computing world that goes towards ubiquitous systems and cloud computing, the availability of a central control is not guaranteed, making distributed synthesis an important area of research. Even in cases of single agents, the various parts of the agent may need separate control plans and may have to act semi-independently. Distribution is therefore desirable almost in all aspects of synthesis. Finally, distribution can play an important role in making synthesis scale to larger specifications by producing parts and combining them together.
- Integration with Model-Based Systems Engineering. To devise effective synthesis techniques that integrate with model-based software engineering activities and languages. In particular, to integrate with: a) Novel requirements engineering approaches, enabling the application of synthesis at higher levels of abstraction (thus addressing complexity issues) and seamless adoption of synthesis technology. b) Model-based testing techniques, allowing the development of thorough and directed testing strategies for reactive systems. c) Devise a model-based engineering framework integrating models written in different languages, covering different components or different aspects of a system. We will use the Common Interchange Format to base transformations between different languages and tools.