Software & Systems Modeling

, Volume 13, Issue 1, pp 391–432 | Cite as

An approach for modeling and detecting software performance antipatterns based on first-order logics

  • Vittorio Cortellessa
  • Antinisca Di Marco
  • Catia Trubiani
Regular Paper


The problem of interpreting the results of performance analysis is quite critical in the software performance domain. Mean values, variances and probability distributions are hard to interpret for providing feedback to software architects. Instead, what architects expect are solutions to performance problems, possibly in the form of architectural alternatives (e.g. split a software component in two components and re-deploy one of them). In a software performance engineering process, the path from analysis results to software design or implementation alternatives is still based on the skills and experience of analysts. In this paper, we propose an approach for the generation of feedback based on performance antipatterns. In particular, we focus on the representation and detection of antipatterns. To this goal, we model performance antipatterns as logical predicates and we build an engine, based on such predicates, aimed at detecting performance antipatterns in an XML representation of the software system. Finally, we show the approach at work on a case study.


Software performance antipatterns Performance analysis Software architectures 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Document Object Model (DOM) (2000) Java API for XML Processing, Package org.w3c.dom.
  2. 2.
    Jess, the Rule Engine for the Java Platform (2007).
  3. 3.
    UML 2.0 Superstructure Specification, OMG document formal/05-07-04, Object Management Group, Inc. (2005).
  4. 4.
    UML Profile for MARTE, OMG document formal/09-11-02, Object Management Group, Inc. (2009).
  5. 5.
    Balsamo S., Di Marco A., Inverardi P., Simeoni M.: Model-based performance prediction in software development: a survey. IEEE Trans. Softw. Eng. 30(5), 295–310 (2004)CrossRefGoogle Scholar
  6. 6.
    Banks J., Nelson B.L., Nicol D.M.: Discrete-Event System Simulation. Prentice Hall, Englewood Cliffs (1999)Google Scholar
  7. 7.
    Bernardi, S., Donatelli, S., Merseguer, J.: From uml sequence diagrams and statecharts to analysable petrinet models. In: WOSP, pp. 35–45 (2002)Google Scholar
  8. 8.
    Boroday, S., Petrenko, A., Singh, J., Hallal, H.: Dynamic analysis of java applications for multithreaded antipatterns. In: Workshop on Dynamic Analysis (WODA), pp. 1–7 (2005)Google Scholar
  9. 9.
    Brown W.J., Malveau R.C., McCormick H.W. III, Mowbray T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley, London (1998)Google Scholar
  10. 10.
    Casale, G., Serazzi, G.: Quantitative system evaluation with java modeling tools. In: ICPE’11—Second Joint WOSP/SIPEW International Conference on Performance Engineering, pp. 449–454 (2011)Google Scholar
  11. 11.
    Cortellessa, V., Di Marco, A., Eramo, R., Pierantonio, A., Trubiani, C.: Digging into UML models to remove performance antipatterns. In: ICSE Workshop Quovadis, pp. 9–16 (2010)Google Scholar
  12. 12.
    Cortellessa V., Di Marco A., Inverardi P.: Model-Based Software Performance Analysis. Springer, Berlin (2011)CrossRefGoogle Scholar
  13. 13.
    Cortellessa, V., Di Marco, A., Trubiani, C.: Performance Antipatterns as Logical Predicates. In: IEEE International Conference on Engineering of Complex Computer Systems, ICECCS, Oxford, UK, pp. 146–156 (2010)Google Scholar
  14. 14.
    Cortellessa V., Martens A., Reussner R., Trubiani C.: A process to effectively identify “Guilty” performance antipatterns. In: Rosenblum, D.S., Taentzer, G. (eds) FASE, ser. Lecture Notes in Computer Science, vol. 6013, pp. 368–382. Springer, Berlin (2010)Google Scholar
  15. 15.
    Cortellessa V., Mirandola R.: Prima-uml: a performance validation incremental methodology on early uml diagrams. Sci. Comput. Program. 44(1), 101–129 (2002)CrossRefzbMATHGoogle Scholar
  16. 16.
    Dudney B., Asbury S., Krozak J.K., Wittkopf K.: J2EE Antipatterns. Wiley, London (2003)Google Scholar
  17. 17.
    Elaasar, M., Briand, L.C., Labiche, Y.: A metamodeling approach to pattern specification. In: Lecture Notes in Computer Science: Model Driven Engineering Languages and Systems, Vol. 4199/2006, pp. 484–498. Springer, Berlin (2006)Google Scholar
  18. 18.
    Florescu O., Voeten J., Theelen B., Corporaal H.: Patterns for automatic generation of soft real-time system models. Simulation 85(11–12), 709–734 (2009)CrossRefGoogle Scholar
  19. 19.
    France R.B., Kim D.-K., Ghosh S., Song E.: A uml-based pattern specification technique. IEEE Trans. Softw. Eng. 30(3), 193–206 (2004)CrossRefGoogle Scholar
  20. 20.
    Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)Google Scholar
  21. 21.
    Grunske L.: Specification patterns for probabilistic quality properties. In: Schäfer, W., Dwyer, M.B., Gruhn, V. (eds) ICSE, pp. 31–40. ACM, New York (2008)CrossRefGoogle Scholar
  22. 22.
    Harman, M.: The current state and future of search based software engineering. In: Workshop on the Future of Software Engineering (FOSE), pp. 342–357 (2007)Google Scholar
  23. 23.
    Hopcroft J.E., Motwani R., Ullman J.D.: Introduction to Automata Theory, Languages, and Computation, 3rd edn. Prentice Hall, Englewood Cliffs (2006)Google Scholar
  24. 24.
    Jain R.: The art of computer systems performance analysis: Techniques for experimental design, measurement, simulation, and modeling. SIGMETRICS Perform. Eval. Rev. 19(2), 5–11 (1991)CrossRefGoogle Scholar
  25. 25.
    Kant K.: Introduction to Computer System Performance Evaluation. McGraw-Hill, New York (1992)Google Scholar
  26. 26.
    Kleinrock L.: Queueing Systems Vol. 1: Theory. Wiley, London (1975)Google Scholar
  27. 27.
    Kniesel G., Hannemann J., Rho T.: A comparison of logic-based infrastructures for concern detection and extraction. In: Workshop on Linking Aspect Technology and Evolution (2007)Google Scholar
  28. 28.
    Lazowska E.D., Zahorjan J., Scott Graham G., Sevcik K.C.: Computer System Analysis Using Queueing Network Models. Prentice-Hall, Englewood Cliffs (1984)Google Scholar
  29. 29.
    Martens, A., Koziolek, H., Becker, S., Reussner, R.: Automatically improve software architecture models for performance, reliability, and cost using evolutionary algorithms. In: WOSP/SIPEW International Conference on Performance Engineering, pp. 105–116 (2010)Google Scholar
  30. 30.
    Milner R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)zbMATHGoogle Scholar
  31. 31.
    Parsons T., Murphy J.: Detecting performance antipatterns in component based enterprise systems. J. Object Technol. 7(3), 55–90 (2008)CrossRefGoogle Scholar
  32. 32.
    Sabetta, A., Petriu, D.C., Grassi, V., Mirandola, R.: Abstraction-raising transformation for generating analysis models. In: MoDELS Satellite Events, pp. 217–226 (2005)Google Scholar
  33. 33.
    Smith, C.U., Williams, L.G.: Software performance antipatterns. In: 2nd International Workshop on Software and Performance, pp. 127–136 (2000)Google Scholar
  34. 34.
    Smith, C.U., Williams, L.G.: Software performance antipatterns; common performance problems and their solutions. In: Int. CMG Conference, pp. 797–806 (2001)Google Scholar
  35. 35.
    Smith, C.U., Williams, L.G.: New software performance antipatterns: More ways to shoot yourself in the foot. In: Computer Measurement Group Conference, pp. 667–674 (2002)Google Scholar
  36. 36.
    Smith C.U., Williams L.G.: Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Addison Wesley Longman Publishing Co. Inc., Redwood City (2002)Google Scholar
  37. 37.
    Smith, C.U., Williams, L.G.: More new software performance antipatterns: even more ways to shoot yourself in the foot. In: Computer Measurement Group Conference, pp. 717–725 (2003)Google Scholar
  38. 38.
    Sommerville I.: Software Engineering, 8th edn. Addison Wesley, Reading (2006)Google Scholar
  39. 39.
    Sup So S., Deok Cha S., Rae Kwon Y.: Empirical evaluation of a fuzzy logic-based software quality prediction model. Fuzzy Sets Syst. 127(2), 199–208 (2002)CrossRefzbMATHGoogle Scholar
  40. 40.
    Taibi T., Ngo D.C.L.: Formal specification of design patterns—a balanced approach. J. Object Technol. 2(4), 127–140 (2003)CrossRefGoogle Scholar
  41. 41.
    Tate B., Clark M., Lee B., Linskey P.: Bitter EJB. Manning, Shelter Island (2003)Google Scholar
  42. 42.
    Trcka, N., van der Aalst, W.M., Sidorova, N.: Data-flow anti-patterns: discovering dataflow errors in workflows. In: Conference on Advanced Information Systems (CAiSE), vol. 5565, pp. 425–439. LNCS Springer (2009)Google Scholar
  43. 43.
    Trivedi K.S.: Probability and Statistics with Reliability, Queueing and Computer Science Applications. Wiley, London (2001)Google Scholar
  44. 44.
    Trubiani, C., Koziolek, A.: Detection and solution of software performance antipatterns in palladio architectural models. In: Proceedings of the 2nd ACM/SPEC International Conference on Performance Engineering (ICPE), pp. 19–30. ACM, New York, USA (2011)Google Scholar
  45. 45.
    Woodside C.M.: A three-view model for performance engineering of concurrent software. IEEE Trans. Softw. Eng. 21(9), 754–767 (1995)CrossRefGoogle Scholar
  46. 46.
    Woodside, C.M., Petriu, D.C., Petriu, D.B., Shen, H., Israr, T., Merseguer, J.: Performance by unified model analysis (PUMA). In: WOSP, pp. 1–12 (2005)Google Scholar
  47. 47.
    Extensible Markup Language (XML), World Wide Web Consortium (W3C).
  48. 48.
    Xu, J.: Rule-based automatic software performance diagnosis and improvement. In: WOSP, pp. 1–12 (2008)Google Scholar
  49. 49.
    Zheng, T., Woodside, C.M.: Heuristic optimization of scheduling and allocation for distributed systems with soft deadlines. In: Computer Performance Evaluations, Modelling Techniques and Tools, pp. 169–181 (2003)Google Scholar

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  • Vittorio Cortellessa
    • 1
  • Antinisca Di Marco
    • 1
  • Catia Trubiani
    • 1
  1. 1.Dipartimento di InformaticaUniversità dell’AquilaL’AquilaItaly

Personalised recommendations