Consistent product line configuration across file type and product line boundaries

  • Authors:
  • Christoph Elsner;Peter Ulbrich;Daniel Lohmann;Wolfgang Schröder-Preikschat

  • Affiliations:
  • Siemens Corporate Research & Technologies, Erlangen, Germany;Friedrich-Alexander University Erlangen-Nuremberg, Germany;Friedrich-Alexander University Erlangen-Nuremberg, Germany;Friedrich-Alexander University Erlangen-Nuremberg, Germany

  • Venue:
  • SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Creating a valid software configuration of a product line can require laborious customizations involving multiple configuration file types, such as feature models, domain-specific languages, or preprocessor defines in C header files. Using configurable off-the-shelf components causes additional complexity. Without checking of constraints across file types boundaries already at configuration time, intricate inconsistencies are likely to be introduced--resulting in product defects, which are costly to discover and resolve later on. Up to now, at best ad-hoc solutions have been applied. To tackle this problem in a general way, we have developed an approach and a corresponding plug-in infrastructure. It allows for convenient definition and checking of constraints across configuration file types and product line boundaries. Internally, all configuration files are converted to models, facilitating the use of model-based constraint languages (e.g., OCL). Converter plug-ins for arbitrary configuration file types may be integrated and hide a large amount of complexity usually associated with modeling. We have validated our approach using a quadrotor helicopter product line comprising three sub-product-lines and four different configuration file formats. The results give evidence that our approach is practically applicable, reduces time and effort for product derivation (by avoiding repeated compiling, testing, and reconfiguration cycles), and prevents faulty software deployment.