Home General Staff Contact Partners Alumni Research Areas Projects Papers Books Reports Awards Teaching Lectures Exams B.Theses M.Theses PhD Theses Go Abroad Misc Talks Library Gallery Links Search Webmaster |
A Model-driven Approach to Flexible and Adaptable Software Variability Management
Deepak Dhungana AbstractTraditional ways of building software, i.e., considering software projects to be independent of each other, are no longer sufficient to meet the challenges faced by the software industry. It is necessary to relate different products of an organization in such a way that their commonalities (marketing, technical or end-user considerations) can be shared between various products and projects. Both researchers and practitioners agree that reuse is the key to competitive advantage and variability is the key to successful reuse. In this thesis, we elaborate on the benefits of having variable software systems, and propose a model-based approach to capture the knowledge about flexibility and adaptability of systems. The novelty of our research lies in the combination of approaches for modeling stakeholder needs (requirements), product characteristics (features), architectural elements and other resources in the light of variability. Our research was guided by an analysis of the variability of our industry partner’s software for continuous casting. We have tested and applied the approach in several other case studies in completely different domains. In this thesis, we describe three of the case studies to demonstrate the flexibility of the approach and extensibility/adaptability of the tools. We chose a decision-oriented approach to variability modeling, which allows developers to systematically describe the variability of arbitrary domain specific assets and their dependencies (e.g, a component requires another component’s functionally). Instead of solving the variability modeling problem for one particular domain, we developed a meta-approach, which can be configured to the specifics of different domains as required. This thesis describes the flexibility and adaptability of the approach using examples from several domains. We also provide formal semantics of the approach. Our variability modeling tool DecisionKing provides a high-level view of a product line’s reference architecture and also maintains the complex relationships between user needs, features, and components. We have developed a domain-specific language for capturing dependencies in product line models and integrated the off-the-shelf rule engine JBoss Drools into our tool. Our approach goes beyond available approaches for modeling features and product line architectures as it supports the modeling of arbitrary PL artifacts in an integrated manner, i.e., with support for traceability among assets, among decisions, as well as between assets and decisions. DecisionKing is flexible and adaptable to deal with specifics of different domains and can be easily extended with new functionality and integrated in foreign tool environments too. We have also implemented tools and techniques to support organization and structuring of the modeling space. Supporting modularization was a critical success factor for our approach. The approach is based on a simple assumption: a small model is easier to maintain than a large one. Instead of creating a single large product line variability model we use model fragments to describe the variability of selected parts of the system. KurzfassungSoftwareprodukte werden typischerweise individuell betrachtet und unabhängig voneinander entwickelt. Gemeinsamkeiten zwischen ähnlichen Systemen können so nicht ausgenützt werden. Um den aktuellen Herausforderungen der heutigen Softwareindustrie (kurze Entwicklungszeiten, hohe Qualität, geringe Entwicklungskosten) besser entsprechen zu können, müssen Gemeinsamkeiten zwischen ähnlichen Softwareprodukten (z.B. im Hinblick auf Marketing, Verwendung von Komponenten, oder Produktmerkmale für Endnutzer (Features)) besser genutzt werden. Die Wiederverwendbarkeit von Software-Artefakten und deren Variabilität spielt dabei eine große Rolle. Diese Dissertation untersucht im Detail verschiedene Aspekte der Variabilität von Softwaresystemen. Wir beschreiben, wie mittels modellbasierter Ansätze Wissen über Variabilität explizit dokumentiert werden kann. Wir präsentieren einen integrierten Ansatz, der zur Modellierung verschiedener Artefakte wie etwa Anforderungen, Produktmerkmale oder Architekturelemente geeignet ist. Die Arbeit wurde auf Basis einer Analyse aktueller Herausforderungen der Industrie durchgeführt, im konkreten untersuchten wir Problemstellungen unseres Industrie-Partners Siemens VAI bei der Entwicklung von Automationssoftware. Wir haben den entwickelten Ansatz in mehreren Fallstudien in unterschiedlichen Bereichen angewandt, um dessen Flexibilität und Erweiterbarkeit zu demonstrieren. Wir präsentieren einen entscheidungsorientierten Ansatz zur Modellierung von Variabilität. Entwickler können systematisch die Variabilität beliebiger Artefakte einer Domäne und deren Abhängigkeiten beschreiben. Anstelle einer konkreten Sprache für einen bestimmten Anwendungsfall, haben wir eine generische Lösung angestrebt. Der Ansatz beruht auf Metamodellierung und Metawerkzeugen um den Besonderheiten verschiedener Domänen gerecht zu werden. Die Arbeit beschreibt die Flexibilität und Anpassungsfähigkeit des Ansatzes anhand von Beispielen aus verschiedenen Bereichen und definiert die formale Semantik des Konzepts. Im Rahmen der Dissertation wurde das Modellierungswerkzeug DecisionKing entwickelt. DecisionKing ermöglicht die Modellierung komplexer Beziehungen zwischen Entscheidungen des Nutzers und bildet so die Basis für die nutzergesteuerte Softwarekonfiguration. Um die komplexen Abhängigkeiten einfach beschreiben und automatisch auflösen zu können, haben wir eine domänenspezifische Sprache entwickelt, die auf JBoss Drools aufsetzt. DecisionKing ist flexibel und anpassungsfähig, um Besonderheiten der verschiedener Domänen zu unterstützen und kann durch Plugin-ins leicht erweitert werden. Die Werkzeuge unterstützen auch die Organisation und Strukturierung großer Modelle. Modularisierung ist ein entscheidender Erfolgsfaktor, da kleine Modelle leichter zu pflegen sind als große. In unserem Ansatz ermöglichen Modellfragmente die Beschreibung der Variabilität ausgewählter Teile des Systems. Werkzeuge unterstüzten dann die Komposition der einzelnen Modellteile zum gesamten Produktlinienmodell. PhD thesis, Johannes Kepler University Linz, January 2009 Download als pdf |