Evolving Delta-Oriented Software Product Line Architectures

Diversity is prevalent in modern software systems. Several system variants exist at the same time in order to adapt to changing user requirements. Additionally, software systems evolve over time in order to adjust to unanticipated changes in their application environment. In modern software development, software architecture modeling is an important means to deal with system complexity by architectural decomposition. This leads to the need of architectural description languages that can represent spatial and temporal variability. In this paper, we present delta modeling of software architectures as a uniform modeling formalism for architectural variability in space and in time. In order to avoid degeneration of the product line model under system evolution, we present refactoring techniques to maintain and improve the quality of the variability model. Using a running example from the automotive domain, we evaluate our approach by carrying out a case study that compares delta modeling with annotative variability modeling.

[1]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[2]  Jennifer Pérez,et al.  Plastic Partial Components: A solution to support variability in architectural components , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[3]  Bernhard Rumpe,et al.  Evolving Software Architecture Descriptions of Critical Systems , 2010, Computer.

[4]  André van der Hoek,et al.  Modeling Product Line Architectures through Change Sets and Relationships , 2007, 29th International Conference on Software Engineering (ICSE'07).

[5]  Ina Schaefer,et al.  Variability Modelling for Model-Driven Development of Software Product Lines , 2010, VaMoS.

[6]  Wolfgang Schröder-Preikschat,et al.  Variability in Time - Product Line Variability and Evolution Revisited , 2010, VaMoS.

[7]  Hassan Gomaa,et al.  Designing Software Product Lines with UML , 2005, 29th Annual IEEE/NASA Software Engineering Workshop - Tutorial Notes (SEW'05).

[8]  Iris Groher,et al.  Product Line Implementation using Aspect-Oriented and Model-Driven Software Development , 2007 .

[9]  M M Lehman,et al.  Software Evolution , 2002 .

[10]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[11]  Klaus Schmid,et al.  PuLSE: a methodology to develop software product lines , 1999, SSR '99.

[12]  Bernhard Rumpe,et al.  Hierarchical Variability Modeling for Software Architectures , 2011, 2011 15th International Software Product Line Conference.

[13]  Gunter Saake,et al.  Variant-preserving refactoring in feature-oriented software product lines , 2012, VaMoS.

[14]  Bernhard Rumpe,et al.  MontiCore: a framework for the development of textual domain specific languages , 2008, ICSE Companion '08.

[15]  Vander Alves,et al.  Extracting and Evolving Code in Product Lines with Aspect-Oriented Programming , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[16]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[17]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[18]  Malte Lochau,et al.  Incremental Model-Based Testing of Delta-Oriented Software Product Lines , 2012, TAP@TOOLS.

[19]  Ina Schaefer,et al.  Compositional Type-Checking for Delta-Oriented Programming (version with Appendix) , 2011 .

[20]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[21]  Jon Whittle,et al.  Model composition in product lines and feature interaction detection using critical pair analysis , 2007, MODELS'07.

[22]  Bernhard Rumpe,et al.  Delta-oriented architectural variability using MontiCore , 2011, ECSA '11.

[23]  Bernhard Rumpe,et al.  MontiArc - Architectural Modeling of Interactive Distributed and Cyber-Physical Systems , 2014, ArXiv.

[24]  C. Krueger,et al.  Eliminating the adoption barrier , 2002, IEEE Software.

[25]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[26]  Stefan Kowalewski,et al.  EvoFM: feature-driven planning of product-line evolution , 2010, PLEASE '10.

[27]  Bernhard Rumpe,et al.  Towards a Family-based Analysis of Applicability Conditions in Architectural Delta Models , 2014, ArXiv.

[28]  Michiel Helvensteijn,et al.  Abstract delta modeling , 2010, GPCE '10.

[29]  Bernhard Rumpe,et al.  Delta Modeling for Software Architectures , 2014, MBEES.

[30]  Oscar Nierstrasz,et al.  A meta-model for language-independent refactoring , 2000, Proceedings International Symposium on Principles of Software Evolution.

[31]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[32]  Birger Møller-Pedersen,et al.  Adding Standardized Variability to Domain Specific Languages , 2008, 2008 12th International Software Product Line Conference.

[33]  Jean-Marc Jézéquel,et al.  Towards a UML Profile for Software Product Lines , 2003, PFE.

[34]  Mehmet Aksit,et al.  Transactions on Aspect-Oriented Software Development IV , 2007, Trans. Aspect-Oriented Software Development IV.

[35]  Jaejoon Lee,et al.  Software Product Lines: Going Beyond - 14th International Conference, SPLC 2010, Jeju Island, South Korea, September 13-17, 2010. Proceedings , 2010, SPLC.

[36]  Thomas Leich,et al.  Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution , 2005, RAM-SE.

[37]  Frank J. van der Linden Software Product-Family Engineering , 2003, Lecture Notes in Computer Science.

[38]  Olivier Barais,et al.  Software Architecture Evolution , 2008, Software Evolution.

[39]  Ina Schaefer,et al.  Pure delta-oriented programming , 2010, FOSD '10.

[40]  Viviana Bono,et al.  Delta-Oriented Programming of Software Product Lines , 2010, SPLC.

[41]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[42]  Hassan Gomaa Designing Software Product Lines with the Unified Modeling Language (UML) , 2004, SPLC.

[43]  Krzysztof Czarnecki,et al.  Verifying feature-based model templates against well-formedness OCL constraints , 2006, GPCE '06.

[44]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[45]  Jeff Magee,et al.  Using resemblance to support component reuse and evolution , 2006, SAVCBS '06.

[46]  Thomas Leich,et al.  FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming , 2005, GPCE'05.

[47]  Tom Mens,et al.  Analysing refactoring dependencies using graph transformation , 2007, Software & Systems Modeling.