Abstract
During software system evolution, software architects intuitively trade off the different architecture alternatives for their extra-functional properties, such as performance, maintainability, reliability, security, and usability. Researchers have proposed numerous model-driven prediction methods based on queuing networks or Petri nets, which claim to be more cost-effective and less error-prone than current practice. Practitioners are reluctant to apply these methods because of the unknown prediction accuracy and work effort. We have applied a novel model-driven prediction method called Q-ImPrESS on a large-scale process control system from ABB consisting of several million lines of code. This paper reports on the achieved performance prediction accuracy and reliability prediction sensitivity analyses as well as the effort in person hours for achieving these results.















References
Balsamo S, Di Marco A, Inverardi P, Simeoni M (2004) Model-based performance prediction in software development: a survey. IEEE Trans Softw Eng 30(5):295–310
Basili VR, Caldiera G, Rombach HD (2002) The goal question metric approach. In: Marciniak JJ (ed) Encyclopedia of software engineering, 2nd edn. Wiley, New York, pp 578–583
Bause F (1993) Queueing Petri nets—a formalism for the combined qualitative and quantitative analysis of systems. In: Proceedings of the 5th international workshop on Petri nets and performance models, pp 14–23
Becker S (2008) Coupled model transformations for QoS enabled component-based software design. PhD thesis, University of Oldenburg, Germany
Becker S, Bulej L, Bures T, Hnetynka P, Kapova L, Kofron J, Koziolek H, Kraft J, Mirandola R, Stammel J, Tamburelli G, Trifu M (2008) Q-ImPrESS project deliverable D2.1: service architecture meta model (SAMM). Tech. Rep. 1.0, Q-ImPrESS Consortium. http://bit.ly/bfSGrh
Becker S, Koziolek H, Reussner R (2009) The Palladio component model for model-driven performance prediction. J Syst Softw 82(1):3–22
Brosch F, Koziolek H, Buhnova B, Reussner R (2010) Parameterized reliability prediction for component-based software architectures. In: Proc. 6th int. conf. on the quality of software architectures (QoSA’10). LNCS, vol 6093. Springer, New York, pp 36–51
Cheung L, Roshandel R, Medvidovic N, Golubchik L (2008) Early prediction of software component reliability. In: ICSE ’08: proceedings of the 30th international conference on software engineering. ACM, pp 111–120. doi:10.1145/1368088.1368104
Cheung RC (1980) A user-oriented software reliability model. IEEE Trans Softw Eng SE-6(2):118–125
Cortellessa V, Marco AD, Inverardi P (2011) Model-based software performance analysis. Springer, New York
Fenton NE, Neil M (1999) A critique of software defect prediction models. IEEE Trans Softw Eng 25(5):675–689
Franks G, Al-Omari T, Woodside M, Das O, Derisavi S (2009) Enhanced modeling and solution of layered queueing networks. IEEE Trans Softw Eng 35(2):148–161. doi:10.1109/TSE.2008.74
Gokhale SS (2007) Architecture-based software reliability analysis: overview and limitations. IEEE Trans Dependable Secure Comput 4(1):32–40. doi:10.1109/TDSC.2007.4
Gokhale SS, Wong WE, Horgan JR, Trivedi KS (2004) An analytical approach to architecture-based software performance and reliability prediction. Perform Eval 58(4):391–412
Goseva-Popstojanova K, Hamill M, Perugupalli R (2005) Large empirical case study of architecture-based software reliability. In: Proc. 16th IEEE int. symp. on software reliability engineering (ISSRE’05). IEEE Computer Society, pp 43–52
Goseva-Popstojanova K, Hamill M, Wang X (2006) Adequacy, accuracy, scalability, and uncertainty of architecture-based software reliability: lessons learned from large empirical case studies. In: Proc. 17th int. symp. on software reliability engineering (ISSRE’06). IEEE, pp 197–203
Goseva-Popstojanova K, Mathur K, Trivedi K (2001) Comparison of architecture-based software reliability models. In: Proceedings. 12th international symposium on software reliability engineering, 2001. ISSRE 2001, pp 22–31
Goseva-Popstojanova K, Trivedi KS (2001) Architecture-based approach to reliability assessment of software systems. Perform Eval 45(2–3):179–204
Grassi V, Mirandola R, Sabetta A (2007) Filling the gap between design and performance/reliability models of component-based systems: a model-driven approach. J Syst Softw 80(4):528–558. doi:10.1016/j.jss.2006.07.023
Happe J, Becker S, Rathfelder C, Friedrich H, Reussner RH (2010) Parametric performance completions for model-driven performance prediction. Perform Eval 67(8):694–716
Hatvani L, Jansen A, Seceleanu C, Pettersson P (2010) An integrated tool for trade-off analysis of quality-of-service attributes. In: Proc. 2nd int. workshop on the quality of service-oriented software systems (QUASOSS’10). ACM Digital Library
Huber N, Becker S, Rathfelder C, Schweflinghaus J, Reussner RH (2010) Performance modeling in industry: a case study on storage virtualization. In: Proc. 32nd int. conf. on software engineering (ICSE’10). ACM, pp 1–10
IEEE (2008) Recommended practice on software reliability, IEEE std 1633-2008. Tech. rep., The Institute of Electrical and Electronics Engineers, Inc.
Immonen A, Niemelä E (2008) Survey of reliability and availability prediction methods from the viewpoint of software architecture. Journal on Softw. and Syst. Modeling 7(1):49–65
Jain R (1991) The art of computer systems performance analysis: techniques for experimental design, measurement, simulation, and modeling. Wiley, New York
Jin Y, Tang A, Han J, Liu Y (2007) Performance evaluation and prediction for legacy information systems. In: Proceedings of the 29th international conference on software engineering, ICSE ’07. IEEE Computer Society, Washington, DC, USA, pp 540–549. doi:10.1109/ICSE.2007.64
Kounev S (2006) Performance modeling and evaluation of distributed component-based systems using queueing Petri nets. IEEE Trans Softw Eng 32(7):486–502
Koziolek H (2010) Performance evaluation of component-based software systems: a survey. Perform Eval 67(8):634–658
Koziolek H, Doppelhamer J, Weiss R, Bilich C, Schlich B, Skuliber I, Zemljic M, Desic S, Huljenic D (2010) Q-ImPrESS project deliverable D7.3: demonstrator results documentation. Tech. rep., Q-ImPrESS Consortium
Koziolek H, Reussner R (2008) A model-transformation from the palladio component model to layered queueing networks. In: Proc. of the SPEC international workshop on performance engineering (SIPEW’08). LNCS, vol 5119. Springer, pp 58–78
Koziolek H, Schlich B, Bilich C (2010) A large-scale industrial case study on architecture-based software reliability analysis. In: Proc. 21st IEEE international symposium on software reliability engineering (ISSRE’10). IEEE Computer Society, pp 279–288. doi:10.1109/ISSRE.2010.15
Koziolek H, Schlich B, Bilich C, Weiss R, Becker S, Krogmann K, Trifu M, Mirandola R, Martens A (2011) An industrial case study on quality impact prediction for evolving service-oriented software. In: Proc. 33rd ACM/IEEE Int. Conf. on Software Engineering (ICSE’11) software engineering in practice track. ACM
Littlewood B, Verrall JL (1973) A Bayesian reliability growth model for computer software. Appl Stat 22(3):332. doi:10.2307/2346781
Liu Y, Fekete A, Gorton I (2005) Design-level performance prediction of component-based applications. IEEE Trans Softw Eng 31(11):928–941. doi:10.1109/TSE.2005.127
Martens A, Koziolek H, Becker S, Reussner RH (2010) Automatically improve software models for performance, reliability and cost using genetic algorithms. In: Proc. 1st int. conf. on performance engineering (ICPE’10). ACM, pp 105–116. doi:10.1145/1712605.1712624
Martens A, Koziolek H, Prechelt L, Reussner R (2010) From monolithic to component-based performance evaluation of software architectures: a series of experiments analysing accuracy and effort. Empir Softw Eng 1–36. doi:10.1007/s10664-010-9142-8
Masetti M, Becker S, Skuliber I, Hauck M, Kofron J, Krogmann K, Stammel J, Seceleanu C, Tysiak J, Mirandola R, Ardagna D (2009) Q-ImPrESS project deliverable D6.1: method and abstract workflow. Tech. rep., Q-ImPrESS Consortium
McConnell S (1993) Code Complete: a practical handbook of software construction. Microsoft Press, Buffalo, NY
Miller KW, Morell LJ, Noonan RE, Park SK, Nicol DM, Murrill BW, Voas JM (1992) Estimating the probability of failure when testing reveals no failures. IEEE Trans Softw Eng 18(1):33–43. doi:10.1109/32.120314
Mizan A, Franks G (2011) An automatic trace based performance evaluation model building for parallel distributed systems. In: Proc. 2nd Int. Conference on Performance Engineering (ICPE’11), pp 61–72
Musa JD (2004) Software reliability engineering: more reliable software faster and cheaper, 2nd edn. AuthorHouse
Musa JD, Iannino A, Okumoto K (1987) Software reliability: measurement, prediction, application. McGraw-Hill, New York
Nagappan N, Ball T, Zeller A (2006) Mining metrics to predict component failures. In: Proc. 28th Int. Conf. on Softw. Eng. (ICSE’06). ACM, pp 452–461. doi:10.1145/1134285.1134349
Object Management Group (OMG) (2007) UML Profile for MARTE, Beta 1. http://www.omg.org/cgi-bin/doc?ptc/2007-08-04
Pietrantuono R, Russo S, Trivedi KS (2010) Software reliability and testing time allocation: an architecture-based approach. IEEE Trans Softw Eng 36(3):323–337
Q-ImPrESS Consortium: Project website. http://www.q-impress.eu. Accessed 06 June 2012
Rolia JA, Sevcik KC (1995) The method of layers. IEEE Trans Softw Eng 21(8):689–700. doi:10.1109/32.403785
Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14(2):131–164
Sharma VS, Trivedi KS (2007) Quantifying software performance, reliability and security: an architecture-based approach. J Syst Softw 80(4):493–509
Singh H, Cortellessa V, Cukic B, Gunel E, Bharadwaj V (2001) A bayesian approach to reliability prediction and assessment of component based systems. In: Proc. 12th International Symposium on Software Reliability Engineering (ISSRE’01), pp 12–21
Skuliber I, Huljenic D, Desic S (2009) Black-box and gray-box components as elements for performance prediction in telecommunications system. In: 10th international conference on telecommunications, 2009. ConTEL 2009, pp 131–134
Smith C (1990) Performance engineering of software systems. Addision-Wesley
Smith CU (2002) Performance solutions: a practical guide to creating responsive, scalable software. Addison-Wesley
Snipes W, Robinson B, Brooks P (2009) Approximating deployment metrics to predict field defects and plan corrective maintenance activities. In: 20th Int. Symp. on Software Reliability Engineering (ISSRE’09). IEEE, pp 90–98
Stammel J, Reussner R (2009) KAMP: Karlsruhe architectural maintainability prediction. In: Proc. 1st workshop GI-Arbeitskreis Langlebige Softwaresysteme (L2S2’09), pp 87–98. http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-537/
Trivedi K (2001) Probability and statistics with reliability, queuing, and computer science applications, 2nd edn. Wiley, New York
Wang WL, Pan D, Chen MH (2006) Architecture-based software reliability modeling. J Syst Softw 79(1):132–146
Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2000) Experimentation in software engineering: an introduction. Kluwer Academic Publishers, Norwell, MA, USA
Woodside M, Franks G, Petriu DC (2007) The future of software performance engineering. In: Future of software engineering (FOSE ’07). IEEE Computer Society, pp 171–187. doi:10.1109/FOSE.2007.32
Xu J, Oufimtsev A, Woodside M, Murphy L (2006) Performance modeling and prediction of enterprise javabeans with layered queuing network templates. SIGSOFT Softw Eng Notes 31(2):5
Zhu L, Aurum A, Gorton I, Jeffery R (2005) Tradeoff and sensitivity analysis in software architecture evaluation using analytic hierarchy process. Softw Qual J 13(4):357–375
Acknowledgements
This work was funded within the Q-ImPrESS research project (FP7-215013) by the European Union under the Information and Communication Technologies priority of FP7.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Koziolek, H., Schlich, B., Becker, S. et al. Performance and reliability prediction for evolving service-oriented software systems. Empir Software Eng 18, 746–790 (2013). https://doi.org/10.1007/s10664-012-9213-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-012-9213-0