Taming Heterogeneous Aspects with Crosscutting Interfaces

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.

[1]  Paulo S. C. Alencar,et al.  Software Engineering for Multi-Agent Systems II , 2004 .

[2]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[3]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .

[4]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[5]  Carlos José Pereira de Lucena,et al.  Engineering multi-agent systems with aspects and patterns , 2002, J. Braz. Comput. Soc..

[6]  Sherry Shavor,et al.  The Java Developer's Guide to Eclipse , 2003 .

[7]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[8]  Siobhán Clarke,et al.  Composition patterns: an approach to designing reusable aspects , 2001, ICSE 2001.

[9]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[10]  Carlos José Pereira de Lucena,et al.  Separation of Concerns in Multi-agent Systems: An Empirical Study , 2003, SELMAS.

[11]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[12]  Gregor Kiczales,et al.  Discussing aspects of AOP , 2001, CACM.

[13]  Jianjun Zhao,et al.  Pipa: A Behavioral Interface Specification Language for AspectJ , 2003, FASE.

[14]  Carlos José Pereira de Lucena,et al.  Aspectizing Multi-agent Systems: From Architecture to Implementation , 2004, SELMAS.

[15]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[16]  Dominik Stein,et al.  An Aspect-Oriented Design Model Based on AspectJ and UML , 2002 .

[17]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[18]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[19]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[20]  Lidia Fuentes,et al.  DAOP-ADL: An Architecture Description Language for Dynamic Component and Aspect-Based Development , 2003, GPCE.

[21]  Carlos José Pereira de Lucena,et al.  Some Insights on the Use of AspectJ and Hyper/J , 2001 .

[22]  Paulo Borba,et al.  An Aspect-Oriented Implementation Method , 2004 .

[23]  Donald D. Cowan,et al.  Agents in object‐oriented software engineering , 2004, Softw. Pract. Exp..

[24]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[25]  Robert E. Filman What Is Aspect-Oriented Programming, Revisited , 2001 .

[26]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[27]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[28]  Carlos José Pereira de Lucena,et al.  A Metamodel for Aspect-Oriented Modeling , 2002 .

[29]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[30]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .