Embedded Software and Systems: Challenges and Approaches
One of the most pervasive applications of computing is information processing tightly integrated with physical processes. Embedded computing rapidly takes over the role of being a universal integrator for physical systems. This trend is based on a fundamental technical reason: digital information processing is uniquely suitable for controlling and implementing complex interactions among physical system components. The expanding integration role of computing challenges the state-of-the-art in both system and software design. First, the traditional separation of related design disciplines is not maintainable. Predictability of the design requires integrated modeling and analysis of physical processes and information processing. Second, the narrow focus of current software technology on functional composition is not sufficient. Essential physical properties of embedded computing systems, such as timing, noise or fault behavior, cut across functional boundaries, which makes software design and implementation extremely hard and expensive. Third, design technologies, which are based on the modeling and analysis of systems with static structure, are becoming inadequate. Although networked embedded computing combined with inexpensive MEMS-based sensors and actuators make the construction of large physical systems with continuously changing structure and physical interactions feasible, their design is an open challenge. 
 
The first part of the talk provides an overview of the unique challenges and new research directions in embedded system and software design. The second part of the talk describes the Model-Integrated Computing (MIC) approach to address some of these challenges. Using the design of structurally adaptive embedded processing systems as example, the following three topics will be covered: 1. Methods and tools for the specification and construction of multiple-view, domain-specific modeling languages and integrated design environments. The MIC approach is based on the application of meta-modeling, meta-programmable modeling tools and model translators that form the foundation for composable design environments. 2. Automated synthesis of processing architectures satisfying multiple functional and physical constraints. The method described is based on symbolic constraint satisfaction. 3. Application of generative programming techniques with special emphasis on model-based software generators.