Architectural Aspects of Architectural Aspects

This document studies in some detail the recently developed concept of aspect at the architecture level. This concept introduces a novel kind of modularization and composition in software, and therefore it defines new structures which must be studied by Software Architecture, determining the architectural features of aspects. However the opposite strategy can also be considered; namely, a new conceptual model can be defined, including an architecture-level notion of aspect. This would provide a new abstraction to describe software structures, thus effectively providing an additional dimension in architecture description, and would enable the study of the specific compositional problems in this dimension. The document starts by addressing the relevance of this kind of study, and continues by discussing why the new notions are necessary. Then it continues by including a brief enumeration of the more relevant notions derived from this aspectual framework, with particular emphasis on their relationship with software components. Next the document explores the different forms in which these notions could be incorporated into the context of Software Architecture, revealing a rather extensive variety of approaches, and also the relationships and partial equivalences between them.The paper concludes by noting a number or open questions and futures areas of research within this context.

[1]  Harold Ossher,et al.  Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition , 2002 .

[2]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[3]  Wim Vanderperren,et al.  JAsCo: an aspect-oriented approach tailored for component based software development , 2003, AOSD '03.

[4]  Oscar M. Nierstrasz,et al.  ECOOP’ 93 — Object-Oriented Programming , 2000, Lecture Notes in Computer Science.

[5]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[6]  Laurence Duchien,et al.  Aspect-Oriented Software Development with Java Aspect Components , 2004 .

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

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

[9]  David Walker,et al.  Harmless advice , 2006, POPL '06.

[10]  Denis Caromel,et al.  Partial behavioral reflection: spatial and temporal selection of reification , 2003, OOPSLA 2003.

[11]  Bedir Tekinerdogan,et al.  Solving the modeling problems of object-oriented languages by composing multiple aspects using composition filters , 1998 .

[12]  Martin C. Rinard,et al.  A classification system and analysis for aspect-oriented programs , 2004, SIGSOFT '04/FSE-12.

[13]  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).

[14]  Jonathan Aldrich,et al.  Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming , 2004 .

[15]  Gary T. Leavens,et al.  Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning , 2002 .

[16]  Jennifer Pérez,et al.  Dynamic Evolution in Aspect-Oriented Architectural Models , 2005, EWSA.

[17]  Olivier Motelet,et al.  A Formal Definition of Crosscuts , 2001, Reflection.

[18]  James H. Andrews,et al.  Process-Algebraic Foundations of Aspect-Oriented Programming , 2001, Reflection.

[19]  Satoshi Matsuoka,et al.  Metalevel Architectures and Separation of Crosscutting Concerns , 2001, Lecture Notes in Computer Science.

[20]  Laurence Duchien,et al.  JAC: an aspect‐based distributed dynamic framework , 2004, Softw. Pract. Exp..

[21]  Tommi Mikkonen,et al.  Concern-Based Development of Pattern Systems , 2005, EWSA.

[22]  Siobhán Clarke,et al.  Extending standard UML with model composition semantics , 2002, Sci. Comput. Program..

[23]  Renaud Pawlak,et al.  La programmation orientée aspect pour Java/J2EE , 2004 .

[24]  Jörg Kienzle,et al.  On Composition and Reuse of Aspects , 2003 .

[25]  Wilson C. Hsieh,et al.  Aspect-oriented programming with Jiazzi , 2003, AOSD '03.

[26]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

[27]  Wim Vanderperren,et al.  There are no Aspects , 2004, SC.

[28]  Jörg Kienzle,et al.  AOP: Does It Make Sense? The Case of Concurrency and Failures , 2002, ECOOP.

[29]  Shmuel Katz,et al.  A superimposition control construct for distributed systems , 1993, TOPL.

[30]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

[31]  Urs Hölzle,et al.  Integrating Independently-Developed Components in Object-Oriented Languages , 1993, ECOOP.

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

[33]  Pablo de la Fuente,et al.  Coordination in Architectural Connection. Reflective and Aspectual Introduction , 2006, Obj. Logiciel Base données Réseaux.

[34]  Boris Magnusson,et al.  ECOOP 2002 — Object-Oriented Programming , 2002, Lecture Notes in Computer Science.

[35]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[36]  Shmuel Katz,et al.  Architectural views of aspects , 2003, AOSD '03.

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

[38]  Karl J. Lieberherr,et al.  Aspectual Collaborations: Combining Modules and Aspects , 2003, Comput. J..

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

[40]  Siobhán Clarke,et al.  Theme: an approach for aspect-oriented analysis and design , 2004, Proceedings. 26th International Conference on Software Engineering.

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

[42]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

[43]  Alfred Strohmeier,et al.  Modeling Crosscutting Concerns using Software Connectors , 2001, OOPSLA 2001.

[44]  Andrew P. Black Object-Oriented Programming: Regaining the Excitement , 1999, ECOOP.

[45]  Shmuel Katz,et al.  Superimpositions and Aspect-oriented Programming , 2003, Comput. J..