EASy-Producer – Flexible Generierung von Softwareproduktlinien

EASy-Producer ist ein prototypisches Tool zur Entwicklung von Software Produktlinien (SPL) variantenreichen Software-Ökosystemen. EASy steht für Engineering Adaptive Systems und beschreibt die einfache Erstellung, Verwaltung und Kombination von Software Produktlinien mit diesem Tool. Dazu werden effiziente Techniken zur Komplexitätsreduktion bei der Komposition und partiellen Ableitung von Produkten in EASy-Producer integriert und fortlaufend weiterentwickelt. Der Fokus liegt dabei besonders auf der Unterstützung für die Entwicklung von großen und komplexen Software Produktlinien.

Der EASy-Producer unterstützt die Ansätze:

  • Mehrstufige Produktkonfiguration
  • Mehrdimensionaler Variabilitätsmodellierung
  • Multi-Software Produktlinien

Diese Prinzipien stellen den aktuellen Stand der Forschung im Bereich großer und komplexer SPLs dar. Darüber hinaus basiert er auf folgenden Prinzipien:

  • Erweiterbarkeit für produktspezifische Anforderungen
  • Produkte als konfigurierte Produktlinien
  • Konzeptionelle Einfachheit

Auf Basis eines Entscheidungsmodellierungsansatzes lassen sich mit dem aktuellen Prototyp die gemeinsamen und variablen Anteile einer Produktlinie abbilden. Die getroffenen Entscheidungen hinsichtlich der Konfiguration von Teil-Produktlinien oder vollständiger Produkte sind der Ausgangspunkt für die automatische Instanziierung der entsprechenden Software-Artefakte auf Implementierungsebene.

Der EASy-Producer ist ein Eclipse-Plugin. Bei der Verwendung wird jede SPL in einem eigenen Produktlinien-Projekt (PLP) verwaltet. In dem Prototyp wird dabei zwischen einer neuen, partiellen und voll konfigurierten SPL (entspricht dem vollständigem Produkt) differenziert. Wie in Abbildung 1 dargestellt, kann jedes PLP Teil einer Ableitungskette sein. Dabei lassen sich drei grundsätzliche Szenarien unterscheiden:

  • Ein generisches PLP kann (teilweise) von einem spezifischeren PLP instanziiert werden. In Abbildung 1 ist das spezifische PLP PL_Picture von dem generischen PLP PL_Graphics abgeleitet.
  • Produkte können direkt mit offenen Decisions von einem PLP abgeleitet werden. Ein Beispiel hierfür ist Pd_1.
  • Multiple PLPs können als Basis für eine Infrastruktur oder ein Produkt kombiniert werden. Beispiele dafür sind PL_Picture und Pd_3.

Die im Konfigurationsschritt eines PLPs definierten Decisions führen zur Instanziierung der betroffenen Artefakte des PLPs innerhalb des Ableitungsschritts. Im Fall des PLPs PL_Picture (siehe Abbildung) bedeutet dies, dass alle Video-bezogenen Artefakte gelöscht sind, während die gesamte Funktionalität für Bilder weiterhin vorhanden ist. Jedes PLP speichert Informationen über seine Vorgänger und Nachfolger, wobei es nicht verpflichtend ist, dass alle verbundenen Projekte lokal verfügbar sind. Somit wird auch verteiltes Arbeiten unterstützt. Nebenbei ist auch die Nutzung beliebiger, vorhandener Systeme zum Konfigurationsmanagement möglich.

Wesentliche Eigenschaften des EASy-Producer

  • Flexible Modellierung und Instantiierung von Produktlinien
    • Textuelle Variabilitätsmodellierung durch die INDENICA Variability Modeling Language (IVML)
    • Integrierte Variabilitätsinstantiierung durch die Variability Instantiation Language (VIL)
  • Vereinfachte und Experten-Sichten, z.B., vereinfachte Sicht zum Konfigurieren und Experten-Editoren für Variabilitätsmodellierung und Instantiierung.
  • Unterstützung von Multi-Software Produktlinien
    • Homogene Variabilitätsmodellierung
    • Unterstützung von heterogenen Implementierungstechniken
  • Partielle Instanziierung
    • Keine Differenzierung zwischen Produktlinien und Produkten (Produkte sind Produktlinien, in denen alle Variabilitäten gebunden sind)

News

EASy-Producer Release 1.2.0 vom 05.06.2018 ist via Eclipse Update Site verfügbar. Zentrale EASy-Producer-Komponenten sind jetzt auch auf Maven Central.

Weiterführende Links

Laufzeit: 2007 – 

Kontakt: MSc Sascha El-Sharkawy

Publikationen