Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSN › Chapter (peer-reviewed)
Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSN › Chapter (peer-reviewed)
}
TY - CHAP
T1 - Aspect-oriented software development
T2 - an introduction
AU - Brichau, Johan
AU - Chitchyan, Ruzanna
AU - Rashid, Awais
AU - D'Hondt, Theo
PY - 2008
Y1 - 2008
N2 - Modularity of software has long been the primary mechanism used in software development to improve reuse and support maintainability. However, certain concerns do not fit the module boundaries in contemporary software-development paradigms. The consequence of such crosscutting concerns, such as logging, persistence, security, and so forth, is that the responsibilities of the individual modules are not clearly demarcated. Not only is a module responsible for its core state and behavior (pertaining to its business functionality, for instance) but also for that of the crosscutting concern (such as logging). This phenomenon is referred to as tangling. At the same time, we observe the scattering effect whereby a given crosscutting concem,for example, logging, is not modularized in a single element and hence hampers our ability to reason about its effect and behavior with respect to the other modules; such reasoning requires inspection of all the modules where logging is realized. This requirement goes against the established best practice of separation of concerns because the crosscutting effect results in software that is difficult to understand and maintain. Addressing this problem of crosscutting is the main focus of aspect-oriented software-development (AOSD) techniques. In this article, we provide an introduction to AOSD by highlighting how it provides systematic support for identification, modularization, and composition of crosscutting concerns throughout the software lifecycle.
AB - Modularity of software has long been the primary mechanism used in software development to improve reuse and support maintainability. However, certain concerns do not fit the module boundaries in contemporary software-development paradigms. The consequence of such crosscutting concerns, such as logging, persistence, security, and so forth, is that the responsibilities of the individual modules are not clearly demarcated. Not only is a module responsible for its core state and behavior (pertaining to its business functionality, for instance) but also for that of the crosscutting concern (such as logging). This phenomenon is referred to as tangling. At the same time, we observe the scattering effect whereby a given crosscutting concem,for example, logging, is not modularized in a single element and hence hampers our ability to reason about its effect and behavior with respect to the other modules; such reasoning requires inspection of all the modules where logging is realized. This requirement goes against the established best practice of separation of concerns because the crosscutting effect results in software that is difficult to understand and maintain. Addressing this problem of crosscutting is the main focus of aspect-oriented software-development (AOSD) techniques. In this article, we provide an introduction to AOSD by highlighting how it provides systematic support for identification, modularization, and composition of crosscutting concerns throughout the software lifecycle.
KW - modularity
KW - composition
KW - aspect-oriented software development
KW - crosscutting
KW - aspect-oriented programming
KW - aspect-oriented requirements engineering
KW - aspect-oriented analysis and design
U2 - 10.1002/9780470050118.ecse022
DO - 10.1002/9780470050118.ecse022
M3 - Chapter (peer-reviewed)
BT - Wiley Encyclopedia of Computer Science and Engineering 2008
PB - John Wiley and Sons
ER -