Aspect-Oriented Software Development (AOSD) techniques provide systematic means for the identification, modularisation, representation and composition of crosscutting concerns such as security, mobility and real-time constraints. The Early Aspects Initiative focuses on managing crosscutting properties at the early development stages of requirements engineering and architecture design.
What are early aspects?
The term "early aspects" refers to crosscutting properties at the requirements and architecture level. Examples of such properties include security, mobility, availability and real-time constraints. These properties have a broadly-scoped effect on other requirements or architectural components.
Why do we need to manage early aspects?
If early aspects are not effectively modularised, it is not possible to reason about their effect on the system or on each other. Furthermore, the lack of modularisation of such properties can result in a large ripple effect on other requirements or architectural components upon evolution. The provision of effective means for handling early aspects makes it possible to establish critical trade-offs early on in the software life cycle.
How does work on early aspects relate to existing work in requirements engineering and architecture design?
There has been a significant body of work on separation of concerns in the requirements engineering and architecture design communities e.g., viewpoints, use cases, goals and architecture trade-off analysis models. However, these approaches do not explicitly focus on crosscutting concerns. The work on early aspects, therefore, complements these approaches by providing systematic means for handling such concerns.