Modelle und Werkzeuge für modellgetriebene Softwareproduktlinien am Beispiel von Softwarekonfigurationsverwaltungssystemen

Models and Tools for model-driven software product lines - an example in software configuration management

Die Entwicklung von Softwareproduktlinien basiert auf der pro-aktiven Wiederverwendung von Softwareartefakten (Anforderungen, Komponenten, Code, Testfällen, etc.). In einer Softwareproduktlinie werden die invarianten Eigenschaften der Softwareprodukte durch eine gemeinsame Basis realisiert. Durch Integration von Variabilität in diese gemeinsame Plattform wird die effiziente Entwicklung von kunden- bzw. marktspezifischen Softwarelösungen ermöglicht. Der hohe Anteil der Wiederverwendung führt dabeDie Entwicklung von Softwareproduktlinien basiert auf der pro-aktiven Wiederverwendung von Softwareartefakten (Anforderungen, Komponenten, Code, Testfällen, etc.). In einer Softwareproduktlinie werden die invarianten Eigenschaften der Softwareprodukte durch eine gemeinsame Basis realisiert. Durch Integration von Variabilität in diese gemeinsame Plattform wird die effiziente Entwicklung von kunden- bzw. marktspezifischen Softwarelösungen ermöglicht. Der hohe Anteil der Wiederverwendung führt dabei im Vergleich zur Entwicklung von Einzel-Softwaresystemen zu einer Reduktion von Entwicklungszeit und Entwicklungskosten bei einer gleichzeitigen Steigerung der Softwarequalität. Modellgetriebene Entwicklung hingegen beschreibt die Verwendung von formalen Modellen zur Beschreibung eines Softwaresystems anstelle der Erstellung von Programmcode. Geeignete Werkzeuge sind in der Lage, diese Modelle in Programmcode zu übersetzen. Diese formalen Modelle beschreiben das zu erstellende System auf einer höheren Abstraktionsebene als der Programmcode. Ebenso wird die Wiederverwendbarkeit für unterschiedliche Zielplattformen erhöht, indem spezielle Codegeneratoren verwendet werden. Die Kombination von modellgetriebener Softwareentwicklung und Software Produktlinien verspricht Produktivitätssteigerungen aus mehreren Gründen: (1) durch die Entwicklung von wiederverwendbaren Komponenten in einer Produktlinie und (2) durch die Erstellung von Modellen anstatt von Programmcode, (3) durch eine erleichterte Erweiterung von bestehenden Systemen, (4) durch Werkzeuge zur Automation und (5) durch Wiederverwendbarkeit des mittels Modellen beschriebenen Wissens für alle Projektmitarbeiter. Diese Arbeit untersucht die Konzepte, Modelle und Werkzeuge, die benötigt werden, um modellgetrieben Produktlinien zu entwickeln. Als durchgängiges anwendungsbezogenes Beispiel wird die modellgetriebene Entwicklung einer Produktlinie für Softwarekonfigurationsverwaltungssysteme betrachtet. Das Beispiel Softwarekonfigurationsverwaltungssysteme wurde als nicht-trivialer Anwendungsfall gewählt, da in dieser Domäne sehr viele Systeme existieren, die sich teilweise in ihrer Funktionalität sehr ähneln, dennoch aber jeweils von Grund auf neu entwickelt wurden. Im Verlauf der Ausarbeitung werden bestehende Prozesse zur Produktlinienentwicklung vorgestellt und eine Kombination mit dem modellgetriebenen Entwicklungsansatz diskutiert. Es wird ein innovativer Ansatz eines modellgetriebenen Entwicklungsprozesses für Produktlinien vorgestellt und es werden neu entwickelte Werkzeuge präsentiert und diskutiert, die diesen spezifischen Prozess unterstützen. Für die Entwicklung einer durchgängigen Werkzeugunterstützung wurde versucht, auf bestehende Werkzeuge zurückzugreifen. Dennoch waren umfangreiche Neuentwicklungen nötig, um eine Werkzeugunterstützung des kompletten Prozesses zu gewährleisten. Die Neuentwicklungen betrafen einerseits die Kopplung von Modellen aus der modellgetriebenen Softwareentwicklung mit Modellen aus der Produktlinienentwicklung, andererseits aber auch eine weitreichendere Unterstützung von modellgetriebener Entwicklung im Bereich der Architekturmodellierung.show moreshow less
The idea behind software product lines is based on an active and planned reuse of software artifacts. These artifacts comprise requirements, components, code and even test cases. The realization of invariant features of single products within a software product line are realized by a common platform. Integrating variability into this platform allows for efficient development of customer specific software solutions. The high amount of reuse leads to a significant reduction of both development timThe idea behind software product lines is based on an active and planned reuse of software artifacts. These artifacts comprise requirements, components, code and even test cases. The realization of invariant features of single products within a software product line are realized by a common platform. Integrating variability into this platform allows for efficient development of customer specific software solutions. The high amount of reuse leads to a significant reduction of both development time and costs compared to traditional software development and simultaneosly increases the quality of the resulting product. The term model-driven software development on the other hand describes the creation of software systems by specifying formal models instead of writing code. These models are created using special CASE tools which allow transforming these models into program code. By using formal models, the systems is described on a higher level of abstraction and reuse for different platforms can easily be achieved by using different code generators. The combination of these different techniques promises an increase of productivity for several reasons: (1) by developing reuseable components within a product line, (2) by creating formal models instead of program code, (3) by an easy adoption and extension of existing systems, (4) by providing tools for automation and (5) by resuing domain knowledge captured in models. This thesis investigates concepts, models and tools required for a model-driven development of software product lines. The model-driven development of a product line for software configuration management (SCM) systems is used as an application-oriented example. SCM systems were chosen as a non-trivial example, because this domain is characterized by a huge number of systems, each of which realize similar functionality but have all been developed from scratch. In this thesis, existing processes for developing product lines are introduced and a combination of them with the model-driven approach is discussed. An innovative approach for the model-driven development of software product lines is presented and new tools are introduced, which have been created to support the specific requirements of this process. In order to provide a consistent tool chain, the focus was to reuse existing tools as far as possible and to extend and integrate them with own tools to provide tool support for the whole development process. The tools developed in the context of this work comprise the mapping of models for software product line engineering to models used for model-driven software development. A second tool was created to provide a broad support for model-driven development in terms of modeling in the large.show moreshow less

Download full text files

Export metadata

  • Export Bibtex
  • Export RIS
  • frontdoor_exportcitavi

Additional Services

    Share in Twitter Search Google Scholar
Metadaten
Institutes:Informatik
Author: Thomas Buchmann
Advisor:Prof. Dr. Bernhard Westfechtel
Granting Institution:Universität Bayreuth,Fakultät für Mathematik, Physik und Informatik
Date of final exam:17.09.2010
Year of Completion:2010
SWD-Keyword:Softwarekonfigurationsverwaltung; modellgetriebene Entwicklung
Tag:Softwareproduktlinien; ausführbare Modelle
executable models; model-driven development; software configuration management; software product lines
Dewey Decimal Classification:004 Datenverarbeitung; Informatik
URN:urn:nbn:de:bvb:703-opus-7398
Document Type:Doctoral Thesis
Language:German
Date of Publication (online):11.10.2010