An AOP-based Performance Evaluation Framework for UML Models

Performance is a key aspect of non-functional software requirements. While performance cross-cuts much of the software functionality, it is frequently difficult to express in traditional software development representations. In this paper we propose a framework for evaluating software performance using aspect-oriented programming (AOP) and examine its strengths and limitations. The framework provides a mechanism for supporting software performance evaluation prior to final software release. AOP is a promising software engineering technique for expressing cross-cutting characteristics of software systems. We consider software performance as a cross-cutting concern since it is not confined only a few modules, but often spread over multiple functional and non-functional elements. A key strength of our framework is the use of a code instrumentation mechanism of AOP - AspectJ code for performance analysis is separated from Java code for functional requirements. Java code is executable regardless of Aspect J code and can be woven together with AspectJ code when performance is evaluated. Our performance evaluation modules, written in AspectJ are semi-automatically or automatically generated from the UML [1] models with annotated performance profiles. The AspectJ code generator facilitates performance evaluation by allowing performance requirements that have been specified in UML models to be analyzed. The UML diagrams can then be improved by reflecting the feedback from the results of the performance analysis.

[1]  Noël Plouzeau,et al.  UMLAUT: a framework for weaving UML-based aspect-oriented designs , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[2]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[3]  Dae-Sung Park,et al.  Design phase analysis of soft-ware performance using aspect-oriented programming , 2004 .

[4]  Arturo Sanchez,et al.  Incorporating Aspects into the UML , 2003 .

[5]  Stefan Hanenberg,et al.  On Representing Join Points in the UML , 2002 .

[6]  Jörg Kienzle,et al.  From AOP to UML - A Bottom-Up Approach , 2002 .

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

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

[9]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[10]  Neil A. Speirs,et al.  A UML tool for an automatic generation of simulation programs , 2000, WOSP '00.

[11]  Dorina C. Petriu,et al.  Early evaluation of software performance based on the UML performance profile , 2003, CASCON.

[12]  Tony Field,et al.  Performance engineering with the UML profile for schedulability, performance and time: a case study , 2004, The IEEE Computer Society's 12th Annual International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunications Systems, 2004. (MASCOTS 2004). Proceedings..

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

[14]  Paul H. J. Kelly,et al.  Profiling with AspectJ , 2007 .

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