Skip to main content

The Evolution of Design Pattern Grime: An Industrial Case Study

  • Conference paper
  • First Online:
Product-Focused Software Process Improvement (PROFES 2017)

Abstract

Context: GoF design patterns are popular among both researchers and practitioners, in the sense that software can be largely comprised of pattern instances. However, there are concerns regarding the efficacy with which software engineers maintain pattern instances, which tend to decay over the software lifetime if no special emphasis is placed on them. Pattern grime (i.e., degradation of the instance due to buildup of unrelated artifacts) has been pointed out as one recurrent reason for the decay of GoF pattern instances. Goal: Seeking to explore this issue, we investigate the existence of relations between the accumulation of grime in pattern instances and various related factors: (a) projects, (b) pattern types, (c) developers, and (d) the structural characteristics of the pattern participating classes. Method: For that, we empirically assessed these relations through an industrial exploratory case study involving five projects (approx. 260,000 lines of code). Results: Our findings suggest a linear accumulation of pattern grime, which may depend on pattern type and developer. Moreover, we present and discuss a series of correlations between the accumulation of pattern grime and structural characteristics. Conclusions: The outcome of our study can benefit both researchers and practitioners, as it points to interesting future work opportunities and also implications relevant to the refinement of best practices, the raise awareness among developers, and the monitoring of pattern grime accumulation.

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

Access this chapter

Institutional subscriptions

Notes

  1. 1.

    https://github.com/search-rug/ssap.

  2. 2.

    https://github.com/search-rug/spoon-pttgrime.

References

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

    MATH  Google Scholar 

  2. Khomh, F., Gueheneuc, Y.-G., Antoniol, G.: Playing roles in design patterns: an empirical descriptive and analytic study. In: 25th IEEE International Conference on Software Maintenance, pp. 83–92. IEEE (2009)

    Google Scholar 

  3. Ampatzoglou, A., Chatzigeorgiou, A., Charalampidou, S., Avgeriou, P.: The effect of GoF design patterns on stability: a case study. IEEE Trans. Softw. Eng. 41, 781–802 (2015)

    Article  Google Scholar 

  4. Ampatzoglou, A., Charalampidou, S., Stamelos, I.: Research state of the art on GoF design patterns: a mapping study. J. Syst. Softw. 86, 1945–1964 (2013)

    Article  Google Scholar 

  5. Izurieta, C., Bieman, J.M.: A multiple case study of design pattern decay, grime, and rot in evolving software systems. Softw. Qual. J. 21, 289–323 (2013)

    Article  Google Scholar 

  6. Izurieta, C., Bieman, J.M.: Testing consequences of grime buildup in object oriented design patterns. In: First International Conference on Software Testing, Verification, and Validation, pp. 171–179. IEEE (2008)

    Google Scholar 

  7. Dale, M.R., Izurieta, C.: Impacts of design pattern decay on system quality. In: Eighth ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 1–4. ACM Press, New York (2014)

    Google Scholar 

  8. Runeson, P., Host, M., Rainer, A., Regnell, B.: Case Study Research in Software Engineering: Guidelines and Examples. Wiley Blackwell, Hoboken (2012)

    Book  Google Scholar 

  9. Izurieta, C., Bieman, J.M.: How software designs decay: a pilot study of pattern evolution. In: First International Symposium on Empirical Software Engineering and Measurement, pp. 449–451. IEEE (2007)

    Google Scholar 

  10. Schanz, T., Izurieta, C.: Object oriented design pattern decay. In: Fourth ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 1–8. ACM Press, New York (2010)

    Google Scholar 

  11. Griffith, I., Izurieta, C.: Design pattern decay: the case for class grime. In: Eighth ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 1–4. ACM Press, New York (2014)

    Google Scholar 

  12. Basili, V.R., Caldiera, G., Rombach, H.D.: Goal question metric paradigm. In: Encyclopedia of Software Engineering, pp. 528–532. Wiley (1994)

    Google Scholar 

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

    Article  Google Scholar 

  14. Feitosa, D., Alders, R., Ampatzoglou, A., Avgeriou, P., Nakagawa, E.Y.: Investigating the effect of design patterns on energy consumption. J. Softw. Evol. Process. 29, e1851 (2017)

    Article  Google Scholar 

  15. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20, 476–493 (1994)

    Article  Google Scholar 

  16. Li, W., Henry, S.: Object-oriented metrics that predict maintainability. J. Syst. Softw. 23, 111–122 (1993)

    Article  Google Scholar 

  17. Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Trans. Softw. Eng. 28, 4–17 (2002)

    Article  Google Scholar 

  18. Ampatzoglou, A., Michou, O., Stamelos, I.: Building and mining a repository of design pattern instances: practical and research benefits. Entertain. Comput. 4, 131–142 (2013)

    Article  Google Scholar 

  19. Alhusain, S., Coupland, S., John, R., Kavanagh, M.: Towards machine learning based design pattern recognition. In: 13th UK Workshop on Computational Intelligence, pp. 244–251. IEEE (2013)

    Google Scholar 

  20. Field, A.: Discovering Statistics Using SPSS. SAGE Publications Ltd., Thousand Oaks (2009)

    MATH  Google Scholar 

  21. Feitosa, D., Avgeriou, P., Ampatzoglou, A., Nakagawa, E.Y.: Supplementary Material: “The Evolution of Design Pattern Grime: An Industrial Case Study.” https://doi.org/10.5281/zenodo.806800

  22. Amanatidis, T., Chatzigeorgiou, A., Ampatzoglou, A., Stamelos, I.: Who is producing more technical debt? A personalized assessment of TD principal. In: Nineth International Workshop on Managing Technical Debt, pp. 1–8. ACM (2017)

    Google Scholar 

Download references

Acknowledgements

The authors would like to thank the financial support from the Brazilian and Dutch agencies CAPES/Nuffic (Grant No.: 034/12), CNPq (Grant No.: 204607/2013-2), as well as INCT-SEC (Grant No.: 573963/2008-8 and 2008/57870-9).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Daniel Feitosa .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Feitosa, D., Avgeriou, P., Ampatzoglou, A., Nakagawa, E.Y. (2017). The Evolution of Design Pattern Grime: An Industrial Case Study. In: Felderer, M., Méndez Fernández, D., Turhan, B., Kalinowski, M., Sarro, F., Winkler, D. (eds) Product-Focused Software Process Improvement. PROFES 2017. Lecture Notes in Computer Science(), vol 10611. Springer, Cham. https://doi.org/10.1007/978-3-319-69926-4_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-69926-4_13

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-69925-7

  • Online ISBN: 978-3-319-69926-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics