EASy-Producer - Flexible Generation of Software Product Lines
EASy-Producer is a prototypical tool for the development of Software Product Lines (SPL) and variant-rich software ecosystems. EASy stands for Engineering Adaptive Systems and describes the easy development, management and combination of SPLs with this tool. For this purpose, EASy-Producer integrates efficient techniques for the reduction of complexity with support for the composition and partial instantiation of products. The Software Systems Engineering (SSE) group further develops these techniques continuously. The focus is, in particular, on the support for the development of large-scale and complex SPLs.
EASy-Producer supports the following approaches:
- Multi-staged product configuration
- Multi-dimensional variability modeling
- Multi-Software Product Lines
These principles are the state-of-the-art for large-scale and complex SPLs. Further, EASy-Producer is based on the following principles:
- Extensibility for product-specific requirements
- Products as configurable product lines
- Conceptual simplicity
Based on a decision modeling approach, the current prototype supports the description of the common and variable parts of a product line. The decisions towards a configuration of partial product lines or complete products are the basis for the automated instantiation of the corresponding software artifacts on the implementation level.
EASy-Producer is available as Eclipse-plug-in. Each SPL is managed in an individual product line project (PLP). The prototype distinguishes between a new, a partially, or a completely configured SPL which corresponds to a complete product. Figure 1 illustrates that each PLP can be part of a derivation chain. We can distinguish between three basic scenarios:
- A generic PLP can be (partially) instantiated by a more specific PLP. In Figure 1, the specific PLP PL_Picture is derived from the generic PLP PL_Graphics.
- Products can be directly derived from a PLP including open decisions. An example for this is Pd_1 in Figure 1.
- Multiple PLPs can be combined as a basis for an infrastructure or a product. Examples for this are PL_Picture and Pd_3 in Figure 1.
Figure 1: Example project structure
The decisions of a PLP made in the configuration step result in the instantiation of the corresponding artifacts of the PLP in the derivation step. In case of the PLP PL_Picture (cf. Figure 1), this means that all video-related artifacts are deleted while all functionalities for pictures are present. Each PLP stores the information about its predecessors and successors. However, it is not required to have all related projects locally available. Thus, EASy-Producer also supports collaborative work. Further, it is possible to use arbitrary, existing systems for configuration management.
Essential properties of EASy-Producer
- Flexible modeling of Software Product Lines
- Textual variability modeling using the INDENICA Variability Modeling Language (IVML)
- Integrated variability instantiation through Variability Instantiation Language (VIL)
- Expert and non-expert views, e.g., simplified views for configuration and expert view for modeling variability or product line instantiation
- Support for Multi-Software Product Lines
- Homogeneous variability modeling
- Support of heterogeneous implementation techniques
- Partial instantiation
- No differentiation between product lines and products (Products are product lines in which all variability is resolved)
News
EASy-Producer Release 1.2.0 of 05.06.2018 is available via Eclipse Update Site. Central EASy-Producer components are now also available via Maven Central.
Further links
- Wiki
- Overview on Textual Variability Modeling Languages
- Topological Configuration
- EASy-Producer Source @ github
- EASy-Producer Eclipse update page
- EASy-Producer Eclipse nightly update page
Duration: 2007 –
Contact: MSc Sascha El-Sharkawy
Publications
S/N | Publication |
---|---|
2017 | |
12. |
Klaus Schmid
(2017):
EASy-Producer - An Open Toolset for Lightweight Product Line Engineering
In:
Proceedings of Embedded World
abstract 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 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.
abstract 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 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.
abstract 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 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.
abstract 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 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)
abstract 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 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.
abstract 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 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.
abstract 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 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.
abstract 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 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.
abstract 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 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.
abstract 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. |