Skip to main content

Metrics in Software Development and Evolution with Design Patterns

  • Conference paper
  • First Online:

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 763))

Abstract

Software metrics are employed in software development and maintenance to assess different quality attributes, support processes of software design, testing, and reengineering. We overview software metrics used with regard to design patterns, especially these dealing with object-oriented program features. Metrics of this kind have also supported certain approaches to refactoring to design patterns. However, code refactoring to design patterns requires selection of suitable code parts and taking decisions about pattern application. In order to make this process partially or fully automated, specialized relevance metrics have been proposed. They were designed as a structure-based assessment of an adequacy of code to be transformed into a given design pattern. Relevance metrics for refactoring to selected design patterns (Replace Type Code with Class, Replace State-Altering Conditions with State) are presented in the paper. The metrics were tested in a prototype tool for automated refactoring of Java programs to design patterns, giving satisfactory results.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • 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

Learn about institutional subscriptions

References

  1. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)

    MATH  Google Scholar 

  2. Kan, S.H.: Metrics and Models in Software Quality Engineering. Addison-Wesley, Boston (1998)

    MATH  Google Scholar 

  3. e Abreu, B.F.: The MOOD metrics set. In: Proceedings of the Ninth European Conference Object-Oriented Programming (ECOOP 1995) Workshop Metrics, August 1995

    Google Scholar 

  4. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Software Eng. 20(6), 476–493 (1994). https://doi.org/10.1109/32.295895

    Article  Google Scholar 

  5. Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Trans. Softw. Eng. 28(1), 4–17 (2002). https://doi.org/10.1109/32.979986

    Article  Google Scholar 

  6. Mayvan, B.B., Rasoolzadegan, A., Yazdi, Z.G.: The state of the art on design patterns: a systematic mapping of the literature. J. Syst. Softw. 125, 93–118 (2017). https://doi.org/10.1016/j.jss.2016.11.030

    Article  Google Scholar 

  7. Kierevsky, J.: Refactoring to Patterns. Addison Wesley, Boston (2004)

    Book  Google Scholar 

  8. Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison Wesley, Boston (1999)

    Google Scholar 

  9. Sommerville, I.: Software Engineering, 10th edn. Pearson Education, New York (2015)

    MATH  Google Scholar 

  10. Tsantalis, N., Chatzigeorgiou, A.: Identification of move method refactoring opportunities. IEEE Trans. Softw. Eng. 35(3), 347–367 (2009). https://doi.org/10.1109/TSE.2009.1

    Article  Google Scholar 

  11. Silva, D., Terra, R., Valente, M.T.: Recommending automated extract method refactorings. In: 22nd International Conference on Program Comprehension (ICPC), pp. 146–156. ACM, New York (2014). https://doi.org/10.1145/2597008.2597141

  12. Bavota, G., Lucia, A.D., Marcus, A., Oliveto, R.: Recommending refactoring operations in large software systems. In: Robillard, M.P., Maalej, W., Walker, R.J., Zimmermann, T. (eds.) Recommendation Systems in Software Engineering (RSSE), chap. 15, pp 387–419. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-45135-5

    Google Scholar 

  13. Vakilian, M., Chen, N., Negara, S., Rajkumar, B.A., Bailey, B.P., Johnson, R.E.: Use, disuse, and misuse of automated refactorings. In: 34th International Conference on Software Engineering (ICSE), pp. 233–243 (2012). https://doi.org/10.1109/icse.2012.6227190

  14. Derezinska, A.: A structure-driven process of automated refactoring to design patterns. In: Świątek, J., Borzemski, L., Wilamowska, Z. (eds.) Information Systems Architecture and Technology: Proceedings of 38th International Conference on Information Systems Architecture and Technology – ISAT 2017: PART II, AISC, vol. 656, pp. 39–48. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-67229-8_4

    Google Scholar 

  15. Bluemke, I., Stępień, A.: Selection of metrics for the defect prediction. In: Zamojski, W., et al. (ed.) Dependability Engineering and Complex Systems, DepCoS-RELCOMEX 2016, AISC, vol. 470, pp. 39–50. Springer (2016). https://doi.org/10.1007/978-3-319-39639-2_4

    Google Scholar 

  16. Ali, M., Elish, M.O.: A comparative literature survey of design patterns impact on software quality. In: Proceedings of International Conference on Information Science and Applications (ICISA), pp. 1–7 (2013). https://doi.org/10.1109/icisa.2013.6579460

  17. Pradhan, P., Dwivedi, A.K., Rath, S.K.: Impact of design patterns on quantitative assessment of quality parameters. In: Second International Conference on Advances in Computing and Communication Engineering (ICACCE), pp. 577–582 (2015). https://doi.org/10.1109/icacce.2015.102

  18. Hsueh, N.-L., Chu, P.-H., Chu, W.: A quantitative approach for evaluating the quality of design patterns. J. Syst. Softw. 81, 1430–1439 (2008). https://doi.org/10.1016/j.jss.2007.11.724

    Article  Google Scholar 

  19. Ampatzoglou, A., Chatzigeorgiou, A.: Evaluation of object-oriented design patterns in game development. Inf. Softw. Technol. 49(5), 445–454 (2007). https://doi.org/10.1016/j.infsof.2006.07.003

    Article  Google Scholar 

  20. Mariani, T., Vergilio, S.R.: A systematic review on search-based refactoring. Inf. Softw. Technol. 83, 14–34 (2017). https://doi.org/10.1016/j.infsof.2016.11.009

    Article  Google Scholar 

  21. Amoui, M., Mirarab, S., Ansari, S., Lucas, C.: A genetic algorithm approach to design evolution using design pattern transformation. Int. J. Inf. Technol. Intell. Comput., 1–10 (2006)

    Google Scholar 

  22. Jensen, A.C., Cheng, B.H.: On the use of genetic programming for automated refactoring and the introduction of design patterns. In: Proceedings of the 12th Annual Conference on Genetic and Evolutionary Computation (GECCO), pp. 1341–1348. ACM (2010). https://doi.org/10.1145/1830483.1830731

  23. Shimomura, T., Ikeda, K., Takahashi, M.: An approach to GA-driven automatic refactoring based on design patterns. In: 5th International Conference on Software Engineering Advances (ICSEA), pp. 213–218 (2010). https://doi.org/10.1109/icsea.2010.39

  24. Kim, J., Batory, D., Dig, D.: Scripting parametric refactorings in Java to retrofit design patterns. In: 31st IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 211–220. IEEE (2015). https://doi.org/10.1109/icsm.2015.7332467

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anna Derezińska .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Derezińska, A. (2019). Metrics in Software Development and Evolution with Design Patterns. In: Silhavy, R. (eds) Software Engineering and Algorithms in Intelligent Systems. CSOC2018 2018. Advances in Intelligent Systems and Computing, vol 763. Springer, Cham. https://doi.org/10.1007/978-3-319-91186-1_37

Download citation

Publish with us

Policies and ethics