Aspect-Oriented Design with Reusable Aspect Models

The idea behind Aspect-Oriented Modeling (AOM) is to apply aspect-oriented techniques to (software) models with the aim of modularizing crosscutting concerns. This can be done within different modeling notations, at different levels of abstraction, and at different moments during the software development process. This paper demonstrates the applicability of AOM during the software design phase by presenting parts of an aspect-oriented design of a crisis management system. The design solution proposed in this paper is based on the Reusable Aspect Models (RAM) approach, which allows a modeler to express the structure and behavior of a complex system using class, state and sequence diagrams encapsulated in several aspect models. The paper describes how the model of the "create mission" functionality of the server backend can be decomposed into 23 inter-dependent aspect models. The presentation of the design is followed by a discussion on the lessons learned from the case study. Next, RAM is compared to 8 other AOM approaches according to 6 criteria: language, concern composition, asymmetric and symmetric composition, maturity, and tool support. To conclude the paper, a discussion section points out the features of RAM that specifically support reuse.

[1]  Jacques Klein,et al.  Aspect Model Unweaving , 2009, MoDELS.

[2]  Jacques Klein,et al.  Weaving Multiple Aspects in Sequence Diagrams , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[3]  Erik Ernst,et al.  ECOOP 2007 - Object-Oriented Programming, 21st European Conference, Berlin, Germany, July 30 - August 3, 2007, Proceedings , 2007, ECOOP.

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

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

[6]  Jean-Marc Jézéquel,et al.  Weaving executability into object-oriented meta-languages , 2005, MoDELS'05.

[7]  Tzilla Elrad,et al.  UML PROFILE FOR ASPECT-ORIENTED SOFTWARE DEVELOPMENT , 2003 .

[8]  Jacques Klein,et al.  Aspect-oriented multi-view modeling , 2009, AOSD '09.

[9]  Robert B. France,et al.  A Generic Approach for Automatic Model Composition , 2008, MoDELS.

[10]  Thomas Cottenier The Motorola WEAVR : Model Weaving in a Large Industrial Context , 2006 .

[11]  Stefan Hanenberg,et al.  A UML-based aspect-oriented design notation for AspectJ , 2002, AOSD '02.

[12]  Jörg Kienzle,et al.  AO challenge - implementing the ACID properties for transactional objects , 2006, AOSD.

[13]  Jon Whittle,et al.  MATA: A Tool for Aspect-Oriented Modeling Based on Graph Transformation , 2007, MoDELS Workshops.

[14]  R. France,et al.  Aspect-oriented approach to early design modelling , 2004, IEE Proc. Softw..

[15]  Laurence Duchien,et al.  An UML Notation for Aspect-Oriented Software Design , 2002 .

[16]  Jacques Klein,et al.  Semantic-based weaving of scenarios , 2006, AOSD.

[17]  Awais Rashid Aspect-Oriented Database Systems , 2004, Springer Berlin Heidelberg.

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

[19]  M. Wimmer,et al.  A Survey on Aspect-Oriented Modeling Approaches , 2006 .

[20]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[21]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[22]  Stefan Hanenberg,et al.  From aspect-oriented design to aspect-oriented programs: tool-supported translation of JPDDs into code , 2007, AOSD.

[23]  Robert B. France,et al.  Providing Support for Model Composition in Metamodels , 2007, 11th IEEE International Enterprise Distributed Object Computing Conference (EDOC 2007).

[24]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

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

[26]  Ivar Jacobson,et al.  Aspect-oriented software development with use cases , 2005, Addison Wesley object technology series.

[27]  Jörg Kienzle,et al.  AspectOptima: A Case Study on Aspect Dependencies and Interactions , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

[28]  Jacques Klein,et al.  Reusable Aspect Models , 2007 .

[29]  Siobhán Clarke,et al.  Aspect-oriented analysis and design - the theme approach , 2005, Addison Wesley object technology series.

[30]  Ruzanna Chitchyan,et al.  Editorial for Special Section on Dependencies and Interactions with Aspects , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

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

[32]  Jacques Klein,et al.  A generic weaver for supporting product lines , 2008, EA '08.

[33]  Mehmet Aksit,et al.  Transactions on Aspect-Oriented Software Development I , 2006, Trans. Aspect-Oriented Software Development I.

[34]  Elisa Baniassad,et al.  Aspect-Oriented Analysis and Design , 2005 .

[35]  Tzilla Elrad,et al.  Joinpoint Inference from Behavioral Specification to Implementation , 2007, ECOOP.

[36]  Stefan Hanenberg,et al.  Expressing different conceptual models of join point selections in aspect-oriented design , 2006, AOSD.

[37]  João Araújo,et al.  Scenario modelling with aspects , 2004, IEE Proc. Softw..

[38]  Robert B. France,et al.  Directives for Composing Aspect-Oriented Design Class Models , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[39]  Jörg Kienzle,et al.  Crisis Management Systems: A Case Study for Aspect-Oriented Modeling , 2010, LNCS Trans. Aspect Oriented Softw. Dev..