Standard Article

Aspect-Oriented Software Development: an Introduction

  1. Johan Brichau1,
  2. Ruzanna Chitchyan1,
  3. Awais Rashid2,
  4. Theo D'Hondt3

Published Online: 13 JUN 2008

DOI: 10.1002/9780470050118.ecse022

Wiley Encyclopedia of Computer Science and Engineering

Wiley Encyclopedia of Computer Science and Engineering

How to Cite

Brichau, J., Chitchyan, R., Rashid, A. and D'Hondt, T. 2008. Aspect-Oriented Software Development: an Introduction. Wiley Encyclopedia of Computer Science and Engineering. 1–10.

Author Information

  1. 1

    Université catholique de Louvain, Louvain-la-Neuve, Belgium

  2. 2

    Lancaster University, Lancaster, United Kingdom

  3. 3

    Vrije Universiteit Brussel, Brussel, Belgium

Publication History

  1. Published Online: 13 JUN 2008

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.

Keywords:

  • modularity;
  • composition;
  • aspect-oriented software development;
  • crosscutting;
  • aspect-oriented programming;
  • aspect-oriented requirements engineering;
  • aspect-oriented analysis and design