|
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
|
Mira Mezini , Karl Lieberherr, Adaptive plug-and-play components for evolutionary software development, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.97-116, October 18-22, 1998, Vancouver, British Columbia, Canada
|
 |
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
|
Peri Tarr , Harold Ossher , William Harrison , Stanley M. Sutton, Jr., N degrees of separation: multi-dimensional separation of concerns, Proceedings of the 21st international conference on Software engineering, p.107-119, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302457]
|
 |
35
|
|
CITED BY 12
|
|
|
|
|
|
|
|
Mario Pukall , Thomas Leich , Martin Kuhlemann , Marko Rosenmueller, Highly configurable transaction management for embedded systems, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.8-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
Martin Kuhlemann , Marko Rosenmüller , Sven Apel , Thomas Leich, On the duality of aspect-oriented and feature-oriented design patterns, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.5-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
Alessandro Garcia , Phil Greenwood , George Heineman , Robert Walker , Yuanfang Cai , Hong Yul Yang , Elisa Baniassad , Cristina Videira Lopes , Christa Schwanninger , Jianjun Zhao, Assessment of Contemporary Modularization Techniques - ACoM'07: workshop report, ACM SIGSOFT Software Engineering Notes, v.32 n.5, September 2007
|
|
|
|
|
|
Eduardo Figueiredo , Nelio Cacho , Claudio Sant'Anna , Mario Monteiro , Uira Kulesza , Alessandro Garcia , Sergio Soares , Fabiano Ferrari , Safoora Khan , Fernando Castor Filho , Francisco Dantas, Evolving software product lines with aspects: an empirical study on design stability, Proceedings of the 30th international conference on Software engineering, May 10-18, 2008, Leipzig, Germany
|
|
|
|
|
|
Valter Vieira de Camargo , Paulo Cesar Masiero, An approach to design crosscutting framework families, Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software, p.1-6, March 31-April 08, 2008, Brussels, Belgium
|
|
|
Phil Greenwood , Alessandro Garcia , Elisa Baniassad , Kevin Sullivan , Yuanfang Cai , Alan MacCormack, 2nd workshop on assessment of contemporary modularization techniques (ACoM 2008), Companion to the 23rd ACM SIGPLAN conference on Object oriented programming systems languages and applications, October 19-23, 2008, Nashville, TN, USA
|
|
|
|
|
|
|
|