Analyzing the role of aspects in software design
J. Andrés Díaz Pace, Marcelo Campo · Communications of the ACM · 2001
to express aspects and their interactions. Relevant concerns identified at the problem domain are translated to aspectual constructs and later integrated with the functionality-decomposed program via well-defined interfaces. The final application is obtained by weaving the primary structure with the crosscutting aspects. Figure 1 illustrates such a process. AspectJ (see www.aspectj.org) and Hyper/J [8] are typical cases of this view. A strength of these languages is performance, but they tend to be limited regarding the facilities provided, because it is not always possible to know all the aspects that may come up in advance. Also, this model cannot easily deal with aspect evolution, because the mapped concerns are somewhat linked to fixed constructions. Furthermore, the integration of specific aspect languages with other tools or frameworks is not always possible or requires important integration efforts. Within the OO view, two main alternatives for handling aspects