Supporting Program Variant Generation and Feature Files in rbFeatures

Sebastian Günther, Marco Fischer

    Research output: Chapter in Book/Report/Conference proceedingConference paper

    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.
    Original languageEnglish
    Title of host publicationProceedings of the 15th International Software Product Line Conference
    EditorsIna Schaefer, Isabel John, Klaus Schmid
    PublisherACM
    Volume2
    ISBN (Print)978-1-4503-0789-5
    Publication statusPublished - 26 Aug 2011
    EventUnknown -
    Duration: 26 Aug 2011 → …

    Publication series

    NameProceedings of the 15th International Software Product Line Conference

    Conference

    ConferenceUnknown
    Period26/08/11 → …

    Bibliographical note

    Ina Schaefer, Isabel John, Klaus Schmid

    Keywords

    • Feature-Oriented Programming
    • Software Product Lines

    Fingerprint

    Dive into the research topics of 'Supporting Program Variant Generation and Feature Files in rbFeatures'. Together they form a unique fingerprint.

    Cite this