Aspect-Oriented Software Development (AOSD) is a relatively new software development
paradigm that complements and improves on many contemporary development paradigms.
To this extent, AOSD provides unique and advanced program structuring and
modularization techniques. The implementation of software applications using AOSD techniques
results in a better implementation structure which has an impact on many important
software qualities such as enhanced reusability and reduced complexity. In turn, these
software qualities lead to an improved software development lifecycle and, hence, to better
software.
This document introduces readers familiar with software development to the concepts of
aspect-orientation. We present why aspect-orientation is needed in modern software development
and what its contributions are to the improvement of software design and implementation
structure. Without delving too much into particular AO technology details, we
present the various concepts of AOSD. After reading this introduction, the reader will understand
what AOSD is about, know its key concepts and vocabulary and can find directions
to more elaborate descriptions of concrete AOSD technologies.