Feature-oriented programming based on first-class changes

Peter Ebraert, Theo D’Hondt · 2008

A growing trend in software construction advocates the encapsulation of software building blocks as features which better match the specification of requirements. Featureoriented programming (FOP) is the research domain that targets this trend. We argue that the state-of-the-art approaches to FOP are not satisfactory because they only provide top-down methodologies to FOP. We propose to specify features as sets of first-class change objects which can add, modify or remove 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 this enables bottom-up FOP. 1 Feature-oriented programming Feature-oriented programming (FOP) is a programming paradigm that targets the separation of concerns [15]. In FOP, every concern is modularised as a separate feature: a first-class entity that forms the basic building block of a software system [4]. Features satisfy intuitive userformulated requirements on the software system and can be composed to form different variations of the same software product [2, 3]. Aspect-oriented programming (AOP) [12] is another such programming paradigm. Aspects focus on the quantification – by specifying predicates that identify join points at which to insert code. Feature implementations are much closer to framework designs. That is, to add a feature to a framework, there are predefined building blocks that are to be extended or modified. In such designs, there is little or no quantification, but there are indeed ”cross-cuts”.

Read the paper · More papers on PaperTik