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

S/N Publication
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 and 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) pp. 91-96. ACM.
10. Klaus Schmid and Holger Eichelberger (2017): Variability Modeling with EASy-Producer In: Proceedings of the 21st International Systems and Software Product Line Conference vol. A. pp. 251-251. ACM.
2016
9. Holger Eichelberger, Cui Qin, Roman Sizonenko and 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 pp. 204 - 208. ACM.
8. Klaus Schmid and 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 pp. 309-309. ACM.
2015
7. Sascha El-Sharkawy, Christian Kröher, Holger Eichelberger and 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 and Klaus Schmid (2015): IVML: A DSL for Configuration in Variability-rich Software Ecosystems In: Proceedings of the 19th International Conference on Software Product Line pp. 365-369. ACM.
5. Klaus Schmid and Holger Eichelberger (2015): EASy-Producer: From Product Lines to Variability-rich Software Ecosystems In: Proceedings of the 19th International Conference on Software Product Line pp. 390-391. ACM.
4. Holger Eichelberger and 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 and 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 vol. 2. pp. 133-137. ACM.
2011
2. Sascha El-Sharkawy, Christian Kröher and Klaus Schmid (2011): Support for Complex Product Line Populations In: Ina Schaefer and Isabel John and Klaus Schmid (ed.): Demonstration and Tools at the 15th International Software Product Line Conference (SPLC '11) vol. 2. ACM.
1. Sascha El-Sharkawy, Christian Kröher and Klaus Schmid (2011): Supporting Heterogeneous Compositional Multi Software Product Lines In: Ina Schaefer and Isabel John and Klaus Schmid (ed.): 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 vol. 2. ACM.