Automatic, Model-Based Software Performance Improvement for Component-based Software Designs

Formal performance prediction methods, based on queueing network models, allow evaluating software architectural designs for performance. Existing methods provide prediction results such as response times and throughputs, but do not guide the software architect on how to improve the design. We propose a novel approach to optimise the expected performance of component-based software designs by automatically generating and evaluating design alternatives. The design space spanned by different design options (e.g. available components and configuration options) is systematically explored using metaheuristic search techniques and performance-domain heuristics. The gap between applying formal performance predictions and actually improving the design of a system can thus be closed. This paper presents a formal description and a prototypical implementation of our approach with a proof-of-concept case study.

[1]  Leon J. Osterweil,et al.  Proceedings of the 16th international conference on Software engineering , 1994, ICSE 1994.

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

[3]  S. Mohan,et al.  Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software [Book Review] , 2003, IEEE Software.

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

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

[6]  Cees H. M. van Kemenade Explicit Filtering of Building Blocks for Genetic Algorithms , 1996, PPSN.

[7]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[8]  Christian Blum,et al.  Metaheuristics in combinatorial optimization: Overview and conceptual comparison , 2003, CSUR.

[9]  Matthias Ehrgott,et al.  Multicriteria Optimization , 2005 .

[10]  Rick Kazman,et al.  Categorizing Business Goals for Software Architectures , 2005 .

[11]  Stephen Gilmore,et al.  Automatic extraction of PEPA performance models from UML activity diagrams annotated with the MARTE profile , 2008, WOSP '08.

[12]  J. R. Jackson Networks of Waiting Lines , 1957 .

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

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

[15]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[16]  Heiko Koziolek,et al.  Empirical Evaluation of Model-Based Performance Prediction Methods in Software Development , 2005, QoSA/SOQUA.

[17]  H. Eskandari,et al.  A fast Pareto genetic algorithm approach for solving expensive multiobjective optimization problems , 2008, J. Heuristics.

[18]  Jos Warmer,et al.  The object constraint language , 1998 .

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

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