Apparently, existing aspect-oriented software development approaches have
basically focused on specifying aspects at the programming level and less
attention have been taken on the impact of aspects at the architecture design
level. However, in every phase of the software development life cycle we have to
cope with modules and concerns.
Figure 1. Mapping
concerns to modules in the life cycle
Further it appears that some concerns at (also) the early life cycle phases can
not be mapped to single modular units but tend to crosscut over multiple modules. Aspects at the early life cycle phases
have been termed as early aspects to distinguish them from aspects at the
code level. The modules could be for example requirements, use cases,
architectural components, interaction diagrams etc. We argue that aspects should
be identified early in the software development life cycle, that is, during the
requirements analysis, domain analysis and architecture design phases. In our
paper written in 1998 we propose to
identify concerns from requirements analysis
and domain analysis stages and model these using conceptual models. This
is illustrated in the following: