Reasoning about product-line evolution using complex feature model differences

Features define common and variable parts of the members of a (software) product line. Feature models are used to specify the set of all valid feature combinations. Feature models not only enjoy an intuitive tree-like graphical syntax, but also a precise formal semantics, which can be denoted as propositional formulae over Boolean feature variables. A product line usually constitutes a long-term investment and, therefore, has to undergo continuous evolution to meet ever-changing requirements. First of all, product-line evolution leads to changes of the feature model due to its central role in the product-line paradigm. As a result, product-line engineers are often faced with the problems that (1) feature models are changed in an ad-hoc manner without proper documentation, and (2) the semantic impact of feature diagram changes is unclear. In this article, we propose a comprehensive approach to tackle both challenges. For (1), our approach compares the old and new version of the diagram representation of a feature model and specifies the changes using complex edit operations on feature diagrams. In this way, feature model changes are automatically detected and formally documented. For (2), we propose an approach for reasoning about the semantic impact of diagram changes. We present a set of edit operations on feature diagrams, where complex operations are primarily derived from evolution scenarios observed in a real-world case study, i.e., a product line from the automation engineering domain. We evaluated our approach to demonstrate its applicability with respect to the case study, as well as its scalability concerning experimental data sets.

[1]  Lars Bendix,et al.  Collaborative work with Software Models - Industrial experience and requirements , 2009, 2009 International Conference on Model-Based Systems Engineering.

[2]  Birgit Vogel-Heuser,et al.  Requirements on Evolution Management of Product Lines in Automation Engineering , 2012 .

[3]  Birgit Vogel-Heuser,et al.  Researching Evolution in Industrial Plant Automation: Scenarios and Documentation of the Pick and Place Unit , 2014 .

[4]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

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

[6]  Udo Kelter,et al.  Adaptability of model comparison tools , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[7]  Tom Mens,et al.  A State-of-the-Art Survey on Software Merging , 2002, IEEE Trans. Software Eng..

[8]  Udo Kelter,et al.  A Generic Difference Algorithm for UML Models , 2005, Software Engineering.

[9]  C. Schneider CoObRA - a small step for development tools to collaborative environments , 2004, ICSE 2004.

[10]  Jeffrey G. Gray,et al.  DSMDiff: a differentiation tool for domain-specific models , 2007 .

[11]  Stefan Kowalewski,et al.  Model-driven support for product line evolution on feature level , 2012, J. Syst. Softw..

[12]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[13]  Eleni Stroulia,et al.  Differencing logical UML models , 2007, Automated Software Engineering.

[14]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[15]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

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

[17]  Malte Lochau,et al.  Re-Engineering Automation Systems as Dynamic Software Product Lines , 2015 .

[18]  Giuseppe Scanniello,et al.  COMOVER: Concurrent model versioning , 2008, 2008 IEEE International Conference on Software Maintenance.

[19]  Patrick Könemann,et al.  Capturing the intention of model changes , 2010, MODELS'10.

[20]  Øystein Haugen,et al.  An algorithm for generating t-wise covering arrays from large feature models , 2012, SPLC '12.

[21]  Ernst Lippe,et al.  Operation-based merging , 1992 .

[22]  Bernd Brügge,et al.  Sysiphus: Enabling informal collaboration in global software development , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[23]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[24]  Mehrdad Sabetzadeh,et al.  Matching and Merging of Statecharts Specifications , 2007, 29th International Conference on Software Engineering (ICSE'07).

[25]  Gerti Kappel,et al.  A posteriori operation detection in evolving software models , 2013, J. Syst. Softw..

[26]  Hartmut Ehrig,et al.  Parallel Independence of Amalgamated Graph Transformations Applied to Model Transformation , 2010, Graph Transformations and Model-Driven Engineering.

[27]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[28]  Udo Kelter,et al.  Consistency-preserving edit scripts in model versioning , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[29]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[30]  Eugene W. Myers,et al.  AnO(ND) difference algorithm and its variations , 1986, Algorithmica.

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

[32]  Udo Kelter,et al.  Understanding model evolution through semantically lifting model differences with SiLift , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[33]  Carlos José Pereira de Lucena,et al.  Refactoring product lines , 2006, GPCE '06.

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

[35]  Acm Sigsoft International Workshop on Comparison and Versioning of Software Models 2008 (CVSM 08) : held at ICSE 2008 : Leipzig, Germany 17 May 2008 , 2008 .

[36]  Goetz Botterweck,et al.  Evolution of Software Product Lines , 2014, Evolving Software Systems.

[37]  Dimitrios S. Kolovos,et al.  Establishing Correspondences between Models with the Epsilon Comparison Language , 2009, ECMDA-FA.

[38]  Andy Schürr,et al.  Formalising model transformation rules for UML/MOF 2 , 2008, IET Softw..

[39]  Eleni Stroulia,et al.  Refactoring Detection based on UMLDiff Change-Facts Queries , 2006, 2006 13th Working Conference on Reverse Engineering.

[40]  Hai H. Wang,et al.  Formal semantics and verification for feature modeling , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[41]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[42]  Gregor Engels,et al.  Detecting and Resolving Process Model Differences in the Absence of a Change Log , 2008, BPM.

[43]  Paulo Borba,et al.  Automatically Checking Feature Model Refactorings , 2011, J. Univers. Comput. Sci..

[44]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[45]  Udo Kelter,et al.  Propagation of Software Model Changes in the Context of Industrial Plant Automation , 2014, Autom..

[46]  Krzysztof Czarnecki,et al.  Evolution of the Linux Kernel Variability Model , 2010, SPLC.

[47]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[48]  Walter F. Tichy,et al.  Tools for Software Configuration Management , 1988, SCM.

[49]  Gabriele Taentzer,et al.  Henshin: advanced concepts and tools for in-place EMF model transformations , 2010, MODELS'10.

[50]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[51]  Sergio Segura,et al.  BeTTy: benchmarking and testing on the automated analysis of feature models , 2012, VaMoS.

[52]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[53]  F TichyWalter The string-to-string correction problem with block moves , 1984 .

[54]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series) , 1992 .

[55]  Udo Kelter,et al.  Workspace updates of visual models , 2014, ASE.

[56]  Markus Herrmannsdoerfer,et al.  Towards a generic operation recorder for model evolution , 2010, IWMCP '10.

[57]  Udo Kelter,et al.  A rule-based approach to the semantic lifting of model differences in the context of model versioning , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[58]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[59]  Andy Schürr Logic Based Programmed Structure Rewriting Systems , 1996, Fundam. Informaticae.

[60]  Maximilian Kögel Towards software configuration management for unified models , 2008, CVSM '08.

[61]  Paul Grünbacher,et al.  Structuring the modeling space and supporting evolution in software product line engineering , 2010, J. Syst. Softw..

[62]  Walter F. Tichy,et al.  The string-to-string correction problem with block moves , 1984, TOCS.

[63]  Richard F. Paige,et al.  Different models for model matching: An analysis of approaches to support model differencing , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[64]  Mathieu Acher,et al.  Feature Model Differences , 2012, CAiSE.

[65]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation , 2006, Monographs in Theoretical Computer Science. An EATCS Series.

[66]  Cédric Brun Obeo,et al.  MODEL DIFFERENCES IN THE ECLIPSE MODELING FRAMEWORK , 2008 .