Skip to main content

Advertisement

SpringerLink
Book cover

International Conference on Fundamental Approaches to Software Engineering

FASE 2020: Fundamental Approaches to Software Engineering pp 357–377Cite as

Analysis and Refactoring of Software Systems Using Performance Antipattern Profiles

Analysis and Refactoring of Software Systems Using Performance Antipattern Profiles

  • Radu Calinescu  ORCID: orcid.org/0000-0002-2678-926010,
  • Vittorio Cortellessa  ORCID: orcid.org/0000-0002-4507-464X11,
  • Ioannis Stefanakos  ORCID: orcid.org/0000-0003-3741-252X10 &
  • …
  • Catia Trubiani  ORCID: orcid.org/0000-0002-7675-694212 
  • Conference paper
  • Open Access
  • First Online: 17 April 2020
  • 7362 Accesses

  • 3 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 12076)

Abstract

Refactoring is often needed to ensure that software systems meet their performance requirements in deployments with different operational profiles, or when these operational profiles are not fully known or change over time. This is a complex activity in which software engineers have to choose from numerous combinations of refactoring actions. Our paper introduces a novel approach that uses performance antipatterns and stochastic modelling to support this activity. The new approach computes the performance antipatterns present across the operational profile space of a software system under development, enabling engineers to identify operational profiles likely to be problematic for the analysed design, and supporting the selection of refactoring actions when performance requirements are violated for an operational profile region of interest. We demonstrate the application of our approach for a software system comprising a combination of internal (i.e., in-house) components and external third-party services.

This work has been partially supported by the PRIN project “SEDUCE” n. 2017TWRCNB and by Microsoft Research through its PhD Scholarship Programme.

Download conference paper PDF

References

  1. Aldeida Aleti, Barbora Buhnova, Lars Grunske, Anne Koziolek, and Indika Meedeniya. Software architecture optimization methods: A systematic literature review. IEEE Transactions on Software Engineering, 39(5):658–683, 2012

    Google Scholar 

  2. Aldeida Aleti, Catia Trubiani, André van Hoorn, and Pooyan Jamshidi. An efficient method for uncertainty propagation in robust software performance estimation. Journal of Systems and Software, 138:222–235, 2018.

    Google Scholar 

  3. Vahid Alizadeh and Marouane Kessentini. Reducing interactive refactoring effort via clustering-based multi-objective search. In ASE’18, pages 464–474, 2018.

    Google Scholar 

  4. Davide Arcelli, Vittorio Cortellessa, and Catia Trubiani. Antipattern-based model refactoring for software performance improvement. In QoSA’12, pages 33–42, 2012.

    Google Scholar 

  5. Gabriele Bavota, Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, and Fabio Palomba. An experimental investigation on the innate relationship between quality and refactoring. Journal of Systems and Software, 107:1–14, 2015.

    Google Scholar 

  6. Simona Bernardi, José Merseguer, and Dorina C. Petriu. Dependability modeling and analysis of software systems specified with UML. ACM Comput. Surv., 45(1):2:1–2:48, 2012.

    Google Scholar 

  7. Gunter Bolch, Stefan Greiner, Hermann De Meer, and Kishor S Trivedi. Queueing networks and Markov chains: modeling and performance evaluation with computer science applications. John Wiley & Sons, 2006.

    Google Scholar 

  8. William H Brown, Raphael C Malveau, Hays W McCormick, and Thomas J Mowbray. AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, 1998.

    Google Scholar 

  9. Axel Busch, Dominik Fuchss, and Anne Koziolek. Peropteryx: Automated improvement of software architectures. In ICSA-C’19, pages 162–165, 2019.

    Google Scholar 

  10. Radu Calinescu, Carlo Ghezzi, Marta Z. Kwiatkowska, and Raffaela Mirandola. Self-adaptive software needs quantitative verification at runtime. Commun. ACM, 55(9):69–77, 2012.

    Google Scholar 

  11. Radu Calinescu, Milan Ceska Jr., Simos Gerasimou, Marta Kwiatkowska, and Nicola Paoletti. Efficient synthesis of robust models for stochastic systems. Journal of Systems and Software, 143:140–158, 2018.

    Google Scholar 

  12. Radu Calinescu and Shinji Kikuchi. Formal methods @ runtime. In Monterey Workshop, pages 122–135. Springer, 2010.

    Google Scholar 

  13. Radu Calinescu and Marta Kwiatkowska. CADS*: Computer-aided development of self-* systems. In FASE’09, pages 421–424. Springer, 2009.

    Google Scholar 

  14. Radu Calinescu, Danny Weyns, Simos Gerasimou, Muhammad Usman Iftikhar, Ibrahim Habli, and Tim Kelly. Engineering trustworthy self-adaptive software with dynamic assurance cases. IEEE Transactions on Software Engineering, 44(11), 1039–1069, 2018.

    Google Scholar 

  15. Xi Chen, Zibin Zheng, Qi Yu, and Michael R. Lyu. Web service recommendation via exploiting location and qos information. IEEE Trans. Parallel Distrib. Syst., 25(7):1913–1924, 2014.

    Google Scholar 

  16. Vittorio Cortellessa, Antinisca Di Marco, and Paola Inverardi. Model-Based Software Performance Analysis. Springer, 2011.

    Google Scholar 

  17. Vittorio Cortellessa, Antinisca Di Marco, and Catia Trubiani. An approach for modeling and detecting software performance antipatterns based on first-order logics. Software and Systems Modeling, 13(1):391–432, 2014.

    Google Scholar 

  18. Christian Dehnert, Sebastian Junges, Joost-Pieter Katoen, and Matthias Volk. A storm is coming: A modern probabilistic model checker. In Computer Aided Verification, pages 592–600. Springer International Publishing, 2017.

    Google Scholar 

  19. Michalis Famelis and Marsha Chechik. Managing design-time uncertainty. Software and Systems Modeling, 18(2):1249–1284, 2019.

    Google Scholar 

  20. Simos Gerasimou, Radu Calinescu, and Giordano Tamburrelli. Synthesis of probabilistic models for quality-of-service software engineering. Autom. Softw. Eng., 25(4):785–831, 2018.

    Google Scholar 

  21. Shadi Ghaith, Miao Wang, Philip Perry, Zhen Ming Jiang, Patrick O’Sullivan, and John Murphy. Anomaly detection in performance regression testing by transaction profile estimation. Softw. Test., Verif. Reliab., 26(1):4–39, 2016.

    Google Scholar 

  22. Sunil Kamavaram and Katerina Goseva-Popstojanova. Sensitivity of software usage to changes in the operational profile. In Annual Workshop of NASA Goddard Software Engineering, pages 157–164, 2003.

    Google Scholar 

  23. Arijit Khan, Xifeng Yan, Shu Tao, and Nikos Anerousis. Workload characterization and prediction in the cloud: A multiple time series approach. In NOMS’12, pages 1287–1294, 2012.

    Google Scholar 

  24. M. Kwiatkowska, G. Norman, and D. Parker. PRISM 4.0: Verification of probabilistic real-time systems. In CAV’11, volume 6806 of LNCS, pages 585–591, 2011.

    Google Scholar 

  25. Adrian Nistor, Po-Chun Chang, Cosmin Radoi, and Shan Lu. Caramel: Detecting and fixing performance problems that have non-intrusive fixes. In ICSE’15, pages 902–912, 2015.

    Google Scholar 

  26. Ali Ouni, Marouane Kessentini, Mel Ó Cinnéide, Houari A. Sahraoui, Kalyanmoy Deb, and Katsuro Inoue. MORE: A multi-objective refactoring recommendation approach to introducing design patterns and fixing code smells. Journal of Software: Evolution and Process, 29(5), 2017.

    Google Scholar 

  27. Süleyman Özekici and Refik Soyer. Reliability of software with an operational profile. European Journal of Operational Research, 149(2):459–474, 2003.

    Google Scholar 

  28. Sebastian Ruland, Géza Kulcsár, Erhan Leblebici, Sven Peldszus, and Malte Lochau. Controlling the attack surface of object-oriented refactorings. In FASE’18, pages 38–55, 2018.

    Google Scholar 

  29. Martina De Sanctis, Catia Trubiani, Vittorio Cortellessa, Antinisca Di Marco, and Mirko Flamminj. A model-driven approach to catch performance antipatterns in ADL specifications. Information & Software Technology, 83:35–54, 2017.

    Google Scholar 

  30. Carol Smidts, Chetan Mutha, Manuel Rodríguez, and Matthew J Gerber. Software testing with an operational profile: Op definition. ACM Computing Surveys (CSUR), 46(3):39, 2014.

    Google Scholar 

  31. Connie U. Smith and Lloyd G. Williams. Software performance antipatterns for identifying and correcting performance problems. In CMG’12, 2012.

    Google Scholar 

  32. Mirco Tribastone, Stephen Gilmore, and Jane Hillston. Scalable differential analysis of process algebra models. IEEE Trans. Software Eng., 38(1):205–219, 2012.

    Google Scholar 

  33. Kishor S. Trivedi and Andrea Bobbio. Reliability and Availability Engineering - Modeling, Analysis,and Applications. Cambridge University Press, 2017.

    Google Scholar 

  34. Alexander Wert, Jens Happe, and Lucia Happe. Supporting swift reaction: automatically uncovering performance problems by systematic experiments. In ICSE’13, pages 552–561, 2013.

    Google Scholar 

  35. Xiao Yu, Shi Han, Dongmei Zhang, and Tao Xie. Comprehending performance from real-world execution traces: Adevice-driver case. In ACM SIGPLAN Notices, volume 49, pages 193–206, 2014.

    Google Scholar 

Download references

Author information

Authors and Affiliations

  1. University of York, York, United Kingdom

    Radu Calinescu & Ioannis Stefanakos

  2. University of L’Aquila, L’Aquila, Italy

    Vittorio Cortellessa

  3. Gran Sasso Science Institute, L’Aquila, Italy

    Catia Trubiani

Authors
  1. Radu Calinescu
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Vittorio Cortellessa
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Ioannis Stefanakos
    View author publications

    You can also search for this author in PubMed Google Scholar

  4. Catia Trubiani
    View author publications

    You can also search for this author in PubMed Google Scholar

Corresponding author

Correspondence to Ioannis Stefanakos .

Editor information

Editors and Affiliations

  1. University of Paderborn, Paderborn, Germany

    Prof. Heike Wehrheim

  2. ICREA, Open University of Catalonia, Barcelona, Spain

    Prof. Jordi Cabot

Rights and permissions

Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.

The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.

Reprints and Permissions

Copyright information

© 2020 The Author(s)

About this paper

Verify currency and authenticity via CrossMark

Cite this paper

Calinescu, R., Cortellessa, V., Stefanakos, I., Trubiani, C. (2020). Analysis and Refactoring of Software Systems Using Performance Antipattern Profiles. In: Wehrheim, H., Cabot, J. (eds) Fundamental Approaches to Software Engineering. FASE 2020. Lecture Notes in Computer Science(), vol 12076. Springer, Cham. https://doi.org/10.1007/978-3-030-45234-6_18

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-030-45234-6_18

  • Published: 17 April 2020

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-45233-9

  • Online ISBN: 978-3-030-45234-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • The European Joint Conferences on Theory and Practice of Software.

    Published in cooperation with

    http://www.etaps.org/

Over 10 million scientific documents at your fingertips

Switch Edition
  • Academic Edition
  • Corporate Edition
  • Home
  • Impressum
  • Legal information
  • Privacy statement
  • California Privacy Statement
  • How we use cookies
  • Manage cookies/Do not sell my data
  • Accessibility
  • FAQ
  • Contact us
  • Affiliate program

Not affiliated

Springer Nature

© 2023 Springer Nature Switzerland AG. Part of Springer Nature.