SuperMod – Version Control and Software Product Lines in Model-Driven Engineering

project leader: Prof. Dr. Bernhard Westfechtel
contact person: Felix Schwägerl M. Sc.

projectstart: 2015 financier:

state funding


Software engineering has gained importance through the existence of a plethora of sub-disciplines which improve the quality of both software development and the resulting software. Two of those disciplines are Version Control (VC) and Software Product Line Engineering (SPLE), which allow to control variability in time on the one hand, and variability in space on the other hand. Although being promising, the integration of temporal and logical versioning has not been researched yet in an adequate way. This is mainly due to the complexity the user is exposed to when defining logical variants for different increments of the software.

SuperMod-logo-final

SuperMod (Superimposition of Models) is a research prototype that aims at an integrated solution, providing higher-level abstractions in the form of models, which remove the aforementioned complexity from the user by automatizing the greater part of version management. The tool has been implemented in a model-driven way and mainly targets model-driven projects, although it is also capable of managing non-model files such as plain text or XML. The technological foundation of the tool is the Eclipse Modeling Framework (EMF); therefore, the tool integrates well with Eclipse.

The user interface is oriented towards VC metaphors inasmuch it follows the well-known check-out/modify/commit paradigm in order to realize the communication between a local workspace and a repository, which stores the entirety of available product versions. In addition to the temporal abstraction of the revision graph, SuperMod utilizes feature models, an established mechanism in the context of SPLE, in order to define logical variants and constraints. Variants are described by means of feature configurations, which resolve the variability defined in the feature models. Each development increment consists of three steps:

  1. Check-out: The developer specifies a feature configuration in order to define a version that will be available in the workspace for editing – the choice.
  2. Modify: In the workspace, the developer may apply arbitrary modifications to the checked-out version, using his/her favorite editor for model or non-model files.
  3. Commit: In order to make the performed modifications available for a larger set of related variants, the developer has to specify an ambition – a partial feature configuration which defines the logical scope of the change. The changes are written back to the repository automatically.

This procedure is demonstrated by the example below: First, a specific version of a class diagram for graphs is checked-out, a directed, weighted graph. Next, the feature “colored” is introduced in the feature model and realized in the class diagram. Last, the feature is written back under a feature configuration which binds the change to the new feature “colored”. As a consequence, the performed change will be visible for all variants which include this feature.

supermod

Internally, version control and SPLE concepts such as revisions and features are mapped to propositional logic. This allows to check workspace consistency in a well-defined way. For instance, propositional constraints ensure that the set of versions specified as ambition must be consistent with the version selected as choice.

Moreover, SuperMod enables collaborative SPLE by the synchronization operations push and pull, which transfer changes between different copies of a SuperMod repository. Synchronization is orchestrated by a server-side repository that communicates with clients over the HTTP as a REST-based web service.

The presented approach is distinguished from state-of-the-art SPLE approaches by the following aspects: First, SuperMod enforces an iterative way of development, whereas traditional SPLE approaches distinguish between two strictly separated phases, being domain engineering and application engineering. Second, the developer always operates in a single-version view, hiding variants which are immaterial to the applied change. This brings the additional advantages of tool independence and unconstrained variability.

The prototype SuperMod is currently under development and available as an Eclipse plug-in. Current restrictions concern missing support for XML files and coarse-grained product conflict resolution, which will both be addressed by future work.

Links

Update Site (Eclipse Modeling Kepler or higher): http://btn1x4.inf.uni-bayreuth.de/supermod/update

Screencastshttp://btn1x4.inf.uni-bayreuth.de/supermod/screencasts

Publications: (for more details, visit our publication site: http://btn1x4.inf.uni-bayreuth.de/publications/content/AI1Publications.html )

  • Felix Schwägerl and Bernhard Westfechtel:
    SuperMod: Tool Support for Collaborative Filtered Model-Driven Software Product Line Engineering
    in: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016).
  • Felix Schwägerl and Bernhard Westfechtel:
    Collaborative and Distributed Management of Versioned Model-driven Software Product Lines
    in: Proceedings of the 11th International Conference on Software Paradigm Trends (ICSOFT-PT 2016).
  • Felix Schwägerl, Thomas Buchmann and Bernhard Westfechtel:
    Filtered Model-Driven Product Line Engineering with SuperMod: The Home Automation Case
    in: Communications in Computer and Information Science (CCIS), Volume 586.
  • Felix Schwägerl, Thomas Buchmann, Sabrina Uhrig and Bernhard Westfechtel:
    Realizing a Conceptual Framework to Integrate Model-Driven Engineering, Software Product Line Engineering, and Software Configuration Management
    in: Communications in Computer and Information Science (CCIS), Volume 580.
  • Felix Schwägerl, Thomas Buchmann, Sabrina Uhrig and Bernhard Westfechtel: 
    Towards the Integration of Model-Driven Engineering, Software Product Line Engineering, and Software Configuration Management
    in: Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2015).
  • Felix Schwägerl, Thomas Buchmann and Bernhard Westfechtel:
    SuperMod - A Model-Driven Tool that Combines Version Control and Software Product Line Engineering
    in: Proceedings of the 10th International Conference on Software Paradigm Trends (ICSOFT-PT 2015).

Universität Bayreuth - Englisch -