A large part of the software development effort is typically spent on maintenance and evolution, namely on adding new and unanticipated features. As aspect-oriented programming (AOP) can be easily used to compose software in non-planned ways, many researchers are investigating AOP as a technique that can play an important role in this particular field. However, unexpected interactions between aspects are still a major problem that compromise AOP's applicability, especially in large projects where many developers, often including new team members, are involved in the process. This paper addresses the issues of aspect conflicts and interactions and proposes a technique to help compose aspects in a disciplined way using a test-driven development approach. A simple example for a banking system helps on illustrating the technique.
[1]
Wouter Joosen,et al.
Managing semantic interference with aspect integration contracts
,
2004
.
[2]
Mattia Monga,et al.
Using Program Slicing to Analyze Aspect-Oriented Composition
,
2004
.
[3]
Lodewijk Bergmans,et al.
A graph-based approach to modeling and detecting composition conflicts related to introductions
,
2007,
AOSD.
[4]
Jörg Kienzle,et al.
On Composition and Reuse of Aspects
,
2003
.
[5]
Shmuel Katz,et al.
Diagnosis of Harmful Aspects Using Regression Verification
,
2004
.
[6]
Ademar Aguiar,et al.
Towards detecting and solving aspect conflicts and interferences using unit tests
,
2007,
SPLAT.