Feature-Oriented Programming (FOP) decomposes complex software into
features. Features are main abstractions in design and implementation.
They reflect user requirements and incrementally refine one another.
Although, features crosscut object-oriented architectures they fail
to express all kinds of crosscutting concerns. This weakness is exactly
the strength of aspects, the main abstraction mechanism of Aspect-Oriented
Programming (AOP). In this article we contribute a systematic evaluation
and comparison of both paradigms, AOP and FOP, with focus on incremental
software development. It reveals that aspects and features are not
competing concepts. In fact AOP has several strengths to improve
FOP in order to implement crosscutting features. Symmetrically, the
development model of FOP can aid AOP in implementing incremental
designs. Consequently, we propose the architectural integration of
aspects and features in order to profit from both paradigms. We introduce
aspectual mixin layers (AMLs), an implementation approach that realizes
this symbiosis. A subsequent evaluation and a case study reveal that
AMLs improve the crosscutting modularity of features as well as aspects
become well integrated into incremental development style.
%0 Conference Paper
%1 Apel:2006ve
%A Apel, Sven
%A Leich, Thomas
%A Saake, Gunter
%B ICSE '06: Proceeding of the 28th international conference on Software engineering
%C New York, NY, USA
%D 2006
%I ACM Press
%K AOP, Component FOP Techniques,
%P 122--131
%R http://doi.acm.org/10.1145/1134285.1134304
%T Aspectual mixin layers: aspects and features in concert
%X Feature-Oriented Programming (FOP) decomposes complex software into
features. Features are main abstractions in design and implementation.
They reflect user requirements and incrementally refine one another.
Although, features crosscut object-oriented architectures they fail
to express all kinds of crosscutting concerns. This weakness is exactly
the strength of aspects, the main abstraction mechanism of Aspect-Oriented
Programming (AOP). In this article we contribute a systematic evaluation
and comparison of both paradigms, AOP and FOP, with focus on incremental
software development. It reveals that aspects and features are not
competing concepts. In fact AOP has several strengths to improve
FOP in order to implement crosscutting features. Symmetrically, the
development model of FOP can aid AOP in implementing incremental
designs. Consequently, we propose the architectural integration of
aspects and features in order to profit from both paradigms. We introduce
aspectual mixin layers (AMLs), an implementation approach that realizes
this symbiosis. A subsequent evaluation and a case study reveal that
AMLs improve the crosscutting modularity of features as well as aspects
become well integrated into incremental development style.
%@ 1-59593-375-1
@inproceedings{Apel:2006ve,
abstract = { Feature-Oriented Programming (FOP) decomposes complex software into
features. Features are main abstractions in design and implementation.
They reflect user requirements and incrementally refine one another.
Although, features crosscut object-oriented architectures they fail
to express all kinds of crosscutting concerns. This weakness is exactly
the strength of aspects, the main abstraction mechanism of Aspect-Oriented
Programming (AOP). In this article we contribute a systematic evaluation
and comparison of both paradigms, AOP and FOP, with focus on incremental
software development. It reveals that aspects and features are not
competing concepts. In fact AOP has several strengths to improve
FOP in order to implement crosscutting features. Symmetrically, the
development model of FOP can aid AOP in implementing incremental
designs. Consequently, we propose the architectural integration of
aspects and features in order to profit from both paradigms. We introduce
aspectual mixin layers (AMLs), an implementation approach that realizes
this symbiosis. A subsequent evaluation and a case study reveal that
AMLs improve the crosscutting modularity of features as well as aspects
become well integrated into incremental development style.
},
added-at = {2007-11-21T19:49:36.000+0100},
address = {New York, NY, USA},
author = {Apel, Sven and Leich, Thomas and Saake, Gunter},
biburl = {https://www.bibsonomy.org/bibtex/29b0d3c4843e4960f53cfad7405e750dd/kilow},
booktitle = {ICSE '06: Proceeding of the 28th international conference on Software engineering},
date-added = {2007-10-23 22:50:31 +0200},
date-modified = {2007-11-07 16:58:00 +0100},
doi = {http://doi.acm.org/10.1145/1134285.1134304},
interhash = {6f8cc55a902bc3f6a2168bd51626765a},
intrahash = {9b0d3c4843e4960f53cfad7405e750dd},
isbn = {1-59593-375-1},
keywords = {AOP, Component FOP Techniques,},
local-url = {../papers/Apel2006ve.pdf},
location = {Shanghai, China},
pages = {122--131},
publisher = {ACM Press},
rating = {3},
timestamp = {2007-11-21T19:49:39.000+0100},
title = {{Aspectual mixin layers: aspects and features in concert}},
year = 2006
}