Traditionally, aspect-oriented software development (AOSD) has focused on the software life cycle's implementation phase: aspects are identified and captured mainly in code. But aspects are evident earlier in the life cycle, such as during requirements gathering and architecture development. Identifying these early aspects ensures that you can appropriately capture aspects related to the problem domain (as opposed to merely the implementation). Additionally, it offers opportunities for early recognition and negotiation of trade-offs and allows forward and backward aspect traceability. This makes requirements, architecture, and implementation more seamless and lets you apply aspects more systematically. Many techniques exist for dealing with early aspects in practice, but a holistic approach is lacking. This article is an overview of how to exploit early aspects and charts aspects as they move from project inception to development.
- Aspect oriented software development
- Software life cycle