ForSyDe-Atom: Design of Heterogeneous Embedded Systems : Taming Complexity with Layers, Atoms and Patterns

Abstract: The design of embedded systems is inherently complex for two main reasons. Firstly, it entails the combined knowledge and results from a vast set of mature, well-established, yet separate disciplines, such as electrical engineering, computer science, mechanical engineering, etc. Secondly, it needs to account for the collective behavior of computing elements, infrastructure and physical environment. This behavior cannot be derived from the sum of its constituent components, rather it emerges from the manifold feedback interactions between them. One of the main tools that have enabled engineers to guide the development of systems with unprecedented complexity is abstraction, that is, capturing essential properties of phenomena into mathematical, well-behaved analyzable models.  Yet combining models from different disciplines is largely limited due to the fact that these models, although well-acknowledged, are most often incompatible.  In a system design process, this leads to  the discovery and understanding of unwanted or hazardous behaviors during later stages such as prototyping or deployment phases, when design reiterations are extremely costly.This thesis introduces ForSyDe-Atom, a formal framework intended as an entry point for the disciplined design of embedded systems. This framework provides a set of rules for combining several domain specific languages as structured, enclosing layers in order to orthogonalize the many aspects of system behavior, yet study their interaction in tandem. It enables systematic exploitation of design properties in a system design flow by facilitating the step-wise projection of certain layers of interest, the isolated analysis and refinement on projections and the  seamless reconstruction of a system model from (possibly refined)  projections. As examples of languages hosted by this framework, five layers are presented: one for capturing timed interactions in heterogeneous systems, one for extending behaviors with controlled effects, one for structured parallelism, one for modeling uncertainty and one for describing component properties. The modeling capabilities are demonstrated through numerous didactic examples and four large case studies from the application domains of digital signal processing and avionics. A set of strategies for parallelizing timed simulation models, together with a preliminary component-based synthesis flow towards embedded platforms further highlight the potential of this framework as an entry point to system design.