Skip to main content
Erschienen in: Software Quality Journal 2/2013

01.06.2013

A multiple case study of design pattern decay, grime, and rot in evolving software systems

verfasst von: Clemente Izurieta, James M. Bieman

Erschienen in: Software Quality Journal | Ausgabe 2/2013

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Software designs decay as systems, uses, and operational environments evolve. Decay can involve the design patterns used to structure a system. Classes that participate in design pattern realizations accumulate grime—non-pattern-related code. Design pattern realizations can also rot, when changes break the structural or functional integrity of a design pattern. Design pattern rot can prevent a pattern realization from fulfilling its responsibilities, and thus represents a fault. Grime buildup does not break the structural integrity of a pattern but can reduce system testability and adaptability. This research examined the extent to which software designs actually decay, rot, and accumulate grime by studying the aging of design patterns in three successful object-oriented systems. We generated UML models from the three implementations and employed a multiple case study methodology to analyze the evolution of the designs. We found no evidence of design pattern rot in these systems. However, we found considerable evidence of pattern decay due to grime. Dependencies between design pattern components increased without regard for pattern intent, reducing pattern modularity, and decreasing testability and adaptability. The study of decay and grime showed that the grime that builds up around design patterns is mostly due to increases in coupling.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat PatternSeeker Tool. (2008). Colorado State University. Accessed 2008. PatternSeeker Tool. (2008). Colorado State University. Accessed 2008.
Zurück zum Zitat Arisholm, E. (2006). Empirical assessment of the impact of structural properties on the changeability of object-oriented software. Information and Software Technology, 48(2006), 1046–1055.CrossRef Arisholm, E. (2006). Empirical assessment of the impact of structural properties on the changeability of object-oriented software. Information and Software Technology, 48(2006), 1046–1055.CrossRef
Zurück zum Zitat Arisholm, E., Briand, L. C., & Foyen, A. (2004). Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 30(8), 491–506.CrossRef Arisholm, E., Briand, L. C., & Foyen, A. (2004). Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 30(8), 491–506.CrossRef
Zurück zum Zitat Arisholm, E., & Sjoberg, D. (2000). Towards a framework for empirical assessment of changeability decay. The Journal of Systems and Software, 53(1), 3–14. Arisholm, E., & Sjoberg, D. (2000). Towards a framework for empirical assessment of changeability decay. The Journal of Systems and Software, 53(1), 3–14.
Zurück zum Zitat Basili, V. R., Briand, L. C., & Melo, W. L. (1996). A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 22(10), 751–761.CrossRef Basili, V. R., Briand, L. C., & Melo, W. L. (1996). A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 22(10), 751–761.CrossRef
Zurück zum Zitat Baudry, B., & Sunye, G. (2004). Improving the testability of UML CLASS DIAGRAMS. In First international workshop on testability assesment, 2004, IWoTA 2004, proccedings, November 2004, pp. 70–80. Baudry, B., & Sunye, G. (2004). Improving the testability of UML CLASS DIAGRAMS. In First international workshop on testability assesment, 2004, IWoTA 2004, proccedings, November 2004, pp. 70–80.
Zurück zum Zitat Baudry, B., Traon, Y., & Sunye, G. (2002). Testability analysis of a UML class diagram. In Software metrics symposium, Ottawa, Canada, June 2002, pp. 54–63. Baudry, B., Traon, Y., & Sunye, G. (2002). Testability analysis of a UML class diagram. In Software metrics symposium, Ottawa, Canada, June 2002, pp. 54–63.
Zurück zum Zitat Baudry, B., Traon, Y., Sunye, G., & Jezequel, J. M. (2001). Towards a safe use of design patterns to improve OO software testability. In Proceedings of the 12th international symposium on software reliability engineering, ISSRE’01, p. 324. Baudry, B., Traon, Y., Sunye, G., & Jezequel, J. M. (2001). Towards a safe use of design patterns to improve OO software testability. In Proceedings of the 12th international symposium on software reliability engineering, ISSRE’01, p. 324.
Zurück zum Zitat Baudry, B., Traon, Y., Sunye, G., & Jezequel, J. M. (2003). Measuring and improving design patterns testability. In 9th international software metrics symposium, September 2003, pp. 50–59. Baudry, B., Traon, Y., Sunye, G., & Jezequel, J. M. (2003). Measuring and improving design patterns testability. In 9th international software metrics symposium, September 2003, pp. 50–59.
Zurück zum Zitat Belady, L. A., & Lehman, M. M. (1971). Programming system dynamics, or the meta-dynamics of systems in maintenance and growth. Technical Report. IBM Thomas J. Watson Research Center. Belady, L. A., & Lehman, M. M. (1971). Programming system dynamics, or the meta-dynamics of systems in maintenance and growth. Technical Report. IBM Thomas J. Watson Research Center.
Zurück zum Zitat Bieman, J. M., Straw, G., Wang, H., Munger, P. W., & Alexander, R. (2003). Design patterns and change proness: An examination of five evolving systems. In Proceedings of ninth international software metrics symposium (metrics 2003), pp. 40–49. Bieman, J. M., Straw, G., Wang, H., Munger, P. W., & Alexander, R. (2003). Design patterns and change proness: An examination of five evolving systems. In Proceedings of ninth international software metrics symposium (metrics 2003), pp. 40–49.
Zurück zum Zitat Binder, R. V. (2000). Testing object oriented systems. Models, patterns, and tools. Reading: Addison-Wesley Publishers. Binder, R. V. (2000). Testing object oriented systems. Models, patterns, and tools. Reading: Addison-Wesley Publishers.
Zurück zum Zitat Briand, L. C., Devanbu, P., & Melo, W. (1997). An investigation into coupling measures for C++. In Proceedings of the international conference of software engineering, ICSE’97, Boston, MA. Briand, L. C., Devanbu, P., & Melo, W. (1997). An investigation into coupling measures for C++. In Proceedings of the international conference of software engineering, ICSE’97, Boston, MA.
Zurück zum Zitat Briand, L. C., Wust, J., & Lounis, H. (1999). Using coupling measurement for impact analysis in object-oriented systems. In Proceedings of the IEEE international conference on software maintenance, p. 475. Briand, L. C., Wust, J., & Lounis, H. (1999). Using coupling measurement for impact analysis in object-oriented systems. In Proceedings of the IEEE international conference on software maintenance, p. 475.
Zurück zum Zitat Brown, N., Cai, Y., Guo, Y., Kazman, R., Kin, M., Kruchten, P., Lim, E., MacCormack, A., Nord, R., Ozkaya, I., Sangwan, R., Seaman, C., Sullivan, K., & Zazworka, N. (2010). Managing technical debt in software reliant systems. FoSER 2010, November 7–8, Santa Fe, New Mexico, USA. Brown, N., Cai, Y., Guo, Y., Kazman, R., Kin, M., Kruchten, P., Lim, E., MacCormack, A., Nord, R., Ozkaya, I., Sangwan, R., Seaman, C., Sullivan, K., & Zazworka, N. (2010). Managing technical debt in software reliant systems. FoSER 2010, November 7–8, Santa Fe, New Mexico, USA.
Zurück zum Zitat Brown, W. J., Malveau, R. C., McCormick, H. W., & Mowbray, T. J. (1998). Anti patterns. Refactoring software, architectures, and projects in crisis. New York: Wiley. Brown, W. J., Malveau, R. C., McCormick, H. W., & Mowbray, T. J. (1998). Anti patterns. Refactoring software, architectures, and projects in crisis. New York: Wiley.
Zurück zum Zitat Cain, J. W., & McCrindle, R. J. (2002). An investigation into the effects of code coupling on team dynamics and productivity. In Proceedings of the 26th annual international computer software and applications conference, COMPSAC ‘02. Cain, J. W., & McCrindle, R. J. (2002). An investigation into the effects of code coupling on team dynamics and productivity. In Proceedings of the 26th annual international computer software and applications conference, COMPSAC ‘02.
Zurück zum Zitat Chidamber, S. R., & Kemerer, C. F. (1991). Towards a metrics suite for object-oriented design. In Proceedings: OOPSLA 1991, pp. 197–211. Chidamber, S. R., & Kemerer, C. F. (1991). Towards a metrics suite for object-oriented design. In Proceedings: OOPSLA 1991, pp. 197–211.
Zurück zum Zitat Cunningham, W. (1992). The WyCash portfolio management system. OOPSLA’92 Experience Report, 1992. Cunningham, W. (1992). The WyCash portfolio management system. OOPSLA’92 Experience Report, 1992.
Zurück zum Zitat Eick, S. G., Graves, T. L., Karr, A. F., Marron, J. S., & Mockus, A. (2001). Does code decay? Assessing the evidence from change management data. IEEE Transactions on Software Engineering, 27(1), 1–12.CrossRef Eick, S. G., Graves, T. L., Karr, A. F., Marron, J. S., & Mockus, A. (2001). Does code decay? Assessing the evidence from change management data. IEEE Transactions on Software Engineering, 27(1), 1–12.CrossRef
Zurück zum Zitat Fenton, N. E., & Pfleeger, S. L. (1996). Software metrics: A rigorous and practical approach. London: PWS, Computer Press. Fenton, N. E., & Pfleeger, S. L. (1996). Software metrics: A rigorous and practical approach. London: PWS, Computer Press.
Zurück zum Zitat France, R. B., Kim, D. K., Song, E., & Ghosh S. (2002). Metarole-based modeling language (RBML) specification V1.0. France, R. B., Kim, D. K., Song, E., & Ghosh S. (2002). Metarole-based modeling language (RBML) specification V1.0.
Zurück zum Zitat France, R. B., Kim, D. K, Song, E., & Ghosh, S. (2004). A UML-based pattern specification technique. IEEE Transactions On Software Engineering, 30(3), 193–206.CrossRef France, R. B., Kim, D. K, Song, E., & Ghosh, S. (2004). A UML-based pattern specification technique. IEEE Transactions On Software Engineering, 30(3), 193–206.CrossRef
Zurück zum Zitat Freeman, E., & Freeman, E. (2004). Head first design patterns. Sebastopol, CA: O’Reilly Media. Freeman, E., & Freeman, E. (2004). Head first design patterns. Sebastopol, CA: O’Reilly Media.
Zurück zum Zitat Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object oriented software. Reading, MA: Addison-Wesley. Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object oriented software. Reading, MA: Addison-Wesley.
Zurück zum Zitat Gilb, T. (1988). Principles of software engineering management. England: Addison Wesley.MATH Gilb, T. (1988). Principles of software engineering management. England: Addison Wesley.MATH
Zurück zum Zitat Godfrey, M. W., & Tu, Q. (2000). Evolution in open source software: A case study. In Proceedings of the 2000 international conference on software maintenance (ICSM 2000). San Jose, California, October 2000. Godfrey, M. W., & Tu, Q. (2000). Evolution in open source software: A case study. In Proceedings of the 2000 international conference on software maintenance (ICSM 2000). San Jose, California, October 2000.
Zurück zum Zitat Guéhéneuc, Y. G., & Albin-Amiot, H. (2001). Using design patterns and constraints to automate the detection and correction of inter-class design defects. In Proceedings of the 39th international conference and exhibition technology of object oriented languages and systems, pp. 296–305. Guéhéneuc, Y. G., & Albin-Amiot, H. (2001). Using design patterns and constraints to automate the detection and correction of inter-class design defects. In Proceedings of the 39th international conference and exhibition technology of object oriented languages and systems, pp. 296–305.
Zurück zum Zitat Guo, Y., Seaman, C., Zazworka, N., & Shull, F. (2010). Domain-specific tailoring of code smells: An empirical study. ICSE’10, May 2–8, Cape-Town, South Africa. Guo, Y., Seaman, C., Zazworka, N., & Shull, F. (2010). Domain-specific tailoring of code smells: An empirical study. ICSE’10, May 2–8, Cape-Town, South Africa.
Zurück zum Zitat Henry, S., & Kafura, D. (1984). The evaluation of software systems’ structure using quantitative software metrics. Software: Practice and Experience, 14, 561–573. doi:10.1002/spe.4380140606. Henry, S., & Kafura, D. (1984). The evaluation of software systems’ structure using quantitative software metrics. Software: Practice and Experience, 14, 561–573. doi:10.​1002/​spe.​4380140606.
Zurück zum Zitat Izurieta, C., & Bieman, J. M. (2007). How software designs decay: A pilot study of pattern evolution. In 1st ACM-IEEE international symposium on empirical software engineering and measurement, ESEM’07, Madrid, Spain, September 2007. Izurieta, C., & Bieman, J. M. (2007). How software designs decay: A pilot study of pattern evolution. In 1st ACM-IEEE international symposium on empirical software engineering and measurement, ESEM’07, Madrid, Spain, September 2007.
Zurück zum Zitat Izurieta, C., & Bieman, J. M. (2008). Testing consequences of grime buildup in object oriented design patterns. In 1st ACM-IEEE international conference on software testing, verification and validation, ICST’08, Lillehamer, Norway, April 2008. Izurieta, C., & Bieman, J. M. (2008). Testing consequences of grime buildup in object oriented design patterns. In 1st ACM-IEEE international conference on software testing, verification and validation, ICST’08, Lillehamer, Norway, April 2008.
Zurück zum Zitat Khomh, F., Guéhéneuc, Y. G., & Antoniol, G. (2009). Playing roles in design patterns: An empirical descriptive and analytic study. In Proceedings of the 25th IEEE international conference on software maintenance (ICSM), September 20–26, 2009, Edmonton, Alberta, Canada. IEEE Computer Society Press. Khomh, F., Guéhéneuc, Y. G., & Antoniol, G. (2009). Playing roles in design patterns: An empirical descriptive and analytic study. In Proceedings of the 25th IEEE international conference on software maintenance (ICSM), September 20–26, 2009, Edmonton, Alberta, Canada. IEEE Computer Society Press.
Zurück zum Zitat Kim, D. K. (2004). A meta-modeling approach to specifying patterns. Colorado State University PhD Dissertation, June 21, 2004. Kim, D. K. (2004). A meta-modeling approach to specifying patterns. Colorado State University PhD Dissertation, June 21, 2004.
Zurück zum Zitat Kim, D. K., & Shen, W. (2008). Evaluating pattern conformance of UHL models: A divide-and conquer approach and case studies. Software Quality Journal, 16(3), 329–359.CrossRef Kim, D. K., & Shen, W. (2008). Evaluating pattern conformance of UHL models: A divide-and conquer approach and case studies. Software Quality Journal, 16(3), 329–359.CrossRef
Zurück zum Zitat Kouskouras, K. G., Chatzigeorgiou, A., & Stephanides, G. (2008). Facilitating software extension with design patterns and aspect-oriented programming. Journal of Systems and Software, 81, 1725–1737.CrossRef Kouskouras, K. G., Chatzigeorgiou, A., & Stephanides, G. (2008). Facilitating software extension with design patterns and aspect-oriented programming. Journal of Systems and Software, 81, 1725–1737.CrossRef
Zurück zum Zitat Lehman, M. M. (1980). Program life cycles and laws of software evolution. IEEE Special Issue on Software Engineering, 68(9), 1060–1076. Lehman, M. M. (1980). Program life cycles and laws of software evolution. IEEE Special Issue on Software Engineering, 68(9), 1060–1076.
Zurück zum Zitat Lehman, M. M., Perry, D. E., & Ramil, J. F. (1998). Implications of evolution metrics on software maintenance. In Proceedings of the 1998 international conference on software maintenance (ICSM’98), November 1998, Bathesda, Maryland. Lehman, M. M., Perry, D. E., & Ramil, J. F. (1998). Implications of evolution metrics on software maintenance. In Proceedings of the 1998 international conference on software maintenance (ICSM’98), November 1998, Bathesda, Maryland.
Zurück zum Zitat Li, W., & Henry, S. (1993). Object-oriented metrics that predict maintainability. Journal of Systems and Software, 23, 111–122.CrossRef Li, W., & Henry, S. (1993). Object-oriented metrics that predict maintainability. Journal of Systems and Software, 23, 111–122.CrossRef
Zurück zum Zitat Martin, R. C. (2002). Agile software development, principles, patterns, and practices. Englewood Cliffs, NJ: Prentice Hall. Martin, R. C. (2002). Agile software development, principles, patterns, and practices. Englewood Cliffs, NJ: Prentice Hall.
Zurück zum Zitat McNatt, W. B., & Bieman, J. M. (2001). Coupling of design patterns: common practices and their benefits. In Proceedings of the 25th computer software and applications conference. IEEE Computer Society Press, October 2001, pp. 574–579. McNatt, W. B., & Bieman, J. M. (2001). Coupling of design patterns: common practices and their benefits. In Proceedings of the 25th computer software and applications conference. IEEE Computer Society Press, October 2001, pp. 574–579.
Zurück zum Zitat Offutt, J., & Amman, P. (2008). Introduction to software testing (p. 27). Cambridge: Cambridge University Press. Offutt, J., & Amman, P. (2008). Introduction to software testing (p. 27). Cambridge: Cambridge University Press.
Zurück zum Zitat Ott, R. L., & Longnecker, M. (2001). An introduction to statistical methods and data analysis (5th ed.). Pacific Grove, CA: Duxbury. Ott, R. L., & Longnecker, M. (2001). An introduction to statistical methods and data analysis (5th ed.). Pacific Grove, CA: Duxbury.
Zurück zum Zitat Parnas, D. L. (1994). Software ageing. Invited plenary talk. In 16th international conference (ICSE’94), pp. 279–287, May 1994. Parnas, D. L. (1994). Software ageing. Invited plenary talk. In 16th international conference (ICSE’94), pp. 279–287, May 1994.
Zurück zum Zitat Pree, W. (1994). Meta patterns-a means for capturing the essentials of reusable object oriented design. Lecture Notes in Computer Science, 821, 150–162.CrossRef Pree, W. (1994). Meta patterns-a means for capturing the essentials of reusable object oriented design. Lecture Notes in Computer Science, 821, 150–162.CrossRef
Zurück zum Zitat Rombach, H. D. (1990). Design measurement: Some lessons learned. IEEE Software, 7, 17–25.CrossRef Rombach, H. D. (1990). Design measurement: Some lessons learned. IEEE Software, 7, 17–25.CrossRef
Zurück zum Zitat Schull, F., Melo, W., & Basili, V. (1996). An inductive method for discovering design patterns from object oriented software systems. Technical Report UMCP-CSD CS-TR-3597 or UMIACS-TR-96-10, University of Maryland, Computer Science Department. Schull, F., Melo, W., & Basili, V. (1996). An inductive method for discovering design patterns from object oriented software systems. Technical Report UMCP-CSD CS-TR-3597 or UMIACS-TR-96-10, University of Maryland, Computer Science Department.
Zurück zum Zitat Schumacher, J., Zazworka, N., Shull, F., Seaman, C., & Shaw, M. (2010). Building empirical support for automated code smell detection. ESEM’10, September 16–17, 2010, Bolzano-Bozen, Italy. Schumacher, J., Zazworka, N., Shull, F., Seaman, C., & Shaw, M. (2010). Building empirical support for automated code smell detection. ESEM’10, September 16–17, 2010, Bolzano-Bozen, Italy.
Zurück zum Zitat Van Gurp, J., & Bosch, J. (2002). Design erosion: Problems and causes. Journal of Systems and Software, 61, 105–119.CrossRef Van Gurp, J., & Bosch, J. (2002). Design erosion: Problems and causes. Journal of Systems and Software, 61, 105–119.CrossRef
Zurück zum Zitat Yin, R. K. (2003). Case study research: Design & methods (3rd ed.). Thousand Oaks: Sage Books. Yin, R. K. (2003). Case study research: Design & methods (3rd ed.). Thousand Oaks: Sage Books.
Metadaten
Titel
A multiple case study of design pattern decay, grime, and rot in evolving software systems
verfasst von
Clemente Izurieta
James M. Bieman
Publikationsdatum
01.06.2013
Verlag
Springer US
Erschienen in
Software Quality Journal / Ausgabe 2/2013
Print ISSN: 0963-9314
Elektronische ISSN: 1573-1367
DOI
https://doi.org/10.1007/s11219-012-9175-x

Weitere Artikel der Ausgabe 2/2013

Software Quality Journal 2/2013 Zur Ausgabe

EditorialNotes

In this issue

Premium Partner