Dynamically adaptable software product lines using Ruby metaprogramming

  • Authors:
  • Sebastian Günther;Sagar Sunkle

  • Affiliations:
  • University of Magdeburg, Germany;University of Magdeburg, Germany

  • Venue:
  • FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software product lines (SPL) is a paradigm to structure software development assets in a common and reusable form. Out of this common asset base - which includes the application's source code, documentation, and configuration -- concrete product variants can be created. The variants are differing in terms of the features, which are basically an increment in functionality important for a stakeholder. Feature-oriented programming (FOP) provides the capability to compose those different variants. In earlier work we presented rbFeatures, a FOP implementation in Ruby. With rbFeatures, features become are first-class entities of the language that facilitate runtime changes of the program. This paper presents an extension to rbFeatures that implements product lines and their variants as first-class entities too. The entities allow powerful runtime-adaptation and configuration, like to add new features or constraints to the product line and the instantiation of several variants with different feature configurations. The particular contributions are to show how Ruby's metaprogramming capabilities are used to design first-class entities and an explanation of the usage of our approach with a common case study.