ACM Home Page
Please provide us with feedback. Feedback
Aspectual mixin layers: aspects and features in concert
Full text PdfPdf (199 KB)
Source International Conference on Software Engineering archive
Proceedings of the 28th international conference on Software engineering table of contents
Shanghai, China
SESSION: Research papers: software components & reuse table of contents
Pages: 122 - 131  
Year of Publication: 2006
ISBN:1-59593-375-1
Authors
Sven Apel  University of Magdeburg, Magdeburg, Germany
Thomas Leich  University of Magdeburg, Magdeburg, Germany
Gunter Saake  University of Magdeburg, Magdeburg, Germany
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 22,   Downloads (12 Months): 97,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1134285.1134304
What is a DOI?

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 featuresSymmetrically, 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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
J. Aldrich. Open Modules: Modular Reasoning About Advice. In ECOOP, 2005.
 
2
S. Apel and K. Böhm. Towards the Development of Ubiquitous Middleware Product Lines. In ASE'04 SEM Workshop, volume 3437 of LNCS, 2005.
 
3
S. Apel et al. FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In GPCE, 2005.
 
4
 
5
S. Apel, T. Leich, and G. Saake. Mixin-Based Aspect Inheritance. Technical Report 10, Department of Computer Science, University of Magdeburg, Germany, 2005.
6
 
7
 
8
J. Bosch. Superimposition: A Component Adaptation Technique. Information and Software Technology, 41(5), 1999.
9
 
10
A. Colyer, A. Rashid, and G. Blair. On the Separation of Concerns in Program Families. Technical report, Computing Department, Lancaster University, 2004.
 
11
 
12
S. Hanenberg and A. Schmidmeier. Idioms for Building Software Frameworks in AspectJ. In AOSD ACP4IS Workshop, 2003.
13
 
14
 
15
G. Kiczales et al. Aspect-Oriented Programming. In ECOOP, 1997.
16
 
17
G. Kniesel, T. Rho, and S. Hanenberg. Evolvable Pattern Implementations Need Generic Aspects. In ECOOP RAM-SE Workshop, 2004.
 
18
T. Leich, S. Apel, and G. Saake. Using Step-Wise Refinement to Build a Flexible Lightweight Storage Manager. In ADBIS, 2005.
 
19
K. Lieberherr, D. Lorenz, and M. Mezini. Programming with Aspectual Components. Technical report, College of Computer Science, Northeastern University, 1999.
 
20
K. Lieberherr, D. H. Lorenz, and J. Ovlinger. Aspectual Collaborations: Combining Modules and Aspects. The Computer Journal, 46(5), 2003.
 
21
D. Lohmann, G. Blaschke, and O. Spinczyk. Generic Advice: On the Combination of AOP with Generative Programming in AspectC++. In GPCE, 2004.
 
22
R. Lopez-Herrejon, D. Batory, and W. Cook. Evaluating Support for Features in Advanced Modularization Technologies. In ECOOP, 2005.
23
 
24
N. Loughran and A. Rashid. Framed Aspects: Supporting Variability and Configurability for AOP. In ICSR, 2004.
25
26
27
28
 
29
M. Mezini, L. Seiter, and K. Lieberherr. Component Integration with Pluggable Composite Adapters. Software Architectures and Component Technology: The State of the Art in Research and Practice, 2000.
 
30
D. L. Parnas. Designing Software for Ease of Extension and Contraction. IEEE TSE, SE-5(2), 1979.
 
31
E. Pulvermüller, A. Speck, and A. Rashid. Implementing Collaboration-Based Designs Using Aspect-Oriented Programming. In TOOLS, 2000.
32
 
33
O. Spinczyk, D. Lohmann, and M. Urban. AspectC++: An AOP Extension for C++. Software Developer's Journal, 2005(5), 2005.
34
35

CITED BY  12

Collaborative Colleagues:
Sven Apel: colleagues
Thomas Leich: colleagues
Gunter Saake: colleagues