The Aspect-Oriented Software Architecture Design Portal

 Advanced Separation of Concerns at the Architecture Design Level
 Identifying and Specifying Early Aspects
 

Home
Software Architecture
AOSD
Architectural Aspects
Publications
Events
Related Links
AOSAD Project
E-Tutorial

Site Map
Search
Contact

Edited by:
Bedir Tekinerdogan

Separation of Concerns Problem Statement Aspect Decomposition Early Aspects

 

Aspect-Oriented Software Development

Aspect-Oriented Software Development (AOSD) is an emerging paradigm that provides explicit abstractions for concerns that tend to crosscut over multiple system components and result in tangling in individual components. By representing crosscutting concerns or aspects as first-class abstractions, and by providing new composition techniques for combining aspects and components, the modularity of the system can be improved leading to a reduced complexity of the system and easier maintainability.

AOSD has started at the programming level of the software development life-cycle and the last decade several aspect-oriented programming languages have been introduced.  Some of the prominent aspect languages are AspectJ, HyperJ, ComposeJ, and DemeterJ. AspectJ is a general purpose extension to Java that introduces new language constructs to represent and compose aspects. HyperJ supports multi-dimensional separation of concerns by for Java and operates on standard Java class files and produces new class files to be used for execution. In ComposeJ aspects are represented through so-called composition filters that are declaratively specified and integrated in the corresponding programming language. DemeterJ is an aspect-language that supports the encapsulation of traversal-related behavioral aspects in Java.

The aim of this section is not to elaborate on these AOP languages but rather provide a broader/conceptual discussion on the problems that are tackled by AOSD. The discussed concepts and problems appear to be general for the complete life cycle. We will discuss the following important issues:

bulletSeparation of Concerns
What is a concern?
Crosscutting and Tangling
bulletAspect-Oriented Decomposition
bulletLife-cycle Aspects (Early Aspects)
bulletMulti-Dimensional Separation of Concerns (MDSOC)

 
 
 
 
Aspects
 
 
 
 
 
Aspect-Oriented Programming
 
 
 
 
 
 
Goal of the section