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.
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.
- A consistent requirement management leads to a more stable and predictable development of automotive systems.
- Various functional and architectural variants need to be explicitly managed in all phases of the development cycle.
- Agile development techniques may be used by introducing continuous tests based on automatic simulations.
- The quality of autonomous driving cars and smart assistance systems is assured using automatic simulations.
Selected Topic-Specific Publications
[BBR07]Software & Systems Engineering Process and Tools for the Development of Autonomous Driving Intelligence.In: Journal of Aerospace Computing, Information, and Communication (JACIC), Volume 4(12), pp. 1158-1174, 2007.
[BR12]In: Experience from the DARPA Urban Challenge, C. Rouff, M. Hinchey (Eds.), pp. 243-271, Springer, Germany, 2012.
[BR12b]Autonomous Driving - 5 Years after the Urban Challenge: The Anticipatory Vehicle as a Cyber-Physical System.In: Automotive Software Engineering Workshop (ASE’12), pp. 789-798, 2012.
[DGH+19]In: 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.
[GHK+07]In: Object-oriented Modelling of Embedded Real-Time Systems Workshop (OMER4’07), 2007.
[GHK+08]In: Proceedings of 4th European Congress ERTS - Embedded Real Time Software, 2008.
[GRJA12]High-Level Requirements Management and Complexity Costs in Automotive Development Projects: A Problem Statement.In: Requirements Engineering: Foundation for Software Quality (REFSQ’12), 2012.
[HKM+13]In: Variability Modelling of Software-intensive Systems Workshop (VaMoS’13), pp. 11-18, ACM, 2013.
[HRRW12]Einführung eines Produktlinienansatzes in die automotive Softwareentwicklung am Beispiel von Steuergerätesoftware.In: Software Engineering Conference (SE’12), pp. 181-192, LNI 198, 2012.
[KKR19]In: The Journal of Object Technology, B. Combemale, S. Ali (Eds.), Volume 18(2), pp. 1-20, AITO - Association Internationale pour les Technologies Objets, Jul. 2019. The 15th European Conference on Modelling Foundations and Applications.
[KMS+18]In: International Conference on Software Engineering: Software Engineering in Practice (ICSE’18), pp. 172-180, ACM, Jun. 2018.
[KRR+16]In: International Systems and Software Product Line Conference (SPLC ’16), pp. 99-108, ACM, Sep. 2016.
[RRS+16]In: International Systems and Software Product Line Conference (SPLC ’16), pp. 174-183, ACM, Sep. 2016.
[RSW+15]In: Software Product Line Conference (SPLC’15), pp. 141-150, ACM, 2015.
- Agile Model-Based Software Engineering
- Model-based Cloud Computing Applications
- Enterprise Information Systems
- Cyber-Physical Systems (CPS)
- Model-Driven Systems Engineering
- Domain-Specific Languages (DSLs)
- MontiArc - Architectural Modeling
- MontiCore - Language Workbench
- Modeling Software Architecture
- Robotics Architectures and Tasks
- Variability & Software Product Lines (SPL)