From monolithic to component-based performance evaluation of software architectures

Model-based performance evaluation methods for software architectures can help architects to assess design alternatives and save costs for late life-cycle performance fixes. A recent trend is component-based performance modelling, which aims at creating reusable performance models; a number of such methods have been proposed during the last decade. Their accuracy and the needed effort for modelling are heavily influenced by human factors, which are so far hardly understood empirically. Do component-based methods allow to make performance predictions with a comparable accuracy while saving effort in a reuse scenario? We examined three monolithic methods (SPE, umlPSI, Capacity Planning (CP)) and one component-based performance evaluation method (PCM) with regard to their accuracy and effort from the viewpoint of method users. We conducted a series of three experiments (with different levels of control) involving 47 computer science students. In the first experiment, we compared the applicability of the monolithic methods in order to choose one of them for comparison. In the second experiment, we compared the accuracy and effort of this monolithic and the component-based method for the model creation case. In the third, we studied the effort reduction from reusing component-based models. Data were collected based on the resulting artefacts, questionnaires and screen recording. They were analysed using hypothesis testing, linear models, and analysis of variance. For the monolithic methods, we found that using SPE and CP resulted in accurate predictions, while umlPSI produced over-estimates. Comparing the component-based method PCM with SPE, we found that creating reusable models using PCM takes more (but not drastically more) time than using SPE and that participants can create accurate models with both techniques. Finally, we found that reusing PCM models can save time, because effort to reuse can be explained by a model that is independent of the inner complexity of a component. The tasks performed in our experiments reflect only a subset of the actual activities when applying model-based performance evaluation methods in a software development process. Our results indicate that sufficient prediction accuracy can be achieved with both monolithic and component-based methods, and that the higher effort for component-based performance modelling will indeed pay off when the component models incorporate and hide a sufficient amount of complexity.

[1]  Virgílio A. F. Almeida,et al.  Proceedings of the 4th international workshop on Software and performance , 2004 .

[2]  Steffen Becker,et al.  An Empirical Investigation of the Applicability of a Component-Based Performance Prediction Method , 2008, EPEW.

[3]  Samuel Kounev,et al.  Using WebLogic Diagnostics Framework to Enable Performance Prediction for Java EE Applications , 2009 .

[4]  Alan Fekete,et al.  Design-level performance prediction of component-based applications , 2005, IEEE Transactions on Software Engineering.

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

[6]  Daniel A. Menascé,et al.  Scaling for E-Business: Technologies, Models, Performance, and Capacity Planning , 2000 .

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

[8]  Steffen Becker,et al.  Performance modeling in industry: a case study on storage virtualization , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[9]  Raj Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[10]  Dietmar Pfahl,et al.  Reporting Experiments in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

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

[12]  Lutz Prechelt Kontrollierte Experimente in der Softwaretechnik , 2001 .

[13]  Vittorio Cortellessa,et al.  Proceedings of the 6th international workshop on Software and performance , 2007 .

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

[15]  Claus Rautenstrauch,et al.  Performance Engineering: State of the Art and Current Trends , 2001 .

[16]  Jerome A. Rolia,et al.  The Method of Layers , 1995, IEEE Trans. Software Eng..

[17]  Johan J. Lukkien,et al.  Predicting real-time properties of component assemblies: a scenario-simulation approach , 2004, Proceedings. 30th Euromicro Conference, 2004..

[18]  Stephen A. Jarvis,et al.  A dynamic predictive framework for e-business workload management , 2003 .

[19]  C. Murray Woodside,et al.  Enhanced Modeling and Solution of Layered Queueing Networks , 2009, IEEE Transactions on Software Engineering.

[20]  Stephen A. Jarvis,et al.  An investigation into the application of different performance prediction techniques to e-Commerce applications , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[21]  Virgílio A. F. Almeida,et al.  Capacity Planning and Performance Modeling: From Mainframes to Client-Server Systems , 1994 .

[22]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

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

[24]  Samuel Kounev,et al.  Performance Modeling and Evaluation of Distributed Component-Based Systems Using Queueing Petri Nets , 2006, IEEE Transactions on Software Engineering.

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

[26]  Connie U. Smith,et al.  Making the Business Case for Software Performance Engineering , 2003, Int. CMG Conference.

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

[28]  Connie U. Smith,et al.  PASASM: a method for the performance assessment of software architectures , 2002, WOSP '02.

[29]  Stephen A. Jarvis,et al.  An Investigation into the Application of Different Performance Prediction Methods to Distributed Enterprise Applications , 2005, The Journal of Supercomputing.

[30]  Paola Inverardi,et al.  Experimenting different software architectures performance techniques: a case study , 2004, WOSP '04.

[31]  James Fealey,et al.  Performance by design , 2004 .

[32]  Steffen Becker,et al.  An Empirical Investigation of the Effort of Creating Reusable, Component-Based Models for Performance Prediction , 2008, CBSE.

[33]  Steffen Becker,et al.  Evaluating Performance of Software Architecture Models with the Palladio Component Model , 2009 .

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

[35]  Felix C. Freiling,et al.  On Metrics and Measurements , 2005, Dependability Metrics.

[36]  Walter F. Tichy,et al.  A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions , 2001, IEEE Trans. Software Eng..

[37]  Edward D. Lazowska,et al.  Quantitative system performance - computer system analysis using queueing network models , 1984, Int. CMG Conference.

[38]  Heiko Koziolek Empirische Bewertung von Performance-A nalyseverfahren f?r Software-Architekturen , 2004 .

[39]  Lionel C. Briand,et al.  An experimental evaluation of quality guidelines on the maintainability of object-oriented design documents , 1997, ESP '97.

[40]  Steffen Becker,et al.  Performance Prediction of Component-Based Systems - A Survey from an Engineering Perspective , 2004, Architecting Systems with Trustworthy Components.

[41]  Moreno Marzolla,et al.  Simulation-based performance modeling of UML software architectures , 2004 .

[42]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[43]  Ralf H. Reussner,et al.  Performance Prediction for Black-Box Components Using Reengineered Parametric Behaviour Models , 2008, CBSE.

[44]  Ray Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[45]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[46]  Janice Singer,et al.  Guide to Advanced Empirical Software Engineering , 2007 .