Feedback

Feature-Model Driven Variability Analysis of Automotive Software Systems

Modern vehicles are often highly configurable to meet individual customer requirements and needs. Besides various other vehicle properties, this configurability has a particular impact on the vehicle software, as software-driven functionalities must be activated, deactivated or parameterized according to the respective vehicle configuration. This software variability results in a large number of different software variants, which adds further complexity to the already complex software functions of modern vehicles. Thus, managing this variability-induced complexity during the development and maintenance of automotive software systems requires dedicated processes and methods.
A central aspect for managing the variability-induced software complexity is to have detailed information about the configurability of the software system, such as the total number of valid system configurations. This information is especially valuable in the early stages of development, when it is easier to make adjustments to the configurability based on the provided information. However, obtaining this information in early development phases is challenging, as there often only exist prototypical descriptions of the configurability which are prone to variability anomalies. Therefore, early configurability descriptions might not reflect the originally intended configurability and therefore need to be revised by resolving the contained anomalies before applying subsequent analyses, which is a highly complex and cumbersome task. Another important aspect during the development of a configurable automotive software system is to determine the number of software variants that can be derived from the system, as it can be used as a measure for the variability-induced software complexity and to assess the impact of measures for reducing this complexity. However, computing the number of software variants is difficult, as it requires to project the constraints between configuration options onto their corresponding implementation artifacts as well as to ignore the variability of other domains to analyze the software domain in isolation. Finally, the variability of the software system needs to be validated by ensuring that there are no configuration specific bugs and errors in the implementation. However, due to combinatorial explosion, there can be millions of derivable software variants, making it impossible to execute and test every software variant individually. Therefore, a representative sample of software variants must be generated to which the validation of the software system can be reduced. Moreover, the physical hardware-components involved in automotive software systems, such as electronic control units, further complicate the validation process, as they are expensive and cause high manual overhead when assembling concrete test-instances of the system.
In this thesis, we present contributions that address the outlined challenges that arise during the development of configurable automotive software systems. First, we present a method for efficiently resolving contradictions in a variability model by automatically deriving an optimized inspection order for the contained anomalies that makes the inspection of certain anomalies obsolete. Moreover, we present a method for computing the exact number of derivable software variants for a configurable software system. This includes a method for automatically constructing a model of the software variability, which allows to employ existing variability analyses to compute the number of software variants. Finally, we present a method for generating a representative sample of software variants to which the validation of the entire software domain can be reduced. We then extend this sampling strategy by generating a representative set of software variants that can be executed on a minimal set of hardware variants. This increases the efficiency of the testing process, as the high manual overhead required for constructing the required hardware variants is substantially reduced.
We evaluate all presented contributions on real-world automotive software systems. Thereby, we not only show the applicability of the presented contributions on real-world data, but also show that our contributions are suitable to remedy the outlined challenges and are therefore highly beneficial during the development of configurable automotive software systems.

Moderne Fahrzeuge sind häufig stark konfigurierbar, um individuellen Kundenanforderungen und -wünschen gerecht zu werden. Neben verschiedenen anderen Fahrzeugeigenschaften wirkt sich diese Konfigurierbarkeit insbesondere auf die Fahrzeugsoftware aus, da softwaregesteuerte Funktionalitäten in Abhängigkeit der jeweiligen Fahrzeugkonfiguration aktiviert, deaktiviert oder parametriert
werden müssen. Diese Software-Variabilität führt zu einer großen Anzahl unterschiedlicher Software-Varianten, die zusätzliche Komplexität in den ohnehin schon komplexen Softwarefunktionen in modernen Fahrzeugen verursachen. Die Beherrschung dieser variabilitätsbedingten Komplexität während der Entwicklung und Wartung von automobilen Softwaresystemen erfordert daher dedizierte Prozesse und Methoden.
Ein zentraler Aspekt zur Beherrschung der variabilitätsbedingten Softwarekomplexität ist es, detaillierte Informationen über die Konfigurierbarkeit des Systems, wie zum Beispiel die Anzahl valider Systemkonfigurationen, zur Verfügung zu haben. Diese Informationen sind besonders in frühen Entwicklungsphasen wertvoll, wenn Anpassungen der Konfigurierbarkeit basierend auf diesen Informationen einfacher zu realisieren sind. In frühen Entwicklungsphasen sind diese Informationen jedoch schwer zu bestimmen, da oft nur prototypische Beschreibungen der Konfigurierbarkeit existieren, welche anfällig für Variabilitätsanomalien sind und dadurch unter Umständen nicht die ursprünglich geplante Konfigurierbarkeit beschreiben. Daher müssen enthaltene Anomalien behoben werden, bevor Analysen durchgeführt werden, was eine höchst komplexe und mühsame Aufgabe ist. Ein weiterer wichtiger Aspekt während der Entwicklung von konfigurierbaren automobilen Softwaresystemen ist es, die Anzahl der Softwarevarianten zu bestimmen, die von dem System abgeleitet werden können. Diese Zahl ist wichtig, da sie nicht nur als Maß für die durch Konfigurierbarkeit verursachte Softwarekomplexität, sondern auch zur Bewertung der Wirksamkeit von Maßnahmen zur Reduzierung dieser Komplexität werden kann. Abschließend muss die Variabilität des Softwaresystems validiert werden, indem sichergestellt wird, dass das Softwaresystem keine konfigurationsspezifischen Bugs und Implementierungsfehler enthält. Aufgrund von kombinatorischer Explosion kann das System jedoch die Ableitung von Millionen verschiedener Softwarevarianten erlauben, was es unmöglich macht, jede Softwarevariante individuell auszuführen und zu testen. Daher muss eine repräsentative Stichprobe von Softwarevarianten generiert werden, auf die die Validierung des Systems reduziert werden kann. Zusätzlich erschweren die in automobilen Softwaresystemen involvierten, physischen Hardwarekomponenten, wie zum Beispiel Steuergeräte, den Validierungsprozess, da sie teuer sind und großen manuellen Aufwand verursachen, wenn konkrete Testinstanzen des Systems aufgebaut werden müssen.
In dieser Arbeit stellen wir Beiträge vor, die die zuvor beschriebenen Herausforderungen im Entwicklungsprozess von konfigurierbaren automobilen Softwaresystemen adressieren. Zuerst präsentieren wir eine Methode zum effizienten Beheben von Anomalien in Feature-Modellen, bei der automatisiert eine optimierte Reihenfolge bestimmt wird, in der die Anomalien untersucht werden sollten, wodurch die Untersuchung einer Teilmenge der Anomalien überflüssig wird. Des Weiteren präsentieren wir eine Methode zum Berechnen der exakten Anzahl an Softwarevarianten die von einer Software Produktlinie abgeleitet werden können. Dies beinhaltet auch eine Methode zum Konstruieren eines Feature-Modells der Software-Variabilität, wodurch existierende Feature-Modell Analysen für die Analyse der Software-Variabilität verwendet werden können. Außerdem stellen wir eine Methode zur Generierung einer repräsentativen Stichprobe von Softwarevarianten vor, auf die die Validierung des Softwaresystems reduziert werden kann. Mit einer Erweiterung dieser Methode präsentieren wir außerdem einen Ansatz zur Generierung einer solchen repräsentativen Stichprobe an Softwarevarianten, die zusätzlich auf einer möglichst kleinen Menge an Hardwarevarianten ausgeführt werden können. Dies reduziert den manuellen Aufwand für den Aufbau der benötigten Hardwarevarianten und erhöht damit die Effizienz des Testprozesses.
Wir evaluieren alle vorgestellten Methoden anhand realer automobiler Softwaresysteme. Damit zeigen wir nicht nur die Anwendbarkeit der vorgestellten Methoden auf reale Daten, sondern auch, dass die Methoden geeignet sind, die beschriebenen Herausforderungen zu lösen und damit einen hohen Nutzen für die Entwicklung von automobilen Softwaresystemen bieten.

Cite

Citation style:
Could not load citation form.

Access Statistic

Total:
Downloads:
Abtractviews:
Last 12 Month:
Downloads:
Abtractviews:

Rights

Use and reproduction:
All rights reserved