Technical White Paper Variantenmanagement mit pure::variants - pure-systems GmbH

Die Seite wird erstellt Isger Henkel
 
WEITER LESEN
Technical White Paper Variantenmanagement mit pure::variants - pure-systems GmbH
Technical White Paper
Variantenmanagement mit pure::variants

                        pure-systems GmbH

                         Copyright © 2003 - 2006 pure-systems GmbH
                                                      Agnetenstr. 14
                                                   39106 Magdeburg
                                      http://www.pure-systems.com
Inhaltsverzeichnis
1 Einleitung....................................................................................................................................................3
2 pure::variants Technologie.....................................................................................................................3
3 pure::variants-unterstütztes Entwickeln mit Varianten.....................................................................4
4 Variantenbildung mit pure::variants......................................................................................................7
   4.1 pure::variants Merkmalmodelle.....................................................................................................8
   4.2 pure::variants Familienmodell......................................................................................................10
   4.3 Module.............................................................................................................................................11
5 Produkte...................................................................................................................................................12
   5.1 Developer Edition...........................................................................................................................12
   5.2 Integration Edition..........................................................................................................................12
   5.3 Server Edition..................................................................................................................................12
   5.4 Erweiterungsmodule......................................................................................................................13
6 Zusammenfassung.................................................................................................................................13

                                                                               2
Einleitung

1 Einleitung
Die pure::variants Technologie bietet die umfassendste und flexibelste verfügbare Techno-
logie zum Variantenmanagement. Eigenschaften wie die durchgängige Werkzeugunter-
stützung aller Schritte in der Softwareentwicklung, die hervorragende Integrationsfähigkeit
und Anpassungsfähigkeit erlauben es, in nahezu allen Bereichen der Softwareentwicklung
von den Vorzügen der Produktlinienbasierten Softwareentwicklung zu profitieren. Insbeson-
dere die auf die besonderen Interessen der Softwareentwicklung für eingebettete Systeme
abgestimmten Module erlauben eine bisher noch nicht mögliche Kombination von Flexibilität
mit einem Höchstmaß an Ressourceneffizienz.

2 pure::variants Technologie
Die Basistechnologie pure::variants verfügt über alle Eigenschaften, die für eine erfolgreiche,
werkzeuggestützte Entwicklung und Realisierung von Produktlinien erforderlich sind.
Sie ist durchgängig während aller Phasen der Entwicklung, angefangen bei der Anforderungs-
analyse und dem Softwaredesign, über die Implementierung bis hin zur Erstellung, Testen,
Nutzung und Wartung einsetzbar.
Alle grundlegenden Mechanismen sind unabhängig von Programmiersprachen.

        Abbildung 1: pure::variants Integrationsmöglichkeiten

Die pure::variants Technologie verfügt über herausragende Integrationsfähigkeiten. Sie kann
leicht in bestehende Entwicklungsprozesse und -umgebungen eingebunden werden
(Abbildung 1). Durch die Kopplung mit unterschiedlichen, bereits beim Anwender vorhandenen
Werkzeugen zum Configuration Management, Requirements Engineering, Modellierung und
Testen ergibt sich eine einheitliche Lösung. Die Anbindung an beliebige Werkzeuge ist durch
das XML-basierte Austauschformat jederzeit möglich. Durch den Import bestehender
Softwareprojekte ist der Einstiegsaufwand gering. Für spezifische Anforderungen ist
pure::variants durch Integration zusätzlicher Module flexibel erweiterbar. Dabei haben alle
Module vollständigen Zugriff auf das Variantenwissen.

                                                      3
pure::variants Technologie

Das flexible Grundgerüst erlaubt die Verwaltung und Auswertung aller für eine Produktlinie
relevanter Informationen, wie z.B. Dokumentation, Quelltext, Abhängigkeiten, und
Testergebnisse. Dem Benutzer können unterschiedliche Sichten auf diese Informationen
präsentiert werden. Dies ermöglicht eine Anpassung der Visualisierung entsprechend der
organisatorischen Struktur (Entwickler, Projektleiter, Vertrieb, Kunde).
Gerade die Durchgängigkeit, die hohe Integrationsfähigkeit und die flexible Erweiterbarkeit
der pure::variants Technologie ist als einzigartig anzusehen.

3 pure::variants-unterstütztes Entwickeln mit Varianten
Die Nutzung der auf pure::variants basierenden Werkzeuge (zu Produkten siehe Kapitel 5)
erfolgt in verschiedenen Phasen des Softwareentwicklungsprozesses. Bei der Entwicklung
von Produktlinien teilt sich die Entwicklung in 2 Abschnitte, zum einen die Entwicklung der
gemeinsamen Anteile und zum anderen in der nachfolgenden Ableitung der einzelnen
Produkte aus der Produktlinie.
Der prinzipielle Ablauf einer solchen Entwicklung wird im folgenden dargestellt, beginnend mit
der Erstellung der gemeinsamen Anteile:
1. Analyse der Anforderungen:
  Basierend auf einer inhaltlichen Analyse der umzusetzenden Anforderungen werden
  Merkmalmodelle (engl. feature models, siehe auch Abschnitt 4.1) entworfen, in denen
  insbesondere die Abhängigkeiten der einzelnen Merkmale der Produktlinie untereinander
  erfasst werden. Merkmalmodelle lassen sich gut grafisch darstellen und sind leicht
  verständlich.
  Basierend auf den Erkenntnissen aus der praktischen Anwendung von Merkmalmodellen
  ist die Ausdrucksmöglichkeit bei pure::variants Merkmalmodellen erheblich erweitert
  worden. Insbesondere die Unterstützung von Modellhierarchien ermöglicht die
  unterschiedliche Repräsentation der Probleme abhängig vom Betrachter (Kunde,
  Entwickler, Vertrieb, ...)
2. Entwurf der Lösungen:
  Ausgehend vom Merkmalmodell und anderen Anforderungen für die einzelnen
  abzuleitenden Softwaresysteme wird das Design der Softwarelösung(en) durchgeführt.
  Dabei werden die Elemente der Softwarelösung mit ihren Beziehungen, Einschränkungen
  und Anforderungen im Familienmodell erfasst und stehen damit einer automatischen
  Verarbeitung zur Verfügung.
  Das Familienmodell gliedert sich in mehrere Ebenen. Die oberste Ebene wird durch die
  sogenannten Komponenten gebildet. Diese repräsentieren jeweils ein oder mehrere
  funktionale Merkmale der Lösungen. Jede Komponenten setzt sich aus den logischen
  Bestandteilen der Software zusammen (Klassen, Objekte, Funktionen, Variablen, Dokumen-
  tation). Die physischen Bestandteile einer Lösung werden dann in einer weiteren Ebene
  den logischen zugeordnet. Dies sind sowohl bereits existierende Dateien als auch jeweils

                                              4
pure::variants-unterstütztes Entwickeln mit Varianten

  basierend auf Variantenwissen neu zu erzeugende Dateien oder durchzuführende
  Aktionen.
  Im Gegensatz zu den bisherigen Ideen im Bereich Merkmalmodell basierter Techniken setzt
  die pure::variants Technologie auf eine separate und unabhängige Erfassung und
  Handhabung der umzusetzenden Anforderungen (Merkmalmodell) und deren Lösungen
  (Familienmodell). Dies ermöglicht eine vereinfachte Wiederverwendung sowohl der Lösung
  als auch der Merkmalmodelle in neuen Projekten.
3. Realisierung der Lösungen:
  Unter Einsatz der durch die gewählten Programmiersprachen und -werkzeuge verfügbaren
  Programmiermöglichkeiten, und der durch pure::variants zur Verfügung gestellten
  zusätzlichen Möglichkeiten zur Variantenbildung, werden die Lösungen erstellt.

               Abbildung 2: Ablauf der Erstellung einer Problemlösung mit pure::variants

Während des oben beschriebenen Entwicklungsprozesses dient die pure::variants
Technologie zur Erfassung und Verwaltung aller Modelle und Informationen. Das Resultat ist
eine auf Basis des Merkmalmodells flexibel anpassbare Softwarefamilie bzw. Produktlinie.
Darauf aufbauend ermöglicht pure::variants die automatische Erstellung maßgeschneiderter

                                                   5
pure::variants-unterstütztes Entwickeln mit Varianten

Lösungen eines konkreten Problems. Einen Überblick über diesen Erstellungsprozess gibt
Abbildung 2. Die innovativen Aspekte dieses Prozesses sind hinterlegt.
Der prinzipielle Ablauf ist:
1. Ermittlung einer gültigen Kombination von Merkmalen:
   Der Anwender (Kunde, Vertrieb) wählt aus dem Merkmalmodell die für ihn relevanten
   Merkmale des zu lösenden Problems aus. Die Überprüfung der gewählten Merkmals-
   kombination auf Gültigkeit (d.h. die Untersuchung aller Abhängigkeitsregeln) sowie
   gegebenenfalls die automatische Auflösung von Abhängigkeitskonflikten erfolgt durch
   pure::variants unter Einsatz von Methoden und Werkzeugen der künstlichen Intelligenz.
   Dadurch kann sichergestellt werden, dass auch komplexe Abhängigkeitsszenarien korrekt
   und effizient umgesetzt werden. Das Ergebnis ist eine Kombination von Merkmalen, die das
   zu lösende Problem in einer von den Entwicklern der Modelle vorgesehenen Weise
   beschreibt.
2. Auswahl einer passenden Lösung:
   Auf der Basis der gewählten Merkmale wird nun das Familienmodell genutzt, um eine
   passende Lösung zu finden. Anhand der im Familienmodell gespeicherten Informationen
   wird die ermittelte Merkmalskombination durch jede Komponente und ihre logischen und
   physischen Bestandteile analysiert. Dies geschieht ebenfalls mit Methoden der künstlichen
   Intelligenz. Für jeden Bestandteil wird entschieden, ob und in welcher Form er zu der
   Lösung gehört. Eventuell dabei auftretende Probleme durch weitergehende Abhängigkeiten
   werden ebenfalls, soweit möglich, automatisch aufgelöst oder dem Anwender zur Lösung
   übergeben.
   Das Ergebnis ist eine Beschreibung der ausgewählten Lösung in Form einer Lösungsbe-
   schreibung.
3. Erzeugen der Lösung:
   Gesteuert durch die Komponentenbeschreibung wird ein Transformationsprozess durchge-
   führt, dessen Ergebnis die fertige Softwarelösung in der vom Anwender gewünschten Form
   ist. Im Verlauf dieses Prozesses werden die jeweils notwendigen Transformationsmodule
   aktiviert und führen die in der Lösungsbeschreibung spezifizierte Umsetzung durch.
Nicht nur die Neuerstellung von Produktlinien, sondern insbesondere auch die Einbindung
existierender Software (Reengineering) in die Produktlinienbasierte Entwicklung ist mit
pure::variants einfach möglich. Dazu beginnt der Prozess statt mit der Entwicklung der
gemeinsamen Teile mit der (teil-) automatischen Erstellung des Familienmodells auf der Basis
der bereits erstellten Software und mit dem schrittweisen Aufbau des zugehörigen Merkmal-
modells durch die Nutzer. Der weitere Ablauf ist dann analog zu der oben skizzierten
Vorgehensweise.

                                               6
Variantenbildung mit pure::variants

4 Variantenbildung mit pure::variants
Die pure::variants Werkzeugkette wurde für die Entwicklung und Erstellung von Software-
Produktlinien konzipiert. Sie unterstützt die Verwaltung und Erstellung der unterschiedlichen
Varianten einer solchen Produktlinie. Die Basis der Werkzeuge bilden die unterschiedlichen
Modelle, welche für die Beschreibung des Problembereiches der Produktlinie, für die
Beschreibung der Umsetzung, sowie für die Auswahl eines spezifischen Produktes genutzt
werden.
Die zentrale Rolle spielen dabei Merkmalmodelle. Sie erlauben eine einheitliche Darstellung
der Gemeinsamkeiten und Unterschiede zwischen den Produkten der gesamten Produktlinie.
Im Vergleich zu in anderen Methoden genutzten Merkmalmodellen verwendet pure::variants
eine erweiterte Variante der Merkmalmodelle. Eine genaue Beschreibung erfolgt im Abschnitt
4.1.
Eine spezifische Implementierung der Produktlinie wird durch das Familienmodell
beschrieben. Es ermöglicht die Abbildung der Benutzeranforderungen auf Implementierungen
variabler Familienelemente. Hierzu gehört ebenfalls die Anpassung von Komponenten für eine
bestimmte Anwendung. Dieses Modellart wurde extra für die pure::variants Technologie
entwickelt, da existierende Modellierungsmodelle wie UML oder SDL dafür nicht geeignet
sind. Das Familienmodell ist in Abschnitt 4.2 im Detail beschrieben.
Die Merkmalsauswahl (feature selection) wird zur Beschreibung eines bestimmten Produktes
genutzt. Sie beschreibt, welche Eigenschaften und damit verbundene Werte das zu
erzeugende Produkt haben soll und wird für die Steuerung der Erzeugung verwendet.

            Abbildung 3: pure::variants Transformationsprozess

Abbildung 3 gibt einen Überblick über den grundlegenden Variantenbildungsprozess mit
pure::variants. Sind die unterschiedlichen Modelle erst einmal erstellt, so werden alle
weiteren Schritte automatisch durchgeführt. Die Entwickler der Produktlinie sind für das
Erstellen des Merkmalmodells sowie der Familienbeschreibung mittels Familienmodell
verantwortlich. Die Auswahl der Merkmale erfolgt durch den Benutzer. Dies kann sowohl ein
Mensch, als auch ein Werkzeug sein, welches anhand einer Anwendung automatisch die
benötigten Merkmale ermittelt. Die Verarbeitung erfolgt dann in zwei Schritten. Zuerst
analysiert pure::variants die unterschiedlichen Modelle. Dabei wird ein Konstruktionsplan

                                                   7
Variantenbildung mit pure::variants

erstellt, anhand dessen im zweiten Schritt die angepassten Lösungselemente für das
Zielprodukt erzeugt werden.
Der wesentliche Unterschied zwischen pure::variants und vergleichbaren Ansätzen besteht
darin, daß die in pure::variants verwendeten Modelle nur beschreiben, was zu tun ist, aber
nicht wie es zu tun ist. pure::variants stellt nur die benötigten Mechanismen zur Verfügung.
Diese können durch den Benutzer einfach entsprechend seinen Bedürfnissen durch (eigene)
Module erweitert werden. Damit ist die pure::variants Technologie weder auf einen
bestimmten Entwicklungsprozess noch auf eine bestimmte Sprache oder Methode festgelegt,
und kann somit in jeden beliebigen Entwicklungsprozess integriert werden. Dieser hohe Grad
an Flexibilität wird durch die Kombination zweier sehr leistungsfähiger Sprachen innerhalb
pure::variants erreicht.
Ein weiterer wichtiger Unterschied liegt innerhalb des Konfigurationsprozesses. Hier kommen
neuartige Algorithmen zur Überprüfung der Modelle und Zusammenstellung der Transforma-
tionsbeschreibung zum Einsatz. Dabei wird auf die aus dem Bereich der Künstlichen
Intelligenz stammende logische Programmiersprache Prolog zurückgegriffen. Nach der
Umwandlung der Modelle in sogenannte Prolog-Fakten erfolgt die Prüfung der Auswahl
bezüglich Gültigkeit und Vollständigkeit. Im ersten Schritt wird die Korrektheit in Bezug auf das
Merkmalmodell geprüft. Anschließend erfolgt die Überprüfung der zusätzlichen Anforder-
ungen, die sich aus dem Familienmodell ergeben. Konflikte, die zum Beispiel durch implizite
Abhängigkeiten von Merkmalen und Familienelementen entstehen, werden erkannt. Zur
automatischen Auflösung dieser Konflikte kommen durch pure-systems entwickelte
heuristische Verfahren zum Einsatz. Bei nicht automatisch lösbaren Problemen werden diese
angezeigt und der Konfigurationsvorgang unterbrochen. Ist die Auswahl gültig und vollständig,
wird eine Transformationsbeschreibung in XML erzeugt, welche für den weiteren
Erstellungsvorgang genutzt wird.
Für den Transformationsprozess wurde die XML-basierte Sprache XMLTS entwickelt. Mittels
dieser Sprache wird der Anpassungs- bzw. Transformationsprozess durch die Definition der
einzelnen durchzuführenden Aktionen beschrieben. Die einzelnen Aktionen werden auf
Grundlage der durch den vorherigen Schritt erzeugten Transformationsbeschreibung
ausgelöst. Alle Aktionen werden durch Transformationsmodule implementiert. Sind die
vordefinierten Transformationen nicht ausreichend, können jederzeit neue Transformationen
erstellt und durch die Nutzer integriert werden. In vielen Fällen kann dabei direkt auf XMLTS
zur Beschreibung einer neuen Transformation zurückgegriffen werden. Für komplexere
Aktionen sind speziell erstellte Module notwendig. Zur Steuerung des Ablaufs der
Transformationen können sowohl XMLTS als auch alle Module auf die kompletten
Informationen innerhalb von pure::variants zugreifen (Merkmalmodell, Merkmalsauswahl,
Familienmodell, Quellen, u.v.m.). Dadurch können Transformationen durchgeführt werden, die
mit herkömmlichen Technologien nicht möglich sind, da diese nur begrenzte Informationen
über einzelne Elemente einer Softwarelösung haben.

4.1 pure::variants Merkmalmodelle
Das Merkmalmodell beinhaltet die Gemeinsamkeiten und Unterschiede der Produktlinie. Dabei
repräsentiert ein Merkmal eine für den Benutzer sichtbare Systemeigenschaft. Diese wird

                                               8
Variantenbildung mit pure::variants

durch die zugehörige Merkmalsbeschreibung näher charakterisiert. Aus dieser Erläuterung
muss deutlich erkennbar sein, welche Auswirkungen die Auswahl dieses Merkmales hat.

                    Abbildung 4: Merkmalmodell

Innerhalb des Modells sind die einzelnen Merkmale in Form eines azyklischen Graphen
dargestellt. Die Knoten entsprechen den Merkmalen. Die Kanten beschreiben die
Basisbeziehung (zwingend, optional, alternativ, oder) zwischen den einzelnen Merkmalen.
Abbildung 4 zeigt die grafische Darstellung eines einfachen Merkmalmodells.

Merkmale mit Wertzuweisungen
Für die Beschreibung komplexer Probleme ist es erforderlich, dass Werte unterschiedlichen
Typs an Merkmale zugewiesen werden können. Die pure::variants Merkmalmodelle unter-
stützen diesen Sachverhalt, indem jedem Merkmal eine beliebige Anzahl von Attributen
(benannte Typ/Wert-Paare) zugewiesen werden kann. Der gespeicherte Wert kann sowohl zur
Entscheidungsfindung, als auch während der Transformation genutzt werden.

Merkmale mit Restriktionen
Zusätzlich zu den oben genannten Basisbeziehungen zwischen den Merkmalen ermöglicht
das pure::variants Modell die Beschreibung von weiteren komplexen Restriktionen zwischen
beliebigen Merkmalen. Sie werden durch logische Regeln ausgedrückt und stellen Querver-
bindungen innerhalb des Graphen dar. Durch diesen flexiblen Mechanismus können
Abhängigkeiten der Merkmale wie Konflikte zwischen Merkmalskombinationen oder die
implizite Einbeziehung eines weiteren Merkmals einfach dargestellt werden.

Hierarchien von Merkmalmodellen
Im Unterschied zu anderen Ansätzen die auf Merkmalmodellen beruhen, erlaubt pure::variants
den Einsatz von beliebig vielen, miteinander durch Abbildungsvorschriften verbundenen
Merkmalmodellen. Alle anderen bekannten Ansätze verwenden lediglich ein einzelnes
Merkmalmodell. Die Nutzung mehrerer Merkmalmodelle erlaubt die konsistente Einbindung
verschiedener Sichtweisen auf die Gemeinsamkeiten und Unterschiede einer Produktlinie.
Dadurch sind zum Beispiel Modelle mit unterschiedlichem Detaillierungsgrad möglich (Kunde:
geringer Detaillierungsgrad, Vertrieb: mittlerer Detaillierungsgrad, Entwicklung: maximaler
Detaillierungsgrad). Durch die hierarchische Verbindung der verschiedenen Modelle ist in
jedem Fall die Konsistenz der Merkmalskombinationen gewahrt. Auch die Kombination von

                                                 9
Variantenbildung mit pure::variants

verschiedenen Produktlinien(-teilen) zu einer neuen Produktlinie kann dadurch vereinfacht
werden. Hierzu ist nur ein übergeordnetes Modell zu erstellen, welches Bezug auf die bereits
existierenden Modelle der zu integrierenden Produktlinien nimmt.

4.2 pure::variants Familienmodell
Das pure::variants Familienmodell beschreibt die interne Struktur der einzelnen
Familienelemente einer Produktlinie und ihre Abhängigkeiten von den Merkmalen. Mittels
dieser Beschreibung werden die unterschiedlichen Familienelemente an die Merkmale
gebunden. Der Begriff Familienelement ist hierbei sehr weit gefasst. Im Sinne von
pure::variants umschließt ein Familienelement eine Menge konfigurierbarer Funktionalitäten.
Die Abbildung 5 gibt einen Überblick über die hierarchische Struktur des Familienmodells.

         Abbildung 5: Familienmodell

Im folgenden Abschnitt werden die Elemente des Familienmodells kurz vorgestellt:
Komponente: Die grundlegenden Elemente im Modell stellen die Komponenten dar. Sie sind
  eindeutig benannt und bestehen aus mindestens einem Bestandteil (Part), welcher
  weiterhin durch seine Quellen (Source) definiert ist.
  Eine Komponente kapselt eine oder mehrere Funktionalitäten, die Merkmale aus dem
  Merkmalmodell der Produktlinie realisieren.
Bestandteil: Ein Bestandteil ist ein benanntes, typisiertes Element, welches genau einer
  Komponente zugeordnet ist. Es wird durch mindestens eine Quelle definiert.
  Bestandteile können logische Elemente einer Programmiersprache sein, wie z.B. Klassen,
  Funktionen oder Objekte. Aber auch jedes sonstige Element der internen oder externen
  Struktur einer Komponente wird durch ein Bestandteil beschrieben. Hierzu gehören
  beispielsweise Schnittstellen, Spezifikationen und Grafiken. pure::variants verfügt über eine
  Reihe vordefinierter Typen (class, object, flag, classalias, variable). Die Einführung weiterer
  Typen entsprechend den Anforderungen des Nutzers sind jederzeit durch benutzer-
  definierte Erweiterungen möglich.
Quellen: Die Beschreibung der physischen Repräsentation eines Bestandteils erfolgt mittels
  seiner Quelle(n). Eine Quelle ist ein getypter Eintrag. Anhand des Typs wird entschieden,
  welche Transformationsmodule während der Transformation zur Erstellung des Bestand-
  teils auszuführen sind. Eine einfache Aktion eines Transformationsmoduls stellt z.B. das

                                               10
Variantenbildung mit pure::variants

  Kopieren einer Datei an ein spezifiziertes Ziel dar. Es ist ebenso möglich, neue Dateien zu
  generieren, wie es von den Transformationsmodulen zur Erstellung eines „classalias“ oder
  „flag“ erfolgt. Durch die Einführung eines neuen Quellentyps können beliebige neue
  Transformationsmodule mit eigenen Aktionen integriert werden.
Alle Elemente des Familienmodells lassen sich mit Restriktionen versehen. Durch diese
Restriktionen erfolgt die Bindung an ein Merkmal bzw. eine Kombination von Merkmalen. Es ist
damit ebenfalls möglich spezifische Eigenschaften der Implementierung auszudrücken. Zum
Beispiel die Unverträglichkeit von zwei Komponenten in bestimmten Merkmalskombinationen.

4.3 Module
Die Fähigkeiten der pure::variants Technologie lassen sich mittels verschiedenartiger Module
variabel erweitern. Sie kommen an unterschiedlichen Stellen zum Einsatz. Zum einen
erweitern Transformationsmodule die ausführbaren Aktionen während der Produkterstellung.
Zum anderen dienen integrierende Module zur Anbindung an externe Prozesse und Werk-
zeuge.
Die bereits vorhandenen Module decken folgende Bereiche ab:

Modell - und Programmiersprachen
Standard Transformation: Bereitstellung typischer Familienelementtypen und zugehöriger
   Transformationsmuster für gängige Programmiersprachen wie C/C++ und Java. Die
   Standardtransformation kann durch kundenspezifische Transformationen ergänzt werden.
Connector für Simulink: Ermöglicht die Verwaltung von Variabilitätsinformationen für
  Matlab/Simulink Modelle in Familienmodellen.

Integration in Entwicklungsprozesse
Transformer für Versionsverwaltungssysteme: Der Transformer bindet existierende Konfigu-
   rationsmanagementsysteme in die Lösungstransformation ein. Erst die Integration von
   Variantenmanagement und Konfigurationsmanagement in eine gemeinsame Lösung erlaubt
   eine effiziente Zusammenarbeit bei der Entwicklung und Nutzung von komplexer Software
   in größeren Teams.
Synchronizer für Anforderungsmanagement: Klassische Anforderungsmanagementwerkzeuge
  werden um die Fähigkeit zur Verwaltung von Variabilitätsinformationen in Merkmal-
  modellen erweitert. pure::variants Merkmalmodelle werden direkt mit den Anforderungen
  im externen Anforderungsmanagementwerkzeug verbunden. Damit können Varianten von
  Anforderungsdokumenten schnell erstellt werden und die Merkmalmodelle auch im
  weiteren Softwaredesign genutzt werden.

                                            11
Produkte

5 Produkte
Ausgehend von der Basistechnologie ergeben sich unterschiedliche Produkte für verschie-
dene Einsatzszenarien.

5.1 Developer Edition
Die pure::variants Developer Edition dient der Unterstützung der Softwareentwickler bei
Entwurf, Erstellung und Einsatz von Softwarefamilien. Sie ermöglicht den Nutzern, die
pure::variants Technologie bei der Realisierung von eigenen Softwareprojekten einzusetzen.
Sie ist als eigenständiges Werkzeug oder als sogenanntes PlugIn zur nahtlosen Einbindung in
integrierte Entwicklungsumgebungen (Eclipse, Rational Software Architect, ...) verfügbar und
ergänzt damit die anderen Entwicklungswerkzeuge wie CASE Tools, Editoren, Compiler und
Debugger.

5.2 Integration Edition
Die pure::variants Integration Edition erlaubt es den Kunden die pure::variants Technologie in
eigene Softwareprodukte zu integrieren. So kann zum Beispiel die Konfigurierung eines
eingebetteten Betriebssystems durch den Kunden mit einem vom Hersteller des Betriebs-
systems entwickelten Programm auf Basis der Integration Edition realisiert werden.
Durch die Nutzung der Integration Edition können Kunden auf eine sonst notwendige
komplette Eigenentwicklung im Bereich Variantenmanagement verzichten. Durch die
universelle Auslegung der Integration Edition sind alle benötigten Grundfunktionen bereits
vorhanden und erprobt. Es ist nur noch die Anpassung der graphischen Oberfläche und des
Transformationsablaufs nötig. Damit ergeben sich Qualitätsvorteile und natürlich auch
verkürzte Entwicklungszeiten.

5.3 Server Edition
Die pure::variants Server Edition ermöglicht eine zentralisierte Verwaltung von
Softwareproduktlinien, zum Beispiel in Entwicklungsabteilungen, oder auch den Vertrieb von
kundenspezifischen Konfigurationen einer Software über das Internet, ohne dass beim
Entwickler/Kunden eine Installation von pure::variants vorhanden sein muss. Ein wesentlicher
Effekt beim Einsatz der Server Edition ist die zentralisierte Verwaltung der Varianten in einer
Organisation analog zum meist ebenfalls zentralisierten Softwarekonfigurationsmanagement.
Dadurch ergeben sich Einsparpotentiale bei den Personalkosten, da eine zentrale Wartung in
der Regel günstiger ist als eine dezentrale. Für Vertriebslösungen auf Basis der Server Edition
spricht die Möglichkeit, ohne das Risiko von Weitergabe des unternehmensinternen Wissens
über die Gesamtstruktur einer Softwarelösung kundenspezifische Lösungen durch den
Kunden selbst erstellen zu lassen. Dies kann zu einer Kostenreduktion auf beiden Seiten
führen, da einerseits der Kunde selbst sehr genau bestimmen kann, was er wirklich braucht
(und bezahlen muss) und andererseits der Betrieb einer Serverlösung sehr kostengünstig ist.

                                              12
Produkte

5.4 Erweiterungsmodule
Die pure::variants Module dienen der flexiblen Erweiterung der verschiedenen pure::variants
Editionen um zusätzliche Funktionalitäten. Die Module decken unterschiedliche Bereiche und
Aufgaben innerhalb der Softwareentwicklungsprozesse ab. Beispiele für Module sind die
Einbindung einer Software Configuration Management Lösung zur Versionsverwaltung oder
die Erweiterung der Möglichkeiten zur Umsetzung von Variantenbildung für ausgewählte
Programmiersprachen.

6 Zusammenfassung
Bei immer kürzer werdenden Innovationszyklen steigt die Anforderung an heutige Software-
systeme bezüglich ihrer Langlebigkeit stark an. Wesentliche Grundlage für eine lange Lebens-
dauer von Softwaresystemen ist deren Anpassungsfähigkeit für unvorhergesehene bzw. nicht
berücksichtigte (Kunden-)Anforderungen. Ein erfolgversprechender Lösungsansatz sind
Produktlinien, bei denen Software nicht nur für ein Produkt, sondern für eine Klasse von
Produkten entwickelt wird. Durch die einmalige Erstellung gemeinsamer Anteile (Assets)
werden Synergien ausgenutzt, die in klassischen Ansätzen der Softwaretechnik nicht zum
Tragen kommen. Damit sich Produktlinien realistisch in der Softwareentwicklung einsetzen
lassen, sind Werkzeuge notwendig, die den gesamten Prozess ausgehend vom Entwurf bis hin
zur Umsetzung unterstützen. Speziell die effiziente Verwaltung und Realisierung der
Variantenbildung innerhalb der gemeinsamen Anteile stellt eine technologische Heraus-
forderung dar. Die pure-systems GmbH unterstützt mit ihren auf der pure::variants-Techno-
logie basierenden Variantenmanagement-Werkzeugen diesen Gesamtprozess.

                                            13
Sie können auch lesen