First-class change objects for feature-oriented programming

Peter Ebraert

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

    9 Citations (Scopus)

    Abstract

    A growing trend in software construction advocates the encapsulation of software building blocks as features which better match the specification of requirements. As a result, programmers find it easier to design and compose different system variations. Feature-oriented programming (FOP) is the research domain that targets this trend. We argue that the state-of-the-art approaches to FOP lack expressiveness because they specify a feature as a set of building blocks rather than a transition that has to be applied on a system in order to add that feature's functionality to the system.
    We propose to specify features as sets of first-class change objects which can add, modify or delete building blocks to or from a software system. We present ChEOPS, a proof-of-concept implementation of this approach and use it to show how our approach contributes to FOP on three levels: expressiveness, composition verification and bottom-up FOP.
    Original languageEnglish
    Title of host publication15th Working Conference on Reverse Engineering (WCRE 2007) proceedings
    EditorsAhmed Hassan
    PublisherIEEE Computer Society Press
    Pages319-323
    Number of pages4
    Publication statusPublished - 15 Oct 2008
    EventFinds and Results from the Swedish Cyprus Expedition: A Gender Perspective at the Medelhavsmuseet - Stockholm, Sweden
    Duration: 21 Sep 200925 Sep 2009

    Conference

    ConferenceFinds and Results from the Swedish Cyprus Expedition: A Gender Perspective at the Medelhavsmuseet
    Country/TerritorySweden
    CityStockholm
    Period21/09/0925/09/09

    Bibliographical note

    Ahmed Hassan

    Keywords

    • Software variability

    Fingerprint

    Dive into the research topics of 'First-class change objects for feature-oriented programming'. Together they form a unique fingerprint.

    Cite this