Taming Heterogeneous Aspects with Crosscutting Interfaces
Resumo
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.
Referências
AspectJ Team. The AspectJ Programming Guide. http://eclipse.org/aspectj/.
Buschmann, F. et al. Pattern-Oriented Software Architecture: A System of Patterns. 1996: Wiley and Sons.
Chavez, C. A Model-Driven Approach to Aspect-Oriented Design. PhD Thesis, Computer Science Department, PUC-Rio, April 2004.
Chavez, C., Lucena, C. A Theory of Aspects for Aspect-Oriented Development. Proceedings of the SBES'2003, Manaus, Brazil, October 2003, pp. 130-145.
Chavez, C., Lucena, C. A Metamodel for Aspect-Oriented Modeling. Workshop on Aspect-oriented Modeling with the UML, 1st International Conference on Aspect-Oriented Software Development, Netherlands, 2002.
Chavez, C.; Lucena, C. Design Support for Aspect-oriented Software Development. In: Workshop on Advanced Separation of Concerns in Onject-Oriented Systems (OOPSLA 2001), Tampa, USA, October 2001.
Chavez, C.; Garcia, A.; Lucena,, C. Some Insights on the Use of AspectJ and Hyper/J. In: Workshop on Aspect-Oriented Programming and Separation of Concerns, Lancaster, UK, 2001.
Clarke, S., Walker, R. J. Composition Patterns: An Approach to Designing Reusable Aspects. Proc. of the 23rd International Conference on Software Engineering (ICSE), Toronto, Canada, May 2001.
Clarke, S., Walker, R. J. Generic Aspect-Oriented Design with Theme/UML. In Aspect-Oriented Software Development, Addison-Wesley, pp. 425-458, 2005.
Colyer, A., Clement, A. Large-scale AOSD for middleware. Proc. of the AOSD'2004, March 2004, Lancaster, UK, pp. 56-65.
Crosscutting Interfaces for Aspect-Oriented Modeling. http://www.teccomm.les.inf.puc-rio.br/SoCAgents/CI/index.htm.
Dijkstra, E. A Discipline of Programming. Prentice-Hall, 1976.
Elrad, T. et al. Discussing aspects of AOP. Communication of the ACM, 44(10), October 2001, pp. 33-38.
Filman, R., Elrad, T., Clarke, S., Aksit, M. Aspect-Oriented Software Development. Addison-Wesley, 2005.
Filman, R. What Is Aspect-Oriented Programming, Revisited. Workshop on Advanced Separation of Concerns, 15th European Conference on Object-Oriented Programming, Budapest, June 2001.
Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, 1995.
Garcia, A., Sant'Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., Staa, A. Modularizing Design Patterns with Aspects: A Quantitative Study. Proc. of the AOSD'2005, Chicago USA, March 2005, pp. 3-14.
Garcia, A. et al. Aspectizing Multi-Agent Systems: From Architecture to Implementation. Software Engineering for Multi-Agent Systems III. Springer-Verlag, LNCS 3390, December 2004, pp. 121-143.
Garcia, A. et al. The Learning Aspect Pattern. Proc. of the 11th Conference on Pattern Languages of Programs (PLoP2004), Monticello, USA, September 2004.
Garcia, A. From Objects to Agents: An Aspect-Oriented Approach. Doctoral Thesis, PUC-Rio, Rio de Janeiro, Brazil, April 2004.
Garcia, A., Lucena, C., Cowan D. Agents in Object-Oriented Software Engineering. Software: Practice & Experience, Elsevier, 34 (5), April 2004, pp. 489-521.
Garcia, A., Sant'Anna, C., Chavez, C., Lucena, C., Staa, A. Separation of Concerns in Multi-Agent Systems: An Empirical Study. In Software Engineering for Multi-Agent Systems II, Springer, LNCS 2940, Jan 2004.
Garcia, A., Silva, V., Chavez, C., Lucena, C. Engineering Multi-Agent Systems with Aspects and Patterns. J. of the Brazilian Computer Society, 1(8), July 2002, pp. 57-72.
Hannemann, J., Kiczales, G. Design Pattern Implementation in Java and AspectJ, Proceedings of OOPSLA'02, November 2002, pp. 161-173.
Harrison, W., Ossher, H. Subject-Oriented Programming (A Critique of Pure Objects). Proceedings of OOPSLA'93, 1993, p. 411-428.
Hyper/J Web Page, [link], 2001.
Kiczales, G., Mezini, M. Aspect-Oriented Programming and Modular Reasoning. In Proceedings of ICSE'05 (to appear), 2005.
Kiczales, G. et al. Aspect-Oriented Programming. European Conference on Object-Oriented Programming (ECOOP), LNCS 1241, Springer, Finland, June 1997.
Lieberherr, K., Lorenz, D., Mezini, M. Programming with Aspectual Components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, Boston, MA, March 1999.
Meyer, B. Object-Oriented Software Construction. 2.ed. Prentice Hall, 1997.
Mezini, M., Ostermann, K. Conquering Aspects with Caesar. Proc. of the AOSD'2003, Boston, USA, March 2003, pp. 90-99.
Parnas, D. On the Criteria to Be Used in Decomposing Systems into Modules. Communications of the ACM, 15 (12), December 1972, pp. 1053-1058.
Pinto, M., Fuentes, L., Troya, J. DAOP-ADL: An Architecture Description Language for Dynamic Component and Aspect-Based Development. GPCE 2003, pp. 118-137.
Shavor, S. et al. The Java Developer's Guide to Eclipse. Addison-Wesley, 2003.
Soares, S. An Aspect-Oriented Implementation Method. Doct. Thesis, Federal Univ. of Pernambuco, Oct 2004.
Soares, S., Laureano, E., Borba, P. Implementing Distribution and Persistence Aspects with AspectJ. Proceedings of the OOPSLA'02, 2002, pp. 174-190.
Stein, D. An Aspect-Oriented Design Model Based on AspectJ and UML, Master Thesis, University of Essen, January, 2002.
Tarr, P. et al. N Degrees of Separation: Multi-Dimensional Separation of Concerns. Proc. ICSE'99, May 1999, pp. 107-119.
The 5th Aspect-Oriented Modeling Workshop. In Conjunction with UML 2004. October 11-15, 2004 Lisbon, Portugal. http://www.cs.iit.edu/~oaldawud/AOM/.
Unified Modeling Language (UML) Specification: Infrastructure Version 2.0, Dec 2003. http://www.omg.org/uml/.
Zhao, J.,Rinard, M. Pipa: A Behavioral Interface Specification Language for AspectJ. FASE 2003: 150-165.