- Open Access
Crosscutting interfaces for aspect-oriented modeling
Journal of the Brazilian Computer Society volume 12, pages 43–58 (2006)
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 or heterogeneous. 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 two large-scale case studies we have performed using this modeling language that support our arguments in favor of crosscutting interfaces.
Aspect-Oriented Software Development. http://aosd.net
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, PUC-Rio, Rio de Janeiro, Brazil, April 2004.
Chavez, C., Lucena, C. A Theory of Aspects for Aspect-Oriented Development.Proc. of the Brazilian Symposium on Software Engineering (SBES’2003), Manaus, Brazil, October 2003, pp. 130–145.
Chavez, C., Lucena, C. A Metamodel for Aspect-Oriented Modeling. In:Workshop on Aspect-oriented Modeling with the UML, 1st Intl Conf. 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 Object-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:Work. on Aspect-Oriented Programming and Separation of Concerns, Lancaster, UK, 2001.
Clarke, S., Walker, R. J. Composition Patterns: An Approach to Designing Reusable Aspects. In: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 3rd Intl Conf. on Aspect-Oriented Software Development (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. In:Workshop on Advanced Separation of Concerns, 15th ECOOP, 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. In:Proc. of the 4th Intl Conf. on Aspect-Oriented Software Development (AOSD’2005), Chicago, USA, March 2005, pp. 3–14.
Garcia, A., Kulesza, U., Lucena,, C. 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. In: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, pp. 49–72.
Garcia, A., Silva, V., Chavez, C., Lucena, C. Engineering Multi-Agent Systems with Aspects and Patterns.J. Braz. Computer Society, 1(8), July 2002, pp. 57–72.
Hannemann, J., Kiczales, G. Design Pattern Implementation in Java and AspectJ, In:Proc. of OOPSLA’02, November 2002, pp. 161–173.
Harrison, W., Ossher, H. Subject-Oriented Programming (A Critique of Pure Objects). In:Proc. of OOPSLA’93, 1993, pp. 411–428.
Hyper/J Web Page,http://www.research.ibm.com/hyperspace/HyperJ/HyperJ.htm, 2001.
Kiczales, G., Mezini, M. Aspect-Oriented Programming and Modular Reasoning. In:Proc. of the ICSE’05, New York, NY, USA, 2005. ACM Press, pp. 49–58.
Kiczales, G. et al. Aspect-Oriented Programming. In:European Conf. on Object-Oriented Programming (ECOOP), LNCS 1241, Springer, Finland, 1997, pp. 220–242.
Lieberherr, K., Lorenz, D., Mezini, M. Programming with Aspectual Components. Tech. Report NU-CCS-99-01, College of Computer Science, Northeastern University, Boston, MA, March 1999.
Massoni, T., et al. PDC: Persistent Data Collections Pattern. InProc. of the Sugar Loaf PLoP ’2001, Brazil, October 2001.
Meyer, B. Object-Oriented Software Construction. 2nd Edition. Prentice Hall, 1997.
Mezini, M., Ostermann, K. Conquering Aspects with Caesar. In:Proc. of the 2nd Intl Conf. on Aspect-Oriented Software Development (AOSD’2003), Boston, USA, March 2003, pp. 90–99.
Parnas, D. On the Criteria to Be Used in Decomposing Systems into Modules. In:Communications of the ACM, 15 (12), December 1972, pp. 1053–1058.
Pinto, M. et al. DAOP-ADL: An Architecture Description Language for Dynamic Component and Aspect-Based Development. In:Generative Programming and Component Engineering (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 University of Pernambuco, Recife, Brazil, October 2004.
Soares, S., Laureano, E., Borba, P. Implementing Distribution and Persistence Aspects with AspectJ. In:Proc of 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. In:Proc. of the 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, December 2003. www.omg.org/uml/.
Zhao, J.,Rinard, M. Pipa: A Behavioral Interface Specification Language for AspectJ. In:6th Intl Conf. on Fundamental Approaches to Software Engineering, (FASE 2003), Warsaw, LNCS 2621, pp. 150–165.
extended version of the paper Taming Heterogeneous Aspects with Crosscutting Interfaces, Best Paper of the XIX Brazilian Symposium on Software Engineering, Uberlândia, 2005.
About this article
Cite this article
Chavez, C., Garcia, A., Kulesza, U. et al. Crosscutting interfaces for aspect-oriented modeling. J Braz Comp Soc 12, 43–58 (2006). https://doi.org/10.1007/BF03192387
- Aspect-oriented modeling
- crosscutting interfaces
- heterogeneous aspects
- software design
- software architecture
- separation of concerns