Title
Dynamically adaptable software product lines using Ruby metaprogramming
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.
Year
DOI
Venue
2010
10.1145/1868688.1868700
FOSD
Keywords
Field
DocType
concrete product variant,different feature configuration,fop implementation,product line,dynamically adaptable software product,different variant,common asset base,common case study,ruby metaprogramming,structure software development asset,software product line,first-class entity,source code,domain specific language,domain specific languages,software development,metaprogramming
Domain-specific language,Metaprogramming,Programming language,Software engineering,Source code,Computer science,Feature model,Software,Documentation,Software development,Feature-oriented programming
Conference
Citations 
PageRank 
References 
4
0.37
16
Authors
2
Name
Order
Citations
PageRank
Sebastian Günther18413.27
Sagar Sunkle211918.43