SuperMod — A model-driven tool that combines version control and software product line engineering

Version control (VC) and Software Product Line Engineering (SPLE) are two software engineering disciplines to manage variability in time and variability in space. In this paper, a thorough comparison of VC and SPLE is provided, showing that both disciplines imply a number of desirable properties. As a proof of concept for the combination of VC and SPLE, we present SuperMod, a tool realizes an existing conceptual framework that transfers the iterative VC editing model to SPLE. The tool allows to develop a software product line in a single-version workspace step by step, while variability management is completely automated. It offers familiar version control metaphors such as check-out and commit, and in addition uses the SPLE concepts of feature models and feature configuration the definition of logical variability and to define the logical scope of a change. SuperMod has been implemented in a model-driven way and primarily targets EMF models as software artifacts. We successfully apply the tool to a standard SPLE example.

[1]  Christian Wende,et al.  FeatureMapper: mapping features to models , 2008, ICSE Companion '08.

[2]  Thomas Buchmann,et al.  FAMILE : Tool support for evolving model-driven product lines , 2012 .

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

[4]  Michael Pilato Version Control with Subversion , 2004 .

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

[6]  Thomas Buchmann,et al.  Valkyrie: A UML-based Model-driven Environment for Model-driven Software Engineering , 2016, ICSOFT.

[7]  Markus Völter,et al.  Model-Driven Software Development: Technology, Engineering, Management , 2006 .

[8]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[9]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[10]  Andreas Zeller,et al.  Unified versioning through feature logic , 1997, TSEM.

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

[12]  Roberto Erick Lopez-Herrejon,et al.  A Standard Problem for Evaluating Product-Line Methodologies , 2001, GCSE.

[13]  Sven Apel,et al.  Visualizing Software Product Line Variabilities in Source Code , 2008, SPLC.

[14]  ÜvÝ A Layered Architecture for Uniform Version Management , 2000 .

[15]  Tanja Hueber,et al.  Designing Software Product Lines With Uml From Use Cases To Pattern Based Software Architectures , 2016 .

[16]  Thomas Buchmann,et al.  Towards the integration of model-driven engineering, software product line engineering, and software configuration management , 2015, 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD).

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

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

[19]  K. Czarnecki,et al.  Cardinality-Based Feature Modeling and Constraints : A Progress Report , 2005 .

[20]  Christoph Reichenberger VOODOO - A Tool for Orthogonal Version Management , 1995, SCM.

[21]  Scott Chacon,et al.  Pro Git , 2009, Apress.

[22]  Manuel Wimmer,et al.  A survey on model versioning approaches , 2009, Int. J. Web Inf. Syst..

[23]  Bjørn P. Munch,et al.  Versioning in a Software Engineering Database — the Change Oriented Way , 1993 .

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

[25]  Eric Walkingshaw,et al.  Projectional editing of variational software , 2015 .

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

[27]  Bernhard Westfechtel,et al.  Model-based tool support for consistent three-way merging of EMF models , 2013, ACME@ECOOP.