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
- Wiki
- Übersicht: Textuelle Variabilitätsmodellierungssprachen
- Topologische Konfiguration
- EASy-Producer Source @ github
- EASy-Producer Eclipse Update Site
- EASy-Producer Eclipse Nightly Update Site
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
Zusammenfassung Product Line Engineering is a software engineering approach that aims at maximizing reuse by handling variation in a systematic and disciplined manner. Its power has been widely proven in industrial practice. However, the approach is sometimes regarded as too restrictive and leading even to additional development complexity. Here, we introduce a number of underlying principles for product line engineering along with an open-source toolset. The principles can also be (partially) applied independently of a specific tool support. Here, we discuss both the underlying principles as well as the realization of the toolset. |
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.
Zusammenfassung In large and complex systems there is a need to monitor resources as it is critical for system operation to ensure sufficient availability of resources and to adapt the system as needed. While there are various (resource)-monitoring solutions, these typically do not include an analysis part that takes care of analyzing violations and responding to them. In this paper we report on experiences, challenges and lessons learned in creating a solution for performing requirements-monitoring for resource constraints and using this as a basis for adaptation to optimize the resource behavior. Our approach rests on reusing two previous solutions (one for resource monitoring and one for requirements-based adaptation) that were built in our group. |
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.
Zusammenfassung EASy-Producer is an open-source research toolset for engineering product lines, variability-rich software ecosystems, and dynamic software product lines. In this tutorial, we will focus on its (textual) variability modeling capabilities as well as its configuration and validation functionality. Further, we will provide an outlook on how EASy-Producer can be applied to variability instantiation. |
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.
Zusammenfassung Creating product lines of Big Data stream processing applications introduces a number of novel challenges to variability modeling. In this paper, we discuss these challenges and demonstrate how advanced variability modeling capabilities can be used to directly model the topology of processing pipelines as well as their variability. We also show how such processing pipelines can be modeled, configured and validated using the Integrated Variability Modeling Language (IVML). |
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)
Zusammenfassung Software Product Line Engineering (SPLE) is a systematic approach for the development of related software products. These products share a common infrastructure but vary with respect to their individual capabilities, called variabilities. Variability management is a key part of SPLE and is responsible for developing, combining and configuring such variabilities. As these activities are inherently complex, SPLE significantly benefits from tool-support. We developed a customizable Eclipse extension for SPLE that consists of around 38 plug-ins. The resulting tool, called EASy-Producer, extends the Eclipse IDE by the capability to support the creation and management of software product line projects. To provide this capability, EASy-Producer utilizes the extension concepts of the Eclipse platform and integrates additional frameworks, like Xtext. In this paper, we share our experience while applying the Eclipse technologies and, in particular, realizing specific capabilities of our tool using the Eclipse framework. The focus of this paper is on our lessons learned regarding managing workspace information and conflicting build mechanism as well as using Eclipse extensions outside of Eclipse. These lessons serve as an input to the Eclipse community and may help other developers in realizing a complex Eclipse extension. |
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.
Zusammenfassung Variability-rich Software Ecosystems need configuration capabilities just as in any product line. However, various additional capabilities are required, taking into account the software ecosystem characteristics. In order to address these specific needs, we developed the Integrated Variability Modeling Language (IVML) for describing configurations of variability-rich software ecosystems. IVML is a variability modeling and configuration language along with accompanying reasoning facilities. |
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.
Zusammenfassung The EASy-Producer product line environment is a novel open-source tool that supports the lightweight engineering of software product lines and variability-rich software ecosystems. It has been applied in several industrial case studies, showing its practical applicability both from a stability and a capability point of view. The tool set integrates both, interactive configuration capabilities and a DSL-based approach to variability modeling, configuration definition and product derivation. The goal of the tutorial is to provide the participants with an overview of the tool. However, the main focus will be on a brief introduction of the DSLs. After participating in the tutorial, the participants will understand the capabilities of the toolset and will have a basic practical understanding of how to use it to define software ecosystems and derive products from them. |
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.
Zusammenfassung Development of software product lines requires tool support, e.g., to define variability models, to check variability models for consistency and to derive the artifacts for a specific product. Further capabilities are required when product lines are combined to software ecosystems, i.e., management and development of distributed product lines across multiple different organizations. In this paper, we describe EASy-Producer, a prototypical tool set for the development of software product lines in general and variant-rich ecosystems in particular. To support the product line engineer, EASy-Producer differentiates between simplified views limiting the capabilities and expert views unleashing its full power. We will discuss how these two views support the definition of variability models, the derivation of product configurations and the instantiation of artifacts. |
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.
Zusammenfassung In this paper, we describe EASy-Producer, a prototypical tool for complex and large-scale Software Product Line (SPL) development. The tool enables SPL engineers to reduce complexity by combining derivation and composition techniques to manage one large SPL as a combination of individual, but interrelated SPLs. |
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.
Zusammenfassung Software Product Line Engineering is inherently complex. This complexity increases further if multiple product line infrastructures are composed to yield the final products, an approach sometimes referred to as Multi Software Product Lines (MSPL). In this paper, we present an approach that targets this development scenario. The approach we present here aims at a lightweight, scalable, and practical approach to variability management for multi software product lines. Our approach explicitly supports heterogeneous product lines, i.e. situations where the various product lines use different generation approaches. The approach has been implemented in the EASy-Producer tool set and applied on some case studies. |