Today, in general, embedded software is distributed onto networks and structured into logical components that interact asynchronously by exchanging messages. The software system is connected to sensors, actuators, human machine interfaces and networks. In this paper we study fundamental models of composed embedded software systems and their properties, identify and describe various basic views, and show how they are related. We consider, in particular, models of data, states, interfaces, functionality, hierarchically composed systems, and processes. We study relationships by abstraction and refinement as well as forms of composition and modularity. In particular, we introduce a comprehensive mathematical model and a corresponding mathematical theory for composed systems, its essential views and their relationships. We introduce two methodologically essential, complementary and orthogonal concepts for the structured modeling of multifunctional embedded systems in software and systems engineering and their scientific foundation. One approach addresses mainly tasks in requirements engineering and the specification of the comprehensive user functionality of multifunctional systems in terms of their functions, features and services. The other approach essentially addresses the design phase with its task to develop logical architectures formed by networks of interactive components that are specified by their interface behavior. M. Broy (B)
MotivationDevelopment of software in general, and in particular of embedded software, is today one of the most complex but at the same time most effective tasks in the engineering of innovative applications. Software drives innovation in many application domains. Modern software systems are typically embedded in technical or organizational processes, distributed, dynamic, and accessed concurrently by a variety of independent user interfaces. Just by constructing appropriate software we can provide engineering solutions that can calculate results, communicate messages, control devices, and illustrate and animate all kinds of information.Making embedded systems and their development more accessible and reducing their complexity in terms of development, operation, and maintenance we use classical concepts from engineering, namely abstraction, the separation of issues, and appropriate ways of structuring software. Well-chosen models and their theories support such concepts. Also software development can be based on models of system behavior and, since well-chosen models are a successful way to understand software and hardware development, modeling is an essential and crucial issue in software construction (Fig. 1).In the development of large, complex software systems it is simply impossible to provide one comprehensive model for the system in only one step. Rather we:• Specify a system or subsystem first in terms of its functionality modeled by its interface, given in a structured way in terms of a function hierarchy • Add stepwise details by property refinement 76 M. Broy Fig. 1 Sche...