12,000

We have over 12,000 students, from over 100 countries, within one of the safest campuses in the UK

93%

93% of Lancaster students go into work or further study within six months of graduating

Home > Research > Publications & Outputs > Aspect-oriented software development
View graph of relations

« Back

Aspect-oriented software development: an introduction

Research output: Contribution in Book/Report/ProceedingsChapter (peer-reviewed)

Published

Publication date2008
Host publicationWiley Encyclopedia of Computer Science and Engineering 2008
PublisherJohn Wiley and Sons
Number of pages0
Original languageEnglish

Abstract

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.