Introduction: Modeling, Analysis and Synthesis of Embedded Software and Systems
Alberto Sangiovanni-Vincentelli,Haibo Zeng,Marco Di Natale,Peter Marwedel
DOI: https://doi.org/10.1007/978-1-4614-3879-3_1
2013-01-01
Abstract:Embedded systems are increasingly complex, function-rich and required to perform tasks that are mission- or safety-critical. The use of models to specify the functional contents of the system and its execution platform is today the most promising solution to reduce the productivity gap and improve the quality, correctness and modularity of software subsystems and systems. Models allow to advance the analysis, validation, and verification of properties in the design flow, and enable the exploration and synthesis of cost-effective and provably correct solutions. While there is (relative) consensus on the use of models, competing (and not necessarily compatible) approaches are explored in the academic and industrial domain, each with its distinctive features, strengths, and weaknesses. Modeling languages (and the accompanying methodologies) are today roughly divided as belonging to the Model-Based Design (MBD) or Model-Driven Engineering (MDE) approach. Component-based development is a desirable paradigm that applies to both modeling styles. Research work tries to define (and possibly widen) the range of model properties that can be analyzed and demonstrated as correct, providing methods and tools to this purpose. Time properties are an important subset, since they apply to the majority of the complex and distributed systems in the automotive, avionics, and controls domains. A synthesis path, with the methods and tools to generate a (provably correct) software or hardware implementation of a model is a necessary complement to the use of an analyzable modeling language, not only to improve efficiency, but to avoid the introduction of unwanted errors when the model is refined into its implementation.