[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to main content

A Rating Tool for the Automated Selection of Software Refactorings that Remove Antipatterns to Improve Performance and Stability

  • Conference paper
  • First Online:
Software Technologies (ICSOFT 2018)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1077))

Included in the following conference series:

  • 384 Accesses

Abstract

Antipatterns are known to be bad solutions for recurring design problems. To detect and remove antipatterns has proven to be a useful mean to improve the quality of software. While there exist several approaches to detect antipatterns automatically, existing work on antipattern detection often does not solve the detected design problems automatically. Although there exist refactorings that have the potential to significantly increase the quality of a program, it is hard to decide which refactorings effectively yield improvements with respect to performance and stability. In this paper, we present a rating tool that makes use of static antipattern detection together with software profiling for the automated selection of refactorings that remove antipatterns and are promising candidates to improve performance and stability. Our key idea is to extend a previously proposed heuristics that utilizes software properties determined by both static code analyses and dynamic software analyses to compile a list of concrete refactorings sorted by their assessed potential to improve performance with an approach to identify refactorings that may improve stability. We do not impose an order on the refactorings that may improve stability. We demonstrate the practical applicability of our overall approach with experimental results.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
£29.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
GBP 19.95
Price includes VAT (United Kingdom)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
GBP 35.99
Price includes VAT (United Kingdom)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
GBP 44.99
Price includes VAT (United Kingdom)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Arcelli, D., Berardinelli, L., Trubiani, C.: Performance antipattern detection through fUML model library. In: Proceedings of the 2015 Workshop on Challenges in Performance Methods for Software Development, pp. 23–28. ACM (2015)

    Google Scholar 

  2. Arcelli, D., Cortellessa, V., Trubiani, C.: Antipattern-based model refactoring for software performance improvement. In: Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures, pp. 33–42. ACM (2012)

    Google Scholar 

  3. Becker, S., Koziolek, H., Reussner, R.: The Palladio component model for model-driven performance prediction. J. Syst. Softw. 82(1), 3–22 (2009)

    Article  Google Scholar 

  4. Bernardi, M.L., Cimitile, M., Di Lucca, G.A.: A model-driven graph-matching approach for design pattern detection. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 172–181. IEEE (2013)

    Google Scholar 

  5. Burn, O.: Checkstyle (2017). http://checkstyle.sourceforge.net/index.html

  6. Copeland, T., Le Vourch, X.: PMD (2017). https://pmd.github.io/

  7. Cortellessa, V., Martens, A., Reussner, R., Trubiani, C.: A process to effectively identify “Guilty” performance antipatterns. In: Rosenblum, D.S., Taentzer, G. (eds.) FASE 2010. LNCS, vol. 6013, pp. 368–382. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-12029-9_26

    Chapter  Google Scholar 

  8. Djoudi, L., Barthou, D., Carribault, P., Lemuet, C., Acquaviva, J.T., Jalby, W.: Exploring application performance: a new tool for a static/dynamic approach. In: Proceedings of the 6th LACSI Symposium. Los Alamos Computer Science Institute (2005)

    Google Scholar 

  9. Dynatrace: Dynatrace AppMon (2017). https://www.dynatrace.com/

  10. Fayad, M.E., Altman, A.: Thinking objectively: an introduction to software stability. Commun. ACM 44(9), 95 (2001)

    Article  Google Scholar 

  11. Fontana, F.A., Zanoni, M.: Code smell severity classification using machine learning techniques. Knowl.-Based Syst. 128, 43–58 (2017)

    Article  Google Scholar 

  12. Foundation, A.S.: Apache Tomcat (2017). http://tomcat.apache.org/

  13. Fowler, M., Beck, K.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Massachusetts (1999)

    Google Scholar 

  14. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co. Inc, Boston (1995)

    MATH  Google Scholar 

  15. Goetz, B.: Anatomy of a flawed microbenchmark (2005). https://www.ibm.com/developerworks/java/library/j-jtp02225/

  16. Grabner, A.: Performance analysis: how to identify synchronization issues under load? (2009). https://www.dynatrace.com/blog/performance-analysis-how-to-identify-synchronization-issues-under-load/

  17. Herber, P., Fellmuth, J., Glesner, S.: Model checking SystemC designs using timed automata. In: International Conference on Hardware/Software Codesign and Integrated System Synthesis (CODES+ISSS), pp. 131–136. ACM press (2008)

    Google Scholar 

  18. Herber, P., Glesner, S.: A HW/SW co-verification framework for SystemC. ACM Trans. Embed. Comput. Syst. 12, 61 (2013)

    Article  Google Scholar 

  19. Herber, P., Pockrandt, M., Glesner, S.: STATE-A SystemC to timed automata transformation engine. In: 2015 IEEE 7th International Symposium on Cyberspace Safety and Security (CSS), 2015 IEEE 12th International Conference on Embedded Software and Systems (ICESS), 2015 IEEE 17th International Conference on High Performance Computing and Communications (HPCC), pp. 1074–1077. IEEE (2015)

    Google Scholar 

  20. Heuzeroth, D., Holl, T., Hogstrom, G., Lowe, W.: Automatic design pattern detection. In: 2003 11th IEEE International Workshop on Program Comprehension, pp. 94–103. IEEE (2003)

    Google Scholar 

  21. Long, J.: Software reuse antipatterns. ACM SIGSOFT Softw. Eng. Notes 26(4), 68–76 (2001)

    Article  Google Scholar 

  22. Louridas, P.: Static code analysis. IEEE Softw. 23(4), 58–61 (2006)

    Article  Google Scholar 

  23. Luo, Q., Nair, A., Grechanik, M., Poshyvanyk, D.: Forepost: finding performance problems automatically with feedback-directed learning software testing. Empir. Softw. Eng. 22(1), 6–56 (2017)

    Article  Google Scholar 

  24. Lyu, M.R.: Software reliability engineering: a roadmap. In: 2007 Future of Software Engineering, pp. 153–170. IEEE Computer Society (2007)

    Google Scholar 

  25. Moesus, N., Scholze, M., Schlesinger, S., Herber, P.: Automated selection of software refactorings that improve performance. In: Proceedings of the 13th International Conference on Software Technologies, ICSOFT 2018, Porto, Portugal, 26–28 July 2018, pp. 67–78 (2018)

    Google Scholar 

  26. Owen, K.: Improve the smell of your code with microrefactorings (2016). https://www.sitepoint.com/improve-the-smell-of-your-code-with-microrefactorings/

  27. PMD: PMD Rulesets index (2017). https://pmd.github.io/pmd-5.8.1/pmd-java/rules/index.html

  28. Pugh, B., Hovemeyer, D.: FindBugs (2015). http://findbugs.sourceforge.net/

  29. Rasool, G., Streitfdert, D.: A survey on design pattern recovery techniques. IJCSI Int. J. Comput. Sci. Issues 8(2), 251–260 (2011)

    Google Scholar 

  30. Reitbauer, A., Grabner, A., Kopp, M.: Java Enterprise Performance: [Performance und Skalierbarkeit von Java-Enterprise-Anwendungen verstehen und managen]. Press, Entwickler (2011)

    Google Scholar 

  31. Rutter, T.: Stable vs stable: what ‘stable’ means in software (2010). https://bitdepth.thomasrutter.com/2010/04/02/stable-vs-stable-what-stable-means-in-software/

  32. Smith, C.U., Williams, L.G.: New software performance antipatterns: more ways to shoot yourself in the foot. In: International CMG Conference, pp. 667–674 (2002)

    Google Scholar 

  33. Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T.: Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32(11), 896–909 (2006)

    Article  Google Scholar 

  34. Washizaki, H., Fukaya, K., Kubo, A., Fukazawa, Y.: Detecting design patterns using source code of before applying design patterns. In: 2009 Eighth IEEE/ACIS International Conference on Computer and Information Science, ICIS 2009, pp. 933–938. IEEE (2009)

    Google Scholar 

  35. Wendehals, L.: Improving design pattern instance recognition by dynamic analysis. In: Proceedings of the ICSE 2003 Workshop on Dynamic Analysis (WODA), Portland, USA, pp. 29–32 (2003)

    Google Scholar 

  36. Wierda, A., Dortmans, E., Somers, L.J.: Detecting patterns in object-oriented source code - a case study. In: ICSOFT (SE). pp. 13–24. INSTICC Press (2007)

    Google Scholar 

  37. Woodside, M., Franks, G., Petriu, D.C.: The future of software performance engineering. In: 2007 Future of Software Engineering, FOSE 2007, pp. 171–187. IEEE (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Paula Herber .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Moesus, N., Scholze, M., Schlesinger, S., Herber, P. (2019). A Rating Tool for the Automated Selection of Software Refactorings that Remove Antipatterns to Improve Performance and Stability. In: van Sinderen, M., Maciaszek, L. (eds) Software Technologies. ICSOFT 2018. Communications in Computer and Information Science, vol 1077. Springer, Cham. https://doi.org/10.1007/978-3-030-29157-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-29157-0_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-29156-3

  • Online ISBN: 978-3-030-29157-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics