Abstract
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.
Similar content being viewed by others
References
Document Object Model (DOM) (2000) Java API for XML Processing, Package org.w3c.dom. http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/package-summary.html
Jess, the Rule Engine for the Java Platform (2007). http://www.jessrules.com/jess/index.shtml
UML 2.0 Superstructure Specification, OMG document formal/05-07-04, Object Management Group, Inc. (2005). http://www.omg.org/cgi-bin/doc?formal/05-07-04
UML Profile for MARTE, OMG document formal/09-11-02, Object Management Group, Inc. (2009). http://www.omg.org/spec/MARTE/1.0/PDF/
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)
Banks J., Nelson B.L., Nicol D.M.: Discrete-Event System Simulation. Prentice Hall, Englewood Cliffs (1999)
Bernardi, S., Donatelli, S., Merseguer, J.: From uml sequence diagrams and statecharts to analysable petrinet models. In: WOSP, pp. 35–45 (2002)
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)
Brown W.J., Malveau R.C., McCormick H.W. III, Mowbray T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley, London (1998)
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)
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)
Cortellessa V., Di Marco A., Inverardi P.: Model-Based Software Performance Analysis. Springer, Berlin (2011)
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)
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)
Cortellessa V., Mirandola R.: Prima-uml: a performance validation incremental methodology on early uml diagrams. Sci. Comput. Program. 44(1), 101–129 (2002)
Dudney B., Asbury S., Krozak J.K., Wittkopf K.: J2EE Antipatterns. Wiley, London (2003)
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)
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)
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)
Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)
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)
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)
Hopcroft J.E., Motwani R., Ullman J.D.: Introduction to Automata Theory, Languages, and Computation, 3rd edn. Prentice Hall, Englewood Cliffs (2006)
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)
Kant K.: Introduction to Computer System Performance Evaluation. McGraw-Hill, New York (1992)
Kleinrock L.: Queueing Systems Vol. 1: Theory. Wiley, London (1975)
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)
Lazowska E.D., Zahorjan J., Scott Graham G., Sevcik K.C.: Computer System Analysis Using Queueing Network Models. Prentice-Hall, Englewood Cliffs (1984)
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)
Milner R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)
Parsons T., Murphy J.: Detecting performance antipatterns in component based enterprise systems. J. Object Technol. 7(3), 55–90 (2008)
Sabetta, A., Petriu, D.C., Grassi, V., Mirandola, R.: Abstraction-raising transformation for generating analysis models. In: MoDELS Satellite Events, pp. 217–226 (2005)
Smith, C.U., Williams, L.G.: Software performance antipatterns. In: 2nd International Workshop on Software and Performance, pp. 127–136 (2000)
Smith, C.U., Williams, L.G.: Software performance antipatterns; common performance problems and their solutions. In: Int. CMG Conference, pp. 797–806 (2001)
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)
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)
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)
Sommerville I.: Software Engineering, 8th edn. Addison Wesley, Reading (2006)
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)
Taibi T., Ngo D.C.L.: Formal specification of design patterns—a balanced approach. J. Object Technol. 2(4), 127–140 (2003)
Tate B., Clark M., Lee B., Linskey P.: Bitter EJB. Manning, Shelter Island (2003)
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)
Trivedi K.S.: Probability and Statistics with Reliability, Queueing and Computer Science Applications. Wiley, London (2001)
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)
Woodside C.M.: A three-view model for performance engineering of concurrent software. IEEE Trans. Softw. Eng. 21(9), 754–767 (1995)
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)
Extensible Markup Language (XML), World Wide Web Consortium (W3C). http://www.w3.org/XML
Xu, J.: Rule-based automatic software performance diagnosis and improvement. In: WOSP, pp. 1–12 (2008)
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)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Sebastien Gerard.
Rights and permissions
About this article
Cite this article
Cortellessa, V., Di Marco, A. & Trubiani, C. An approach for modeling and detecting software performance antipatterns based on first-order logics. Softw Syst Model 13, 391–432 (2014). https://doi.org/10.1007/s10270-012-0246-z
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-012-0246-z