EASy-Producer – Flexible Generierung von Softwareproduktlinien

EASy-Producer

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.

        

                                            Abbildung 1: Beispiel Projektstruktur

 

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

Lfd. Nr. Publikation
2017
12. Klaus Schmid (2017): EASy-Producer - An Open Toolset for Lightweight Product Line Engineering In: Proceedings of Embedded World
11. Holger Eichelberger, Cui Qin und Klaus Schmid (2017): From Resource Monitoring to Requirements-based Adaptation: An Integrated Approach In: Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion (ICPE '17) S. 91-96. ACM.
10. Klaus Schmid und Holger Eichelberger (2017): Variability Modeling with EASy-Producer In: Proceedings of the 21st International Systems and Software Product Line Conference Bd. A. S. 251-251. ACM.
2016
9. Holger Eichelberger, Cui Qin, Roman Sizonenko und Klaus Schmid (2016): Using IVML to Model the Topology of Big Data Processing Pipelines In: Proceedings of the 20th International Systems and Software Product Line Conference S. 204 - 208. ACM.
8. Klaus Schmid und Holger Eichelberger (2016): EASy-Producer: From Product Lines to Variability-rich Software Ecosystems In: Proceedings of the 20th International Systems and Software Product Line Conference S. 309-309. ACM.
2015
7. Sascha El-Sharkawy, Christian Kröher, Holger Eichelberger und Klaus Schmid (2015): Experience from Implementing a Complex Eclipse Extension for Software Product Line Engineering In: Proceedings of the Eclipse Technology eXchange (ETX '15)
6. Holger Eichelberger und Klaus Schmid (2015): IVML: A DSL for Configuration in Variability-rich Software Ecosystems In: Proceedings of the 19th International Conference on Software Product Line S. 365-369. ACM.
5. Klaus Schmid und Holger Eichelberger (2015): EASy-Producer: From Product Lines to Variability-rich Software Ecosystems In: Proceedings of the 19th International Conference on Software Product Line S. 390-391. ACM.
4. Holger Eichelberger und Klaus Schmid (2015): Software konfigurieren statt programmieren mit EASy-Producer In: Eclipse Magazin (1.16): 89-94.
2014
3. Holger Eichelberger, Sascha El-Sharkawy, Christian Kröher und Klaus Schmid (2014): EASy-Producer: Product Line Development for Variant-rich Ecosystems In: Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops, Demonstrations and Tools Bd. 2. S. 133-137. ACM.
2011
2. Sascha El-Sharkawy, Christian Kröher und Klaus Schmid (2011): Support for Complex Product Line Populations In: Ina Schaefer and Isabel John and Klaus Schmid (Hrsg.): Demonstration and Tools at the 15th International Software Product Line Conference (SPLC '11) Bd. 2. ACM.
1. Sascha El-Sharkawy, Christian Kröher und Klaus Schmid (2011): Supporting Heterogeneous Compositional Multi Software Product Lines In: Ina Schaefer and Isabel John and Klaus Schmid (Hrsg.): Proceedings of the Joint Workshop of the 3rd International Workshop on Model-driven Approaches in Software Product Line Engineering and the 3rd Workshop on Scalable Modeling Techniques for Software Product Lines (MAPLE/SCALE 2011) at the 15th Internationa Bd. 2. ACM.