Supporting program variant generation and feature files in rbFeatures

  • Authors:
  • Sebastian Günther;Marco Fischer

  • Affiliations:
  • Vrije Universiteit Brussel, Brussels, Belgium;Otto-von-Guericke-Universität Magdeburg, Universitätsplatz, Magdeburg, Germany

  • Venue:
  • Proceedings of the 15th International Software Product Line Conference, Volume 2
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

To enhance software variability, feature-oriented programming approaches can be used to identify, express, and compose programs with different behavior. One implementation for feature-oriented programming is rbFeatures. This Ruby-based implementation allows to define features as first-class entities, uses semantic annotations to indicate where coarse or fine-grained feature-specific source code is expressed, and allows runtime modification of the program behavior. In this paper, we add two more capabilities to rbFeatures. First, the Variant Generator uses the annotations in a preprocessor style to generate program variants with a fixed behavior. Both Ruby and non-Ruby files are processed, and all source code that does not belong to the current feature configuration is pruned. Second, the Feature Aggregator helps to better edit features that are scattered over different artifacts of a program. It extracts all feature-specific code from the codebase, adds metadata, and allows the generated file to be edited by developers and the changes to be merged back to the codebase. We explain the concept and implementation of both tools, and illustrate the applicability with the Redmine project management application.