Automotive

Summary of Most Relevant Topic Papers

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: Autonomous driving, modeling of functional and logical architectures and on variability. To understand all these features in [GRJA12] we describe 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.

Autonomous driving

Quality assurance, especially of safety-related functions, is crucial to successfully deploy autonomous vehicles. In the Carolo project (see [BR12b],[BR12] and Autonomous 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 autonomous 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.

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.

In a more elaborate version, we have helped a larger car manufacturer to design their company specific method, SMaRDT, that injects model-based software development for the logical architecture of a car and connects it with the requirements and the technical implementation. Furthermore, we have added automatic testing techniques to ensure model quality from the beginning in [DGH+19] and [KMS+18].

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 and 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 modular 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.

Ways to identify potential variants of components for potential product lines are to use similarity analysis on interfaces [KRR+16], or to execute tests to identify similar behavior [RRS+16]. And a third approach is described in [RSW+15] that uses logical and model checking techniques to identify commonalities and differences of two Simulink models describing the same control device in different variants. All these techniques allow us to understand incompatibilities or identify the portion of compatibility of two components respectively their models.

In [KKR19], we introduce a framework for modeling the dynamic reconfiguration of component and connector architectures and apply it to the domain of cooperating vehicles.

Key Statements

  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 autonomous driving cars and smart assistance systems is assured using automatic simulations.

Selected Topic-Specific Publications

  1. [KKR19]
    N. Kaminski, E. Kusmenko, B. Rumpe:
    In: Journal of Object Technology (JOT), B. Combemale, S. Ali (Eds.), Volume 18(2), pp. 1-20, AITO - Association Internationale pour les Technologies Objets, Jul. 2019.
  2. [DGH+19]
    I. Drave, T. Greifenberg, S. Hillemacher, S. Kriebel, E. Kusmenko, M. Markthaler, P. Orth, K. S. Salman, J. Richenhagen, B. Rumpe, C. Schulze, M. Wenckstern, A. Wortmann:
    In: Journal on Software: Practice and Experience, R. Buyya, J. Bishop, K. Cooper, R. Jonas, A. Poggi, S. Srirama (Eds.), Volume 49(2), pp. 301-328, Wiley Online Library, Feb. 2019.
  3. [KMS+18]
    S. Kriebel, M. Markthaler, K. S. Salman, T. Greifenberg, S. Hillemacher, B. Rumpe, C. Schulze, A. Wortmann, P. Orth, J. Richenhagen:
    In: International Conference on Software Engineering: Software Engineering in Practice (ICSE’18), pp. 172-180, ACM, Jun. 2018.
  4. [RRS+16]
    J. Richenhagen, B. Rumpe, A. Schloßer, C. Schulze, K. Thissen, M. von Wenckstern:
    In: International Systems and Software Product Line Conference (SPLC ’16), pp. 174-183, ACM, Sep. 2016.
  5. [KRR+16]
    P. Kehrbusch, J. Richenhagen, B. Rumpe, A. Schloßer, C. Schulze:
    In: International Systems and Software Product Line Conference (SPLC ’16), pp. 99-108, ACM, Sep. 2016.
  6. [RSW+15]
    B. Rumpe, C. Schulze, M. v. Wenckstern, J. O. Ringert, P. Manhart:
    In: Software Product Line Conference (SPLC’15), pp. 141-150, ACM, 2015.
  7. [HKM+13]
    A. Haber, C. Kolassa, P. Manhart, P. Mir Seyed Nazari, B. Rumpe, I. Schaefer:
    In: Variability Modelling of Software-intensive Systems Workshop (VaMoS’13), pp. 11-18, ACM, 2013.
  8. [BR12b]
    C. Berger, B. Rumpe:
    In: Automotive Software Engineering Workshop (ASE’12), pp. 789-798, 2012.
  9. [GRJA12]
    T. Gülke, B. Rumpe, M. Jansen, J. Axmann:
    In: Requirements Engineering: Foundation for Software Quality (REFSQ’12), 2012.
  10. [HRRW12]
    C. Hopp, H. Rendel, B. Rumpe, F. Wolf:
    In: Software Engineering Conference (SE’12), pp. 181-192, LNI 198, 2012.
  11. [BR12]
    C. Berger, B. Rumpe:
    In: Experience from the DARPA Urban Challenge, C. Rouff, M. Hinchey (Eds.), pp. 243-271, Springer, Germany, 2012.
  12. [GHK+08]
    H. Grönniger, J. Hartmann, H. Krahn, S. Kriebel, L. Rothhardt, B. Rumpe:
    In: Proceedings of 4th European Congress ERTS - Embedded Real Time Software, 2008.
  13. [BBR07]
    C. Basarke, C. Berger, B. Rumpe:
    In: Journal of Aerospace Computing, Information, and Communication (JACIC), Volume 4(12), pp. 1158-1174, 2007.
  14. [GHK+07]
    H. Grönniger, J. Hartmann, H. Krahn, S. Kriebel, B. Rumpe:
    In: Object-oriented Modelling of Embedded Real-Time Systems Workshop (OMER4’07), 2007.