Entwurf und Modellierung einer Produktlinie von Software-Konfigurations-Management-Systemen

Designing and Modeling a Product Line of Software-Configuration-Management-Systems

Es existieren zur Zeit über 70 verschiedene Software-Konfigurations-Management-Sys­teme (kurz: SKMS), um die Entwicklung von Software-Anwendungssystemen zu unter­stützen. SKMS sind selbst auch Software-Anwendungssysteme, deren Umfang von eini­gen zehntausend bis zu mehreren Millionen Quelltext-Zeilen reicht. Trotz dieser Größe handelt es sich meist um monolithische Systeme, deren Daten und Funktionen eng ver­schränkt sind und deren Verfahren lediglich implizit durch den Quellcode beschrieben werEs existieren zur Zeit über 70 verschiedene Software-Konfigurations-Management-Sys­teme (kurz: SKMS), um die Entwicklung von Software-Anwendungssystemen zu unter­stützen. SKMS sind selbst auch Software-Anwendungssysteme, deren Umfang von eini­gen zehntausend bis zu mehreren Millionen Quelltext-Zeilen reicht. Trotz dieser Größe handelt es sich meist um monolithische Systeme, deren Daten und Funktionen eng ver­schränkt sind und deren Verfahren lediglich implizit durch den Quellcode beschrieben werden. Eine Identifikation einzelner Methoden ist kaum möglich, ebensowenig wie eine Wiederverwendung bereits implementierter Verfahren. Dies führt dazu, dass für ein neu­es Verfahren oder sogar nur für eine neue Kombination existierender Verfahren ein SKMS von Grund auf neu implementiert wird. Die fehlende Modularität erschwert auch die Wiederverwendung eines SKMS für unterschiedliche Software-Entwicklungsprozesse, da bereits kleine Unterschiede zwischen den Prozessen die Entwicklung eines neuen SKMS erfordern können. Es besteht daher der Bedarf nach einer neuen Generation von SKMS, die durch ihre modulare Architektur (1) die Wiederverwendung bestehender Verfahren erlauben, (2) die Anpassbarkeit an Entwicklungsprozesse verbessern bzw. überhaupt erst ermöglichen und (3) die Erweiterbarkeit verbessern, um ein SKMS in möglichst vielen Entwicklungspro­zessen einsetzen zu können. Die Modellgetriebene Modulare Produktlinie für Software Konfigurations Management Systeme (kurz: MOD2-SKM) identifiziert Gemeinsam­keiten von SKMS auf Basis eines Entwicklungsprozesses für Modellgetriebene Software Produktlinien (MODPL). Der Entwicklungsaufwand eines SKMS wird so reduziert, da gemeinsame Komponenten wiederverwendet und die Produkte aus dem Domänenmodell generiert werden (anstatt sie von Hand zu implementieren). So kann durch Konfiguration des Domänenmodells nach den Anforderungen eines Software-Entwicklungs-Prozesses ein SKMS speziell an den zu unterstützenden Prozess angepasst werden. In dieser Arbeit wird ein Merkmals-Modell für SKMS definiert und ein generi­sches Domänenmodell für die gesamte Systemfamilie der SKMS modelliert und ana­lysiert. Mit Hilfe des Merkmals-Modells lassen sich die generierten SKMS systematisch beschreiben und miteinander vergleichen. Gleichzeitig können damit auch bestehen­de SKMS klassifiziert und so systematisch erfasst und verglichen werden. Durch das MOD2-SKM-Domänenmodell wird die SKM-Domäne mit Hilfe von Komponenten und Klassen beschrieben. Abhängigkeiten und Kopplungen werden dabei explizit identifiziert und reduziert. So wird das Verständnis der SKM-Domäne vertieft besonders in Bezug auf Modularisierbarkeit, Erweiterbarkeit und Co-Evolution und durch eine neue Sicht auf die komplexen Datenabhängigkeiten erweitert. MOD2-SKM ist gleichzeitig auch ein Prototyp einer neuen Generation vom SKMS, denn aus dem Domänenmodell lassen sich vollständig lauffähig SKMS erzeugen. Somit wird auch die Architektur und Realisierung einer modellgetriebenen Produktlinie für SKMS erforscht. MOD2-SKM zeigt, dass ein einzelnes SKMS nicht mehr von Hand implemen­tiert werden muss. Stattdessen können, mit Hilfe von Konfigurationen, eine Vielzahl von SKMS generiert werden. So lassen sich entweder bestehende SKMS wie CVS oder Subver­sion nachbilden oder auch vollständig neue SKMS erstellen. Die Erkenntnisse, die beim Entwurf von MOD2-SKM gewonnen wurden, bilden die Grundlagen, die für den Entwurf und die Entwicklung modularer SKMS benötigt werden: • Sind SKMS überhaupt für MODPL geeignet? • In welche Komponenten lässt sich ein SKMS zerlegen? • Welche Kernkomponenten muss jedes SKMS besitzen? • Welche Kopplungen bestehen zwischen den Komponenten? • Welche Modellierungsmethoden sind für die lose Kopplung der Komponenten be­sonders geeignet? Der MOD2-SKM Entwicklungsprozess folgt dem MODPL-Modellierungsansatz und basiert so letztendlich auf modellgetriebenen Entwicklungsmethoden. MOD2-SKM stellt damit eine nicht-triviale Fallstudie für den Einsatz von modellgetriebenen Produktli­nien dar, mit deren Hilfe sich der MODPL-Modellierungsansatz untersuchen lässt. In dieser Arbeit werden somit auch der Modellierungsansatz und die verwendeten modell­getriebenen Entwicklungsmethoden evaluiert und abschließend auch Anforderungen an sie formuliert.show moreshow less
Software developers can choose between more than 70 software-configuration-manage­ment-systems (abbr.: SCMS) to support the development of software applications. But SCMS are software applications by themselves and their size varies between a few ten thousand and several million lines of code. Even large systems turn out to be monolithic systems, i.e. their data and functions are tightly coupled and their underlying concepts are implicitly described by source code. Both, identification and reuseSoftware developers can choose between more than 70 software-configuration-manage­ment-systems (abbr.: SCMS) to support the development of software applications. But SCMS are software applications by themselves and their size varies between a few ten thousand and several million lines of code. Even large systems turn out to be monolithic systems, i.e. their data and functions are tightly coupled and their underlying concepts are implicitly described by source code. Both, identification and reuse of the underlying concepts is nearly impossible. Often, implementation of a new SCM concept means im­plementation of a new SCMS from scratch. The lack of modularity makes the adaption of SCMS to different development processes difficult. Sometimes even minor changes to a development process require the adoption of a completely new SCMS. Software development needs a new generation of SCMS with modular architecture to (1) enable the reuse of existing SCM concepts, (2) improve or enable the adaption of SCMS to development processes, and (3) improve extensibility of SCMS, in order to increase the number of development processes a SCMS can be adopted. The model­driven modular product line for software configuration management systems (abbr.: MOD2-SCM) identifies commonalities of SCMS, based on a model-driven development approach for model-driven software productlines (MODPL). This approach reduces the development effort of a SCMS (1) by reuse of common components, and (2) by replacing manual implementation of a SCMS with code generation from a graphical domain model. Adaption to a development process is achieved by creating a configuration manually and applying it to the domain model automatically. This thesis defines a feature-model for SCMS, and models and analyzes a generic domain model for a whole system family of SCMS. The feature-model provides a schema for a systematic and comparable description of every generated SCMS. The schema can also be used for a systematic classification and comparison of existing SCMS. The MOD2-SCM domain model uses package-and class-diagrams to model the SCM domain. They describe dependencies explicitly and their modular architecture is designed to reduce coupling. This way the graphical models deepen the understanding of the SCM domain especially about modularity, extensibility and co-evolution and offer a model-driven view on their complex dependencies. MOD2-SCM is also a prototype of a new generation of SCMS. MODPL enables the automatic generation of fully executable SCMS out of the domain model. So this thesis explores the design and realization of a model-driven productline for SCMS. MOD2-SCM shows that manual implementation of a single monolithic SCMS is unnecessary. Many different SCMS can be generated instead by creating configurations for a domain model. Both existing SCMS for example CVS or Subversion and completely new SCMS can be generated. The insight gained during the design and modeling solves and discusses fundamental questions about the design and development of modular SCMS: • Are SCMS eligible for model-driven product lines? • Which components are SCMS consisting of? • What are core components, required for any SCMS? • Which dependencies exist between these components? • Which modeling methods are most appropriate to reduce coupling? Development of MOD2-SCM follows the MODPL development approach and is ulti­mately based on generic model-driven development methods. Therefore, MOD2-SCM is a non-trivial case study for the application of model-driven product lines. Moreover, the model-driven approach in general is evaluated and, finally, the requirements for model­driven product line development and model-driven development in general are derived.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: Alexander Dotor Schumann
Advisor:Prof. Dr. Bernhard Westfechtel
Granting Institution:Universität Bayreuth,Fakultät für Mathematik, Physik und Informatik
Date of final exam:06.07.2011
Year of Completion:2011
SWD-Keyword:Modellgetriebene Entwicklung; Software Engineering; Softwarekonfigurationsverwaltung
Tag:Software Produktlinien
Software Product Lines
Dewey Decimal Classification:004 Datenverarbeitung; Informatik
CCS-Classification:D.2.11 Software Architectures (NEW)
D.2.13 Reusable Software (NEW)
K.6.3 Software Management (D.2.9)
URN:urn:nbn:de:bvb:703-opus-8899
Document Type:Doctoral Thesis
Language:German
Date of Publication (online):05.08.2011