Variability & Software Product Lines
Summary of Most Relevant Topic Papers
Most products, such as cars, printers, mobile phones, etc., exist in various variants. Software for product variants is quite similar, but typically differs in new or additional features that sometimes deeply affect the software’s architecture. Software variants are managed as a Software Product Lines (SPLs) that captures the commonalities as well as the differences. Software Product Lines have many benefits, they:
- decrease development time of new product variants,
- decrease time to market,
- lead to better software quality,
- improve reuse, and
- reduce bug fix time
[GHK+08] [GRJA12] [HKM+13] [HHK+15] [BEK+19].
Variability is to a larger extent related to evolution. We discuss our approaches to evolution understanding in evolution & transformation of models.
Feature Diagrams and Views
Feature diagrams are a popular mechanism to describe variability in a top down fashion, e.g., in the automotive domain [GHK+08] using 150% models. Reducing overhead and associated costs is discussed in [GRJA12]. Feature diagrams suffer from the need to first decompose the problem space and understand possible features in order to build the feature diagram before being able to apply it. In [GHK+08] and [GKPR08] we also speak of a 150% model. This normally enforces a product line definition phase in which the requirements and features need to be collected which creates additional costs. Among others we discuss decreasing these costs in [GRJA12].
Delta Modeling
Delta modeling is a bottom up technique starting with a small, but complete base variant. Features are additive, but also can modify the base variant. A set of commonly applicable deltas configures a system variant. We discuss the application of this technique to Delta-MontiArc [HRR+11] and to Delta-Simulink [HKM+13]. Deltas can not only describe spacial variability but also temporal variability which allows for using them for software product line evolution [HRRS11] [HRRS12].
In [HHK+13] and [HHK+15] we have generalized this approach to investigate, how to synthesize a delta modeling language based on a given modeling language. Thus deltas can generally be applied to almost any language. Delta language derivation is a application of the general principle of language derivation discussed in [HRW15].
Variability in Language Definitions
On a related line of research, we also have studied variability of modeling languages, which allows us to define and reason about syntactic and semantic variation points, which is, e.g., in the UML a big topic as it seems the UML standard will otherwise not be able to accommodate all stakeholder requirements.
For this purpose we defined a systematic way to define variants of modeling languages [CGR09]. We applied this research, e.g., in the form of semantic language refinement on state charts in [GR11]. Additionally, we investigated a method to model syntactic language variability through language product lines and applied it e.g. to the generative aspect of a language tool in [GMR+16].
In [PFR02] we discussed how to apply annotation to the UML to describe product variation points. Current work continues this line of research to support the definition and development of 150% language families for textual and generative modeling languages [BEK+18b] [BEK+19].
SPL and Delta Modeling in Industry
We have introduced SPL and delta modeling in several companies and are proud of succesfully helping companies to manage their variants. We also learnt, that industrial success means that each company needs a tailored process that fits the company culture, used tool chains, size of products and the desired agility of variant construction. SPL does not come free of initial cost.
A typical SPL introduction process consists of three stages: (1) Understanding the current situation in the company. Current process? Size of projects? Number of existing and planned variants? How similar are those? Current costs of evolution for individual products? Available and desired tool chain? (2) Derivation of a long list of potential technical, process and organizational measures for an SPL based future with efficient development of high quality systems. Categorization and priorization. (3) Implementing the most promising steps and understand the effects.
Key Statements
- Products often exist in various variants. Variants are managed in a Software Product Line (SPL) that captures commonalities and differences.
- Modeling variants explicitly is essential to tame complexity of otherwise 150% models.
- Delta modeling is a bottom-up technique starting with a running base variant and can more easily be applied to derive and implement SPLs from existing products in industrial size projects.
- Delta-concepts are successfully applied to MontiArc and Simulink.
- Variability applied to modeling languages allows to capture semantic variation. This is essential to capture the semantics of the UML.
- Industrial introduction of SPL based development needs organizational and process adaptation and needs to be tailored to the individual company.
Selected Topic-Specific Publications
-
[BEK+19]In: Journal of Systems and Software (JSS), R. C. Sevilla, L. Fuentes, M. Lochau (Eds.), Volume 152, pp. 50-69, Elsevier, Jun. 2019.
-
[BEK+18b]In: International Conference on Systems and Software Product Line (SPLC’18), ACM, Sep. 2018.
-
[GMR+16]In: Modellierung 2016 Conference, Volume 254, pp. 141-156, LNI, Bonner Köllen Verlag, Mar. 2016.
-
[HHK+15]In: Journal on Software Tools for Technology Transfer (STTT), Volume 17(5), pp. 601-626, Springer Berlin Heidelberg, Oct. 2015.
-
[HRW15]In: Conference on Model Driven Engineering Languages and Systems (MODELS’15), pp. 136-145, ACM/IEEE, 2015.
-
[HHK+13]In: Software Product Line Conference (SPLC’13), pp. 22-31, ISBN 978-1-4503-1968-3, ACM, 2013.
-
[HKM+13]In: Variability Modelling of Software-intensive Systems Workshop (VaMoS’13), pp. 11-18, ACM, 2013.
-
[HRRS12]In: Large-Scale Complex IT Systems. Development, Operation and Management, 17th Monterey Workshop 2012, pp. 183-208, LNCS 7539, Springer, 2012.
-
[GRJA12]In: Requirements Engineering: Foundation for Software Quality (REFSQ’12), 2012.
-
[GR11]In: Workshop on Modeling, Development and Verification of Adaptive Systems, pp. 17-32, LNCS 6662, Springer, 2011.
-
[HRR+11]In: Software Product Lines Conference (SPLC’11), pp. 150-159, ISBN 978-1-4577-1029-2, IEEE, 2011.
-
[HRRS11]In: Tagungsband des Dagstuhl-Workshop MBEES: Modellbasierte Entwicklung eingebetteterSysteme VII, pp. 1 - 10, fortiss GmbH, 2011.
-
[CGR09]In: Conference on Model Driven Engineering Languages and Systems (MODELS’09), pp. 670-684, LNCS 5795, Springer, 2009.
-
[GKPR08]In: Modellbasierte Entwicklung von eingebetteten Fahrzeugfunktionen, pp. 76-89, Informatik Bericht 2008-01, TU Braunschweig, 2008.
-
[GHK+08]In: Proceedings of 4th European Congress ERTS - Embedded Real Time Software, 2008.
-
[PFR02]In: Software Product Lines Conference (SPLC’02), pp. 188-197, LNCS 2379, Springer, 2002.
Related Topics
- Domain-Specific Languages (DSLs)
- Evolution & Transformation of Models
- Generative Software Engineering
- MontiArc - Architectural Modeling
- MontiCore - Language Workbench
- Semantics of Modeling Languages
- Software Language Engineering (SLE)