Application of Advanced Model-Driven Techniques in Performance Engineering

Software performance engineering supports software architects to identify potential performance problems, such as bottlenecks, in their software systems during the design phase. In such early stages of the software life-cycle, only little information is available about the system's implementation and execution environment. However, these details are crucial for accurate performance predictions. Performance completions close the gap between available high-level models and required low-level details. Using model-driven technologies, transformations can include details of the implementation and execution environment into abstract performance models. Existing approaches do not consider the relation of actual implementations and performance models used for prediction. Furthermore, they neglect the broad variety of implementations and middleware platforms, possible configurations, and varying usage scenarios. To allow more accurate performance predictions, we extend classical performance engineering by automated model refinements based on a library of reusable performance completions. We use model-driven techniques, more specifically higher-order transformations, to implement and automatically integrate performance completions in the context of the Palladio Component Model. With our tool set, software architects can model an application in a language specific to their domain. They can annotate the model elements that require further refinement. Higher-order transformations then apply the selected completion with its configuration. In a case study of a middleware configuration, we illustrate the benefit of performance completions with respect to the accuracy of performance predictions.

[1]  Steffen Becker,et al.  The palladio component model , 2010, WOSP/SIPEW '10.

[2]  Steffen Becker,et al.  Systematic Refinement of Performance Models for Concurrent Component-based Systems , 2010, Electron. Notes Theor. Comput. Sci..

[3]  Vincenzo Grassi,et al.  A Model Transformation Approach for the Early Performance and Reliability Analysis of Component-Based Systems , 2006, CBSE.

[4]  Steffen Becker,et al.  Model-Based performance prediction with the palladio component model , 2007, WOSP '07.

[5]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[6]  C. Murray Woodside,et al.  Performance modeling from software components , 2004, WOSP '04.

[7]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[8]  Jens Happe,et al.  Statistical Inference of Software Performance Models for Parametric Performance Completions , 2010, QoSA.

[9]  Bruce Powel Douglass Real-Time Design Patterns , 1999 .

[10]  Allan Clark,et al.  Formal Methods for Performance Evaluation , 2007 .

[11]  Jan Kofron,et al.  Research into Practice - Reality and Gaps, 6th International Conference on the Quality of Software Architectures, QoSA 2010, Prague, Czech Republic, June 23 - 25, 2010. Proceedings , 2010, QoSA.

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

[13]  Steffen Becker,et al.  A pattern-based performance completion for Message-oriented Middleware , 2008, WOSP '08.

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

[15]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[16]  Steffen Becker,et al.  Evaluating Maintainability with Code Metrics for Model-to-Model Transformations , 2010, QoSA.

[17]  Vittorio Cortellessa,et al.  Integrating Software Models and Platform Models for Performance Analysis , 2007, IEEE Transactions on Software Engineering.

[18]  Connie U. Smith,et al.  Performance solutions: a practical guide to creating responsive , 2001 .

[19]  Lucia Happe,et al.  Automated Feature Model-Based Generation of Refinement Transformations , 2009, 2009 35th Euromicro Conference on Software Engineering and Advanced Applications.

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

[21]  Clemens A. Szyperski,et al.  Software Architectures, Components, and Applications, Third International Conference on Quality of Software Architectures, QoSA 2007, Medford, MA, USA, July 11-23, 2007, Revised Selected Papers , 2008, QoSA.

[22]  Piet Demeester,et al.  Automatic inclusion of middleware performance attributes into architectural UML software models , 2005, IEEE Transactions on Software Engineering.

[23]  Steffen Becker,et al.  Parameter Dependent Performance Specifications of Software Components , 2006, QoSA.

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

[25]  Steffen Becker,et al.  Predicting the Performance of Component-Based Software Architectures with Different Usage Profiles , 2007, QoSA.