Detection and solution of software performance antipatterns in palladio architectural models

Antipatterns are conceptually similar to patterns in that they document recurring solutions to common design problems. Performance Antipatterns document, from a performance perspective, common mistakes made during software development as well as their solutions. The definition of performance antipatterns concerns software properties that can include static, dynamic, and deployment aspects. Currently, such knowledge is only used by domain experts; the problem of automatically detecting and solving antipatterns within an architectural model had not yet been empirically addressed. In this paper we present an approach to automatically detect and solve software performance antipatterns within the Palladio architectural models: the detection of an antipattern provides a software performance feedback to designers, since it suggests the architectural alternatives to overcome specific performance problems. We implemented the approach and a case study is presented to demonstrate its validity. The system performance under study has been improved by 50% with the use of antipatterns' solutions.

[1]  Jens Happe,et al.  State dependence in performance evaluation of component-based software systems , 2010, WOSP/SIPEW '10.

[2]  Connie U. Smith,et al.  New Software Performance AntiPatterns: More Ways to Shoot Yourself in the Foot , 2002, Int. CMG Conference.

[3]  Vittorio Cortellessa,et al.  A Framework for Automated Generation of Architectural Feedback from Software Performance Analysis , 2007, EPEW.

[4]  Ralf H. Reussner,et al.  Modelling Layered Component Execution Environments for Performance Prediction , 2009, CBSE.

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Steffen Becker,et al.  Automatically improve software architecture models for performance, reliability, and cost using evolutionary algorithms , 2010, WOSP/SIPEW '10.

[7]  Vittorio Cortellessa,et al.  A Process to Effectively Identify "Guilty" Performance Antipatterns , 2010, FASE.

[8]  David Osborne,et al.  J2EE AntiPatterns , 2003 .

[9]  A. Petrenko,et al.  Dynamic analysis of java applications for multithreaded antipatterns , 2005, WODA '05.

[10]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

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

[12]  Jing Xu,et al.  Rule-based automatic software performance diagnosis and improvement , 2008, WOSP '08.

[13]  Vittorio Cortellessa,et al.  Digging into UML models to remove performance antipatterns , 2010, QUOVADIS '10.

[14]  Susanna Donatelli,et al.  From UML sequence diagrams and statecharts to analysable petri net models , 2002, WOSP '02.

[15]  Vittorio Cortellessa,et al.  Performance Antipatterns as Logical Predicates , 2010, 2010 15th IEEE International Conference on Engineering of Complex Computer Systems.

[16]  Connie U. Smith,et al.  More New Software Antipatterns: Even More Ways to Shoot Yourself in the Foot , 2003, Int. CMG Conference.

[17]  Connie U. Smith,et al.  Software performance antipatterns , 2000, WOSP '00.

[18]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[19]  José Merseguer,et al.  Performance by unified model analysis (PUMA) , 2005, WOSP '05.

[20]  Dorina C. Petriu,et al.  The Future of Software Performance Engineering , 2007, Future of Software Engineering (FOSE '07).

[21]  John Murphy,et al.  Detecting Performance Antipatterns in Component Based Enterprise Systems , 2008, J. Object Technol..

[22]  Patrick Linskey,et al.  Bitter EJB , 2003 .

[23]  C. U. Smith More New Software Performance Antipatterns : Even More Ways to Shoot Yourself in the Foot , 2000 .

[24]  Matthias Meyer,et al.  Pattern-based Reengineering of Software Systems , 2006, 2006 13th Working Conference on Reverse Engineering.

[25]  Ralf H. Reussner,et al.  Using Genetic Search for Reverse Engineering of Parametric Behavior Models for Performance Prediction , 2010, IEEE Transactions on Software Engineering.

[26]  Wil M. P. van der Aalst,et al.  Data-Flow Anti-patterns: Discovering Data-Flow Errors in Workflows , 2009, CAiSE.