<< back to topics


A selection of papers from Bernhard Rumpe and the Software Engineering Group

Development of software for automotive systems has become increasingly complex in the past years. Sophisticated driver assistance, infotainment and Car2X-communication systems as well as advanced active and passive safety-systems result in complex embedded systems. As these feature-driven subsystems may be arbitrarily combined by the customer, a huge amount of distinct variants needs to be managed, developed and tested. While we are carrying out in numerous projects in the Automotive domain, here we concentrate on three aspects: Autonomic driving, modeling of functional and logical architectures and on variability. To understand all these features we in [GRJA12] describe a requirements management that connects with features in all phases of the development process helps to handle complex development tasks and thus stabilizes the development of automotive systems.

Modeling logical architecture: function nets

The conceptual gap between requirements and the logical architecture of a car is closed in [GHK+07] and [GHK+08]. Here, feature views modeled as a function net are used to implement the mapping between feature-related requirements and the complete logical architecture of a car.

Variability of car software

Automotive functions that may be derived from a feature view are often developed in Matlab/Simulink. As variability needs also to be handled in development artifacts, we extended Matlab/Simulink with Delta-Modeling techniques (see also Variability & Software Product Lines (SPL)). A core Simulink model represents the base variant that is transformed to another variant by applying deltas to it. A delta contains modifications that add, remove or modify existing model elements. This way, features of an automotive system may be developed modularly without mixing up variability and functionality in development artifacts [HKM+13]. New delta models that derive new variants may be added bottom-up without the need for a fully elaborated feature model.


In practice, product lines often origin from a single variant that is copied and altered to derive a new variant. In [HRRW12], we provide means to extract a well defined Software Product Line from a set of copy and paste variants. This way, further variant development is alleviated, as new variants directly reuse common elements of the product line.

[RSW+15] describes an approach to use logical and model checking techniques to identify commonalities and differences of two Simulink models describing the same control device in different variants and thus allows to understand incompatibilities.

Autonomous driving

Quality assurance, especially of safety-related functions, is a highly important task. In the Carolo project (see [BR12b],[BR12] and Autonomic Driving & Intelligent Driver Assistance), we have developed a rigorous test infrastructure for intelligent, sensor-based functions through fully-automatic simulation (not only visualization) of the car within its surrounding: the city, pedestrians and especially other cars [BBR07]. Beside the simulation of a complete autonomic car with its sensors and actors, the simulation environment may also be used to test dedicated subsystems without any real hardware involved. By producing sensor input from the simulation and comparison of expected and actual behavior, subsystems may be automatically validated and thus developed in an agile way.



  1. A consistent requirement management leads to a more stable and predictable development of automotive systems.
  2. Various functional and architectural variants need to be explicitly managed in all phases of the development cycle.
  3. Agile development techniques may be used by introducing continuous tests based on automatic simulations.
  4. The quality of autonomically driving cars and smart assistance systems is assured using automatic simulations.

Further Topics:

Selected(!) Publications:

<< list of all topics list of all publications >>