Abstract:
Abstract. We propose a new model for flexible composition of objects from a set of features. Features are similar to (abstract) subclasses, but only provide the core functionality of a (sub)class. Overwriting other methods is viewed as resolving feature interactions and is specified separately for two features at a time. This programming model allows to compose features (almost) freely in a way which generalizes inheritance and aggregation. For a set of n features, an exponential number of different feature combinations is possible, assuming 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 further discuss parameterized features, which work nicely with our feature model and can be translated into Pizza, an extension of Java. 1
Citations
|
1415
|
The Java Language Specification
– Gosling, Joy, et al.
- 1996
|
|
1268
|
The C++ Programming Language
– Stroustrup
- 1997
|
|
483
|
Self: the power of simplicity, in
– Ungar, Smith
- 1987
|
|
331
|
Mixin-based inheritance, in
– Bracha, Cook
- 1990
|
|
298
|
Pizza into Java: Translating theory into practice
– Odersky, Wadler
- 1997
|
|
86
|
Delegation is inheritance
– Stein
- 1987
|
|
79
|
The Java Language Speci cation
– Gosling, Joy, et al.
- 1996
|
|
64
|
Feature interactions and formal specifications in telecommunications
– Zave
- 1993
|
|
58
|
Evolution of Object Behavior Using Context Relations
– Seiter, Palsberg, et al.
- 1998
|
|
50
|
Refactoring: An aid in designing application frameworks and evolving object-oriented systems
– Opdyke, Johnson
- 1990
|
|
29
|
Delegation in C
– Johnson, Zweig
- 1991
|
|
17
|
Design Patterns: MicroArchitectures for Reusable Object-Oriented Design
– Gamma, Helm, et al.
- 1994
|
|
10
|
An object-oriented approach to feature interaction
– Prehofer
- 1997
|
|
7
|
Feature interactions and formal speci cations in telecommunications
– Zave
- 1993
|
|
5
|
Understanding CLOS: The Common Lisp Object System
– Lawless, Miller
- 1991
|
|
3
|
From inheritance to feature interaction or composing monads
– Prehofer
- 1997
|
|
2
|
From inheritance to feature interaction
– Prehofer
- 1997
|
|
2
|
Dynamic Object Modification without Name Collisions
– Mezini
- 1997
|
|
1
|
Prototype of a run-time adaptable object-oriented system
– Frohlich
- 1996
|
|
1
|
Dynamic object modi cation without name collisions
– Mezini
|