Taming Heterogeneous Aspects with Crosscutting Interfaces - Chavez, Christina von Flach G.; Garcia, Alessandro; Kulesza, Uirá; Sant’Anna, Cláudio; Lucena, Carlos (Anais do Simpósio Brasileiro de Engenharia de Software (SBES); 2005: Anais do XIX Simpósio Brasileiro de Engenharia de Software, 2005)
Aspect-oriented software development promotes improved separation of concerns by introducing a new modular unit, called aspect, for the modularization of crosscutting concerns. As a new kind of modular unit, aspects should have explicit interfaces that describe the way they interact with the rest of the system and how they affect other modules. This interaction can be homogeneous, for example, by providing a logging behavior that affects all procedures in a certain interface; or it can be heterogeneous, for example, by implementing the two sides of a protocol that affects two different classes. In this paper, we present crosscutting interfaces as a conceptual tool for dealing with the complexity of heterogeneous aspects at the design level. Crosscutting interfaces have been incorporated by the aSideML modeling language in order to enhance aspect description at the design level. Moreover, we present a modeling notation for the description of architecture-level aspects that also supports the explicit representation of crosscutting interfaces. Finally, we present a large-scale case study we have performed using this modeling language that supports our arguments in favor of crosscutting interfaces.