An evolutionary algorithm for performance optimization at software architecture level

Architecture-based software performance optimization can not only significantly save time but also reduce cost. A few rule-based performance optimization approaches at software architecture (SA) level have been proposed in recent years. However, in these approaches, the number of rules being used and the order of application of each rule are uncertain in the optimization process and these uncertainties have not been fully considered so far. As a result, the search space for performance improvement is limited, possibly excluding optimal solutions. Aiming to solve this problem, we propose an evolutionary algorithm for rule-based performance optimization at SA level named EA4PO. First, the rule-based software performance optimization at SA level is abstracted into a mathematical model called RPOM. RPOM can precisely characterize the mathematical relation between the usage of rules and the optimal solution in the performance improvement space. Then, a framework named RSEF is designed to support the execution of rule sequences. Based on RPOM and RSEF, EA4PO is proposed to find the optimal performance improvement solution. In EA4PO, an adaptive mutation operator is designed to guide the search direction by fully considering heuristic information of rule usage during the evolution. Finally, the effectiveness of EA4PO is validated by comparing EA4PO with a typical rule-based approach. The results show that EA4PO can explore a relatively larger space and get better solutions.

[1]  Hans-Paul Schwefel,et al.  How to analyse evolutionary algorithms , 2002, Theor. Comput. Sci..

[2]  Joost-Pieter Katoen,et al.  Process algebra for performance evaluation , 2002, Theor. Comput. Sci..

[3]  Vittorio Cortellessa,et al.  Automatic derivation of software performance models from CASE documents , 2001, Perform. Evaluation.

[4]  Marco Ajmone Marsan,et al.  Performance models of multiprocessor systems , 1987, MIT Press series in computer systems.

[5]  Vittorio Cortellessa,et al.  An approach for modeling and detecting software performance antipatterns based on first-order logics , 2012, Software & Systems Modeling.

[6]  Uwe Fink Performance Solutions A Practical Guide To Creating Responsive Scalable Software , 2016 .

[7]  Felix Bachmann,et al.  Using ArchE in the Classroom: One Experience , 2007 .

[8]  Anne Koziolek,et al.  Detection and solution of software performance antipatterns in palladio architectural models , 2011, ICPE '11.

[9]  Mirco Tribastone Efficient optimization of software performance models via parameter-space pruning , 2014, ICPE.

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

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

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

[13]  Erwin A. de Kock,et al.  Exploring performance trade-offs of a JPEG decoder using the deepcompass framework , 2007, WOSP '07.

[14]  Axel Thümmler,et al.  Performance analysis of time-enhanced UML diagrams based on stochastic processes , 2002, WOSP '02.

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

[16]  Bran Selic,et al.  Automated performance modeling of software generated by a design environment , 2001, Perform. Evaluation.

[17]  Connie U. Smith,et al.  New Book - Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software , 2001, Int. CMG Conference.

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

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

[20]  Heiko Koziolek,et al.  Performance evaluation of component-based software systems: A survey , 2010, Perform. Evaluation.

[21]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .