Rechercher des projets européens

Synthesis Technologies for Reactive Systems Software Engineers (SYNTECH)
Date du début: 1 avr. 2015, Date de fin: 30 sept. 2020 PROJET  TERMINÉ 

The design and development of open reactive systems, which compute by reacting to ongoing stimuli from their environment, and include, for example, mobile applications running on smart phone devices, web-based applications, industrial robotic systems, embedded software running on chips inside cars and aircraft, etc., is a complex and challenging task. Despite advancement from low-level assembly languages to higher-level languages with powerful abstraction mechanisms, and the use of automated testing and formal verification, reactive systems software development is still a mostly manual and error-prone iterative activity of coding and debugging.A fundamentally different alternative approach to reactive systems development is synthesis, the automatic creation of correct-by-construction software from its specification. Synthesis has the potential to transform the way open reactive systems software is developed, making the process more effective and productive, and making its results more reliable and usable. However, while important advancements have been recently made on the algorithmic aspects of synthesis, no work has yet taken advantage of these achievements to change software engineering practices from “program centric” to “specification centric”. No effective end-to-end means to use synthesis are available to engineers, and the potential revolutionary impact of synthesis on the engineering of reactive systems software is far from being fully explored. The proposal targets four objectives: a new, rich specification language, tailored for synthesis and for use by software engineers; a set of new methods for specification centric development; tool implementations in ‘killer app’ application domains; and systematic evaluation with engineers. The research aims to unleash and evaluate the potential of synthesis to revolutionize reactive systems software development and to open the way for new directions in software engineering research and practice.