A Core Language for Separate Variability Modeling

Alexandru Florin Iosif-Lazăr, Andrzej Wasowski, Ina Schaefer

Research output: Journal Article or Conference Article in JournalConference articleResearchpeer-review

Abstract

Separate variability modeling adds variability to a modeling language without requiring modifications of the language or the supporting tools. We define a core language for separate variability modeling using a single kind of variation point to define transformations of software artifacts in object models. Our language, Featherweight VML, has several distinctive features. Its architecture and operations are inspired by the recently proposed Common Variability Language (CVL). Its semantics is considerably simpler than that of CVL, while remaining confluent (unlike CVL). We simplify complex hierarchical dependencies between variation points via copying and flattening. Thus, we reduce a model with intricate dependencies to a flat executable model transformation consisting of simple unconditional local variation points. The core semantics is extremely concise: it boils down to two operational rules, which makes it suitable to serve as a specification for implementations of trustworthy variant derivation. Featherweight VML offers insights in the execution of other variability modeling languages such as the Orthogonal Variability Model and Delta Modeling. To the best of our knowledge, this is the first attempt to comprehensively formalize variant derivation, encompassing feature models, variation points, implementation artifacts and transformations.
Original languageEnglish
Book seriesLecture Notes in Computer Science
Volume8802
Pages (from-to)257-272
ISSN0302-9743
DOIs
Publication statusPublished - 2014

Keywords

  • Separate variability modeling
  • Featherweight VML
  • Common Variability Language (CVL)
  • Variant derivation
  • Software artifacts transformation

Fingerprint

Dive into the research topics of 'A Core Language for Separate Variability Modeling'. Together they form a unique fingerprint.

Cite this