<< back to topics
Variability & Software Product Lines
Summary of Selected 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.
Feature diagrams and Views
Feature diagrams describe variability in a top down fashion in the problem space. We studied the application of this top down approach, e.g., in the automotive domain in [GKPR08]. They 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
We discuss delta modeling as a bottom up SPL modeling technique in [HRR+11]. Deltas can both be used as subsitute and as extension to traditional feature based development. Deltas allow us to build a product line incrementally starting with a base variant when the need for a new feature arises. Starting with a core version, each delta describes the changes necessary to derive a new variant. Deltas allow to add, replace, modify and delete components of a model resp. implementation and is thus rather general.
Each set of valid deltas configures a product variant. We have successfully applied delta modeling to the architectural analysis and design language (ADL) MontiArc by creating Delta-MontiArc ([HRR+11] and [HRRS12]) as well as applied it to Simulink creating Delta-Simulink [HKM+13]. Deltas can not only describe spacial variability but also temporal variability which allows using them for software product line evolution [HRRS12].
In [HHK+15] we have generalized this approach to the general question, how to synthesize a delta modeling language based on a given modeling language. Thus deltas can generally be applied to other languages too.
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 cite("BEK+18"); ?>.
In [FPR02] we discussed how to apply annotation to the UML to describe product variation points.
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.
Summary
- 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 modelling 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.
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)
Selected Related Publications
-
[BEK+18]
A. Butting, R. Eikermann, O. Kautz, B. Rumpe, A. Wortmann:
Controlled and Extensible Variability of Concrete and Abstract Syntax with Independent Language Features.
In: Proceedings of the 12th International Workshop on Variability Modelling of Software-Intensive Systems (VAMOS'18), pg. 75-82. ACM, Feb. 2018. Received Best Paper Award. - [HHK+15]
A. Haber, K. Hölldobler, C. Kolassa, M. Look, K. Müller, B. Rumpe, I. Schaefer, C. Schulze:
Systematic Synthesis of Delta Modeling Languages.
In: International Journal on Software Tools for Technology Transfer (STTT), vol. 17, pp. 601-626, Springer Berlin Heidelberg, October 2015. - [HKM+13]
A. Haber, C. Kolassa, P. Manhart, P. Mir Seyed Nazari, B. Rumpe, I. Schaefer
First-Class Variability Modeling in Matlab/Simulink
In: Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems, 23.-25.1.2013, pp. 11-18, ACM, New York, NY, USA. 2013 - [HRRS12]
A. Haber, H. Rendel, B. Rumpe, and I. Schaefer
Evolving Delta-oriented Software Product Line Architectures
In: Large-Scale Complex IT Systems. Development, Operation and Management, 17th Monterey Workshop Oxford, UK, LNCS Vol. 7539, pp. 183-208. March 19-21, 2012. - [GRJA12]
T. Gülke, B. Rumpe, M. Jansen, J. Axmann
High-Level Requirements Management and Complexity Costs in Automotive Development Projects: A Problem Statement
In: Requirements Engineering: Foundation for Software Quality 18th International Working Conference, Proceedings, REFSQ 2012, Essen, Germany, March 19-22, 2012. - [GR11]
H.Grönninger and B. Rumpe
Modeling Language Variability
In: Workshop on Modeling, Development and Verification of Adaptive Systems. 16th Monterey
Workshop, Redmond, Microsoft Research, March 31-April 2, 2010. LNCS vol. 6662,
pp. 17-32, Springer, 2011. - [HRR+11]
A. Haber, H. Rendel, B. Rumpe, I. Schaefer, F. van der Linden
Hierarchical Variability Modeling for Software Architectures
In: Proceedings of International Software Product Lines Conference (SPLC 2011), IEEE Computer Society, August 2011.
- [HRRS11]
A. Haber, H. Rendel, B. Rumpe and I. Schäfer
Delta Modeling for Software Architectures.
In: Tagungsband des Dagstuhl-Workshop MBEES: Modellbasierte Entwicklung eingebetteter Systeme VII, fortiss GmbH München, February 2011.
- [CGR09]
M. V. Cengarle, H. Grönniger, B. Rumpe
Variability within Modeling Language Definitions
In: Model Driven Engineering Languages and Systems. Proceedings of MODELS 2009, LNCS 5795. Denver, Colorado, USA, October 2009
- [GKPR08]
H. Grönniger, H. Krahn, C. Pinkernell, B. Rumpe
Modeling Variants of Automotive Systems using Views.
In: Tagungsband Modellierungs-Workshop MBEFF: Modellbasierte Entwicklung von eingebetteten Fahrzeugfunktionen. Berlin, März 2008,
Informatik-Bericht 2008-01, CFG-Fakultät, TU Braunschweig, 2008. - [GHK+08]
H. Grönniger, J. Hartmann, H. Krahn, S. Kriebel, L. Rothhardt, B. Rumpe
Modelling Automotive Function Nets with Views for Features, Variants, and Modes.
4th European Congress ERTS - Embedded Real Time Software, Toulouse 2008. - [FPR02]
Wolfgang Pree, Marcus Fontoura, Bernhard Rumpe.
Product Line Annotations with UML-F
In: Software Product Lines - Second International Conference, SPLC 2, San Diego.
G.J. Chastek (ed.), LNCS 2379, Springer Verlag. 2002.
<< list of all topics list of all publications >>