On the Modular Representation of Architectural Aspects

An architectural aspect is a concern that cuts across architecture modularity units and cannot be effectively modularized using the given abstractions of conventional Architecture Description Languages (ADLs). Dealing with crosscutting concerns is not a trivial task since they affect each other and the base architectural decomposition in multiple heterogeneous ways. The lack of ADL support for modularly representing such aspectual heterogeneous influences leads to a number of architectural breakdowns, such as increased maintenance overhead, reduced reuse capability, and architectural erosion over the lifetime of a system. On the other hand, software architects should not be burdened with a plethora of new ADL abstractions directly derived from aspect-oriented implementation techniques. However, most aspect-oriented ADLs rely on a heavyweight approach that mirrors programming languages concepts at the architectural level. In addition, they do not naturally support heterogeneous architectural aspects and proper resolution of aspect interactions. This paper presents AspectualACME, a simple and seamless extension of the ACME ADL to support the modular representation of architectural aspects and their multiple composition forms. AspectualACME promotes a natural blending of aspects and architectural abstractions by employing a special kind of architectural connector, called Aspectual Connector, to encapsulate aspect-component connection details. We have evaluated the applicability and scalability of the AspectualACME features in the context of three case studies from different application domains.

[1]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[2]  Jennifer Pérez,et al.  PRISMA: towards quality, aspect oriented and dynamic software architectures , 2003, Third International Conference on Quality Software, 2003. Proceedings..

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

[4]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[5]  Wim Vanderperren,et al.  FuseJ : An architectural description language for unifying aspects and components , 2005 .

[6]  Mehmet Aksit,et al.  Transactions on Aspect-Oriented Software Development IV , 2007, Trans. Aspect-Oriented Software Development IV.

[7]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[8]  Carlos José Pereira de Lucena,et al.  Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming , 2006, ICSR.

[9]  Carlos José Pereira de Lucena,et al.  Taming Heterogeneous Aspects with Crosscutting Interfaces , 2005 .

[10]  Mónica Pinto,et al.  A Dynamic Component and Aspect-Oriented Platform , 2005, Comput. J..

[11]  Pablo de la Fuente,et al.  Architectural Aspects of Architectural Aspects , 2005, EWSA.

[12]  Cláudio Sant'Anna,et al.  Driving and managing architectural decisions with aspects , 2006, SOEN.

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

[14]  Awais Rashid,et al.  Aspect-oriented software development beyond programming , 2006, ICSE '06.

[15]  Ruzanna Chitchyan,et al.  A Survey of Analysis and Design Approaches , 2005 .

[16]  J. M. Murillo,et al.  Aspect Oriented Software Architecture : a Structural Perspective , 2002 .

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

[18]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD.

[19]  Uirá Kulesza,et al.  Towards an Integrated Aspect-Oriented Modeling Approach for Software Architecture Design , 2006 .

[20]  Miguel A. Pérez,et al.  Aspect Modelling at Architecture Design , 2005, EWSA.

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

[22]  Thierry Coupaye,et al.  An Open Component Model and Its Support in Java , 2004, CBSE.

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

[24]  Carlos José Pereira de Lucena,et al.  Taming Heterogeneous Agent Architectures with Aspects , 2006 .

[25]  Cláudio Sant'Anna,et al.  Reflections on architectural connection: seven issues on aspects and ADLs , 2006, EA '06.

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

[27]  Thierry Coupaye,et al.  A Model for Developing Component-Based and Aspect-Oriented Systems , 2006, SC@ETAPS.

[28]  Carlos José Pereira de Lucena,et al.  Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[29]  Maurizio Morisio,et al.  Reuse of Off-the-Shelf Components, 9th International Conference on Software Reuse, ICSR 2006, Turin, Italy, June 12-15, 2006, Proceedings , 2006, ICSR.

[30]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[31]  Alexander L. Wolf,et al.  Software architecture , 2001 .