Abstract
Variability modeling is a major issue in requirements engineering for software product lines. Existing state-of-the-art approaches heavily leverage the principle of separation of concerns by specifying the requirements model in multiple separate diagrams (for example, the UML) and using orthogonal variability modeling to describe commonality and variability (for example, feature models). Mapping-based approaches are further used to accurately specify the variability’s impact on the requirements model. However, this makes variability-related requirements engineering activities unnecessarily cumbersome, since the specification of variable features is not handled as a primary concern, but rather scattered over many separate diagrams. This thesis presents a new approach that builds on different premises, which neither require variability mappings nor an orthogonal variability model. Instead of separating the requirements model into multiple diagrams, a fully integrated requirement modeling language and tool support for view generation are used. Instead of using an orthogonal variability model and a specific variability mapping approach, a compositional approach is used. On this basis a new, fully-fledged product line requirements modeling approach has been developed. The approach is parsimonious in the sense that it aims at extending an existing language as little as possible. It also allows a fine-grained specification of cross-cutting features and their functional dependencies, when needed. It allows the requirements and variability model to be visualized in a single view and more abstract views at arbitrary levels of abstraction to be generated. It provides novel support for product derivation that can visualize both a decision’s impact on the product’s functionality and on other variability decisions in the same diagram and tool. It continuously verifies the satisfiability of the model and allows advanced automated analyses such as constraint propagation, based on Boolean satisfiability (SAT) solving. In addition, it provides advanced support for variability model creation and evolution by allowing a straightforward, semi-automated extraction and composition of any identified variable feature.
The empirical validation presented in this thesis is four-fold. First, a constructive tool implementation proves technical feasibility. Second, the modeling of several real-world examples along with state-of-the-art solutions shows practical feasibility. Third, a rigorous performance analysis verifies that SAT solving scales well for models of this new type, which proves that the presented automated variability analysis solution is feasible. And fourth, a recent real-world case study compares the practical performance of the presented approach with an industry- strength and state-of-the-art solution and shows considerable benefits of the presented approach. This thesis contributes a complete description of this new approach, which is mainly based on the A DORA requirements and architecture modeling language. The presented approach is of a general nature, however, and we expect our empirical results to yield equally encouraging data also with any other language that satisfies the approach’s prerequisites. We hope that this integrated approach to requirements modeling (or conceptual modeling in general) and variability modeling will soon also be applied with other modeling languages. The presented work will possibly lead to an emergence of new types of tools that can also visualize existing product line models (for example, specified with UML and feature modeling) in a new, integrated and flexible manner, as presented in this thesis. This could profoundly change and improve the way engineers and analysts visualize and deal with variability in software models in the future. vii
Variabilitätsmodellierung ist eine wichtige Angelegenheit in der Anforderungsanalyse von Software Produktlinien. Existierende Ansätze mit heutigem Stand der Technik stützen sich stark auf eine Separierung der Anforderungsmodellierung in verschiedene Diagramme (typischerweise unter Verwendung von UML) und benützen orthogonale Variabilitätsmodellierung zur Beschreibung von Gemeinsamkeiten und Variabilität (zum Beispiel Feature Modelle). Zuordnungsbasierte Ansätze werden weiters verwendet um die Variabilität in der Anforderungsmo- dellierung präzise zu spezifizieren. Dies macht Aktivitäten im Zusammenhang mit Variabilität in der Anforderungsanalyse unnötig umständlich, da die Spezifikation der Variabilität nicht als grundlegendes Element realisiert ist, sondern vielmehr verteilt über verschiedene Diagramme beschrieben wird. Diese Dissertation präsentiert einen neuartigen Ansatz, der weder Zuordnungen noch ein zusätzliches orthogonales Variabilitätsmodell benötigt. Anstatt das Anforderungsmodell auf mehrere Diagramme zu verteilen, wird eine vollständig integrierte visuelle Anforderungsmodellie- rungssprache zusammen mit Werkzeugunterstützung zur Sichtengenerierung verwendet. Und anstatt ein orthogonales Variablitätsmodell zusammen mit einem Zuordnungsbasierten Ansatz zu verwenden, wird ein kompositionaler Ansatz eingesetzt. Auf dieser Basis wurde ein neuartiger und vollständig ausgeprägter Ansatz zur Anforderungsmodellierung von Software Produktlinien entwickelt. Der Ansatz ist sparsam, da er darauf zielt mit einer kleinstmöglichen Erweiterung einer bestehenden Sprache auszukommen. Dennoch erlaubt er eine sehr genaue Spezifikation von querschneidenden variablen Features und deren funktionalen Abhängigkeiten, wenn dies gebraucht wird. Er erlaubt eine integrierte Darstellung des Anforderungs- und Variabilitätsmodells und die Generierung von abstrakten Sichten auf beliebigen Abstraktionsstufen. Weiters erlaubt er eine neuartige Herangehensweise zur Produktableitung, welche die Auswirkungen einer Entscheidung sowohl auf die Funktionalität des Produkts als auch auf die weiteren Entscheidungen im gleichen Diagramm und Werkzeug visualisieren kann. Die logische Erfüllbarkeit des Modells wird laufend geprüft, was auch eine breite Palette an automatisierten Analyseoperationen erlaubt, die auf Boolescher Erfüllbarkeitsauswertung (SAT) aufbauen und zum Beispiel die automatische Propagierung der Auswirkung von bestimmten Entscheidungen auf die restlichen Entscheidungen erlaubt. Der Ansatz erlaubt weiters auch eine fortgeschrittene Art der Erstellung und Weiterentwicklung von Variabilitätsmodellen durch einfache, semi-automatische Extraktion und Komposition ausgewählter variabler Features. Die empirische Validierung dieser Dissertation gliedert sich in vier Teile. Zuerst beweist eine konstruktive Werkzeugimplementierung die technische Machbarkeit des Ansatzes. Als Zweites zeigt die Modellierung von realen Beispielen im Vergleich mit existierenden Lösungen am Stand der Technik die praktische Tauglichkeit des Ansatzes. Als Drittes zeigt ein rigoroser Leistungstest, dass die präsentierte automatisierte Analyse des Variabilitätsmodells gut skaliert und ebenso praxistauglich ist. Und als Viertes zeigt eine aktuelle Fallstudie, dass der praktische Einsatz des präsentierten Ansatzes im Vergleich zu führenden Werkzeugen mit aktuellem Stand der Technik auch bedeutende Vorteile birgt. Diese Arbeit präsentiert eine vollständige Beschreibung dieses neuen Ansatzes, welcher hauptsächlich basierend auf der Anforderungs- und Architekturmodellierungssprache A DORA beschrieben wird. Der Ansatz ist jedoch von genereller Natur und wir erwarten ähnlich vorteilhafte Ergebnisse auch für andere Sprachen, die alle nötigen Voraussetzungen für diesen Ansatz erfüllen. Wir hoffen, dass dieser integrierte Ansatz zur Anforderungsmodellierung (bzw. zur konzeptuellen Modellierung im Allgemeinen) und Variabilitätsmodellierung auch bald in anderen Modellierungssprachen zum Einsatz kommt. Die präsentierte Arbeit wird möglicherweise zu neuartigen Typen von Werkzeugen führen, welche auch existierende Modelle von Software Produktlinien (welche zum Beispiel mit UML und Feature Modellierung spezifiziert sind) auf eine neue, integrierte und flexible Art und Weise visualisieren können, wie in dieser Dissertation präsentiert wird. Dies könnte die Art und Weise wie Ingenieure und Analysten in Zukunft Variabilität in Software Modellen visualisieren und behandeln grundlegend verändern und verbessern.