@leonardo

Feature-oriented programming: A new way of object composition

. Concurrency and Computation: Practice and Experience, 13 (6): 465--501 (2001)
DOI: 10.1002/cpe.583

Abstract

We propose a new model for flexible composition of objects from a set of features. Features are services of an object and are similar to classes in object-oriented languages. In many cases, features have to be adapted in the presence of other features, which is also called the feature interaction problem. We introduce explicit interaction handlers which can adapt features to other features by overriding methods. When features are composed, the appropriate interaction handling is added in a way which generalizes inheritance and aggregation. For a set of features, an exponential number of different feature combinations is possible, based on a quadratic number of interaction resolutions. We present the feature model as an extension of Java and give two translations to Java, one via inheritance and the other via aggregation. We show that the feature model interacts nicely with several common language extensions such as type parameters, exceptions, and higher-order functions. Copyright copyright 2001 John Wiley & Sons, Ltd.

Links and resources

Tags