DocumentCode
1016951
Title
Aspectual Feature Modules
Author
Apel, Sven ; Leich, Thomas ; Saake, Gunter
Author_Institution
Univ. of Passau, Passau
Volume
34
Issue
2
fYear
2008
Firstpage
162
Lastpage
180
Abstract
Two programming paradigms are gaining attention in the overlapping fields of software product lines (SPLs) and incremental software development (ISD). Feature-oriented programming (FOP) aims at large-scale compositional programming and feature modularity in SPLs using ISD. Aspect-oriented programming (AOP) focuses on the modularization of crosscutting concerns in complex software. Although feature modules, the main abstraction mechanisms of FOP, perform well in implementing large-scale software building blocks, they are incapable of modularizing certain kinds of crosscutting concerns. This weakness is exactly the strength of aspects, the main abstraction mechanisms of AOP. We contribute a systematic evaluation and comparison of FOP and AOP. It reveals that aspects and feature modules are complementary techniques. Consequently, we propose the symbiosis of FOP and AOP and aspectual feature modules (AFMs), a programming technique that integrates feature modules and aspects. We provide a set of tools that support implementing AFMs on top of Java and C++. We apply AFMs to a nontrivial case study demonstrating their practical applicability and to justify our design choices.
Keywords
object-oriented programming; software reusability; C++; Java; aspect-oriented programming; aspectual feature module; crosscutting concern; feature-oriented programming; incremental software development; large-scale compositional programming; large-scale software building block; software product line; systematic evaluation; Design; Design Tools and Techniques; Language Constructs and Features;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2007.70770
Filename
4407729
Link To Document