Extending the UML Metamodel to Provide Support for Crosscutting Concerns

Aspect-orientation is a term used to describe approaches that explicitly capture, model and implement crosscutting concerns (or aspects). There is currently a number of new programming languages as well as extensions to current programming languages, the design dimensions of most of which have been influenced by the AspectJ language through three concepts and their respective constructs, namely join points, point cuts and advice which can support two principles recognized as being key concepts of aspect-oriented programming (AOP): quantification and obliviousness. At the modeling level, the reception of AOP has long been focused on the modeling of AspectJ programs, and there exists no model that is generic enough to capture non-AspectJ aspects either as a source language during forward engineering or as a target language during reverse engineering. In this paper, we present an extension to the UML metamodel to explicitly capture crosscutting concerns. The model is independent from any programming language and abstracted away from platform specific details. An instantiation of the newly created metamodel can be represented in standard XMI format, which enables current CASE tools to read and to visualize the instance models in UML. This language-independent aspectual description can support model transformations vital to software development and maintenance, such as forward engineering, reverse engineering, and reengineering.

[1]  N. Albunni,et al.  Using UML for Modelling Cross-Cutting Concerns in Aspect Oriented Software Engineering , 2008, 2008 3rd International Conference on Information and Communication Technologies: From Theory to Applications.

[2]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[3]  Antonia M. Reina Quintero,et al.  Towards developing generic solutions with aspects , 2004 .

[4]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[5]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

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

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

[8]  Friedrich Steimann The paradoxical success of aspect-oriented programming , 2006, OOPSLA '06.

[9]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[10]  Rudolf K. Keller,et al.  Selecting a model interchange format: the SPOOL case study , 2000, Proceedings of the 33rd Annual Hawaii International Conference on System Sciences.

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

[12]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[13]  Adam Przybylek Separation of crosscutting concerns at the design level: An extension to the UML metamodel , 2008, 2008 International Multiconference on Computer Science and Information Technology.

[14]  Chang Liu,et al.  Towards a Framework of Aspect-Oriented Modeling with UML , 2008, 2008 International Symposium on Computer Science and Computational Technology.

[15]  Anis Charfi,et al.  Applying and evaluating AOM for platform independent behavioral UML models , 2008 .

[16]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[17]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[18]  José Uetanabara Júnior,et al.  UML-AOF: a profile for modeling aspect-oriented frameworks , 2009, AOM '09.

[19]  Lidia Fuentes,et al.  Towards executable aspect-oriented UML models , 2007 .

[20]  Bran Selic,et al.  A Systematic Approach to Domain-Specific Language Design Using UML , 2007, 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'07).

[21]  Joerg Evermann,et al.  A meta-level specification and profile for AspectJ in UML , 2007, J. Object Technol..