Modelle und Werkzeuge für modellgetriebene Softwareproduktlinien am Beispiel von Softwarekonfigurationsverwaltungssystemen
Published in University of Bayreuth, 2010
Download: Paper
Abstract
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 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.