Skip to main content
Erschienen in: Empirical Software Engineering 3/2012

01.06.2012

An exploratory study of the impact of antipatterns on class change- and fault-proneness

verfasst von: Foutse Khomh, Massimiliano Di Penta, Yann-Gaël Guéhéneuc, Giuliano Antoniol

Erschienen in: Empirical Software Engineering | Ausgabe 3/2012

Einloggen

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

search-config
loading …

Abstract

Antipatterns are poor design choices that are conjectured to make object-oriented systems harder to maintain. We investigate the impact of antipatterns on classes in object-oriented systems by studying the relation between the presence of antipatterns and the change- and fault-proneness of the classes. We detect 13 antipatterns in 54 releases of ArgoUML, Eclipse, Mylyn, and Rhino, and analyse (1) to what extent classes participating in antipatterns have higher odds to change or to be subject to fault-fixing than other classes, (2) to what extent these odds (if higher) are due to the sizes of the classes or to the presence of antipatterns, and (3) what kinds of changes affect classes participating in antipatterns. We show that, in almost all releases of the four systems, classes participating in antipatterns are more change-and fault-prone than others. We also show that size alone cannot explain the higher odds of classes with antipatterns to underwent a (fault-fixing) change than other classes. Finally, we show that structural changes affect more classes with antipatterns than others. We provide qualitative explanations of the increase of change- and fault-proneness in classes participating in antipatterns using release notes and bug reports. The obtained results justify a posteriori previous work on the specification and detection of antipatterns and could help to better focus quality assurance and testing activities.

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 "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!

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!

Literatur
Zurück zum Zitat Antoniol G, Ayari K, Di Penta M, Khomh F, Guéhéneuc Y-G (2008) Is it a bug or an enhancement? A text-based approach to classify change requests. In: Vigder M, Chechik M (eds) Proceedings of the 18th IBM centers for advanced studies conference (CASCON). ACM Press, New York, 15 pp Antoniol G, Ayari K, Di Penta M, Khomh F, Guéhéneuc Y-G (2008) Is it a bug or an enhancement? A text-based approach to classify change requests. In: Vigder M, Chechik M (eds) Proceedings of the 18th IBM centers for advanced studies conference (CASCON). ACM Press, New York, 15 pp
Zurück zum Zitat Aversano L, Canfora G, Cerulo L, Del Grosso C, Di Penta M (2007) An empirical study on the evolution of design patterns. In: Proc. of the the 6th European software engineering conf. and symp. on the foundations of software engineering. ACM Press, New York, pp 385–394 Aversano L, Canfora G, Cerulo L, Del Grosso C, Di Penta M (2007) An empirical study on the evolution of design patterns. In: Proc. of the the 6th European software engineering conf. and symp. on the foundations of software engineering. ACM Press, New York, pp 385–394
Zurück zum Zitat Basili VR, Briand LC, Melo WL (1996) A validation of object-oriented design metrics as quality indicators. IEEE Trans Softw Eng 22(10):751–761CrossRef Basili VR, Briand LC, Melo WL (1996) A validation of object-oriented design metrics as quality indicators. IEEE Trans Softw Eng 22(10):751–761CrossRef
Zurück zum Zitat Bieman JM, Straw G, Wang H, Munger PW, Alexander RT (2003) Design patterns and change proneness: an examination of five evolving systems. In: 9th international software metrics symposium (METRICS’03). IEEE Computer Society Press, Piscataway, pp 40–49 Bieman JM, Straw G, Wang H, Munger PW, Alexander RT (2003) Design patterns and change proneness: an examination of five evolving systems. In: 9th international software metrics symposium (METRICS’03). IEEE Computer Society Press, Piscataway, pp 40–49
Zurück zum Zitat Bois BD, Demeyer S, Verelst J, Mens T, Temmerman M (2006) Does god class decomposition affect comprehensibility? In: Proceedings of the IASTED international conference on software engineering. IASTED/ACTA Press, Calgary, pp 346–355 Bois BD, Demeyer S, Verelst J, Mens T, Temmerman M (2006) Does god class decomposition affect comprehensibility? In: Proceedings of the IASTED international conference on software engineering. IASTED/ACTA Press, Calgary, pp 346–355
Zurück zum Zitat Brown WJ, Malveau RC, Brown WH, McCormick HW III, Mowbray TJ (1998) Anti patterns: refactoring software, architectures, and projects in crisis, 1st edn. Wiley, New York Brown WJ, Malveau RC, Brown WH, McCormick HW III, Mowbray TJ (1998) Anti patterns: refactoring software, architectures, and projects in crisis, 1st edn. Wiley, New York
Zurück zum Zitat Cartwright M, Shepperd M (2000) An empirical investigation of an object-oriented software system. IEEE Trans Softw Eng 26(8):786–796CrossRef Cartwright M, Shepperd M (2000) An empirical investigation of an object-oriented software system. IEEE Trans Softw Eng 26(8):786–796CrossRef
Zurück zum Zitat Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493CrossRef Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493CrossRef
Zurück zum Zitat Cohen J (1988) Statistical power analysis for the behavioral sciences. L. Erlbaum Associates, HillsdaleMATH Cohen J (1988) Statistical power analysis for the behavioral sciences. L. Erlbaum Associates, HillsdaleMATH
Zurück zum Zitat Conte SD, Campbell RL (1989) A methodology for early software size estimation. Technical Report SERC-TR-33-P, Purdue University Conte SD, Campbell RL (1989) A methodology for early software size estimation. Technical Report SERC-TR-33-P, Purdue University
Zurück zum Zitat Deligiannis IS, Shepperd MJ, Roumeliotis M, Stamelos I (2003) An empirical investigation of an object-oriented design heuristic for maintainability. J Syst Softw 65(2):127–139CrossRef Deligiannis IS, Shepperd MJ, Roumeliotis M, Stamelos I (2003) An empirical investigation of an object-oriented design heuristic for maintainability. J Syst Softw 65(2):127–139CrossRef
Zurück zum Zitat Deligiannis IS, Stamelos I, Angelis L, Roumeliotis M, Shepperd MJ (2004) A controlled experiment investigation of an object-oriented design heuristic for maintainability. J Syst Softw 72(2):129–143CrossRef Deligiannis IS, Stamelos I, Angelis L, Roumeliotis M, Shepperd MJ (2004) A controlled experiment investigation of an object-oriented design heuristic for maintainability. J Syst Softw 72(2):129–143CrossRef
Zurück zum Zitat Dhambri K, Sahraoui H, Poulin P (2008) Visual detection of design anomalies. In: Proceedings of the 12th European conference on software maintenance and reengineering, Tampere, Finland. IEEE Computer Society Press, Piscataway, pp 279–283 Dhambri K, Sahraoui H, Poulin P (2008) Visual detection of design anomalies. In: Proceedings of the 12th European conference on software maintenance and reengineering, Tampere, Finland. IEEE Computer Society Press, Piscataway, pp 279–283
Zurück zum Zitat Di Penta M, Cerulo L, Guéhéneuc Y-G, Antoniol G (2008) An empirical study of the relationships between design pattern roles and class change proneness. In: Proceedings of the 24th international conference on software maintenance (ICSM). IEEE Computer Society Press, Piscataway Di Penta M, Cerulo L, Guéhéneuc Y-G, Antoniol G (2008) An empirical study of the relationships between design pattern roles and class change proneness. In: Proceedings of the 24th international conference on software maintenance (ICSM). IEEE Computer Society Press, Piscataway
Zurück zum Zitat Eaddy M, Zimmermann T, Sherwood KD, Garg V, Murphy GC, Nagappan N, Aho AV (2008) Do crosscutting concerns cause defects? IEEE Trans Softw Eng 34(4):497–515CrossRef Eaddy M, Zimmermann T, Sherwood KD, Garg V, Murphy GC, Nagappan N, Aho AV (2008) Do crosscutting concerns cause defects? IEEE Trans Softw Eng 34(4):497–515CrossRef
Zurück zum Zitat El Emam K, Benlarbi S, Goel N, Rai S (2001) The confounding effect of class size on the validity of object-oriented metrics. IEEE Trans Softw Eng 27(7):630–650CrossRef El Emam K, Benlarbi S, Goel N, Rai S (2001) The confounding effect of class size on the validity of object-oriented metrics. IEEE Trans Softw Eng 27(7):630–650CrossRef
Zurück zum Zitat Fischer M, Pinzger M, Gall H (2003) Populating a release history database from version control and bug tracking systems. In: Proceedings of the international conference on software maintenance, Amsterdam, Netherlands. IEEE Computer Society Press, Piscataway, pp 23–32 Fischer M, Pinzger M, Gall H (2003) Populating a release history database from version control and bug tracking systems. In: Proceedings of the international conference on software maintenance, Amsterdam, Netherlands. IEEE Computer Society Press, Piscataway, pp 23–32
Zurück zum Zitat Fowler M (1999) Refactoring—improving the design of existing code, 1st edn. Addison-Wesley, Reading Fowler M (1999) Refactoring—improving the design of existing code, 1st edn. Addison-Wesley, Reading
Zurück zum Zitat Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns—elements of reusable object-oriented software, 1st edn. Addison-Wesley, Reading Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns—elements of reusable object-oriented software, 1st edn. Addison-Wesley, Reading
Zurück zum Zitat Gyimóthy T, Ferenc R, Siket I (2005) Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Trans Softw Eng 31(10):897–910CrossRef Gyimóthy T, Ferenc R, Siket I (2005) Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Trans Softw Eng 31(10):897–910CrossRef
Zurück zum Zitat Khomh F, Guéhéneuc Y-G (2008) Do design patterns impact software quality positively? In: Proceedings of the 12th conference on software maintenance and reengineering (CSMR). IEEE Computer Society Press, Piscataway Khomh F, Guéhéneuc Y-G (2008) Do design patterns impact software quality positively? In: Proceedings of the 12th conference on software maintenance and reengineering (CSMR). IEEE Computer Society Press, Piscataway
Zurück zum Zitat Khomh F, Di Penta M, Guéhéneuc Y-G, Antoniol G (2009a) An exploratory study of the impact of antipatterns on class change- and fault-proneness. Technical Report, Ecole Polytechnique de Montreal Khomh F, Di Penta M, Guéhéneuc Y-G, Antoniol G (2009a) An exploratory study of the impact of antipatterns on class change- and fault-proneness. Technical Report, Ecole Polytechnique de Montreal
Zurück zum Zitat Khomh F, Di Penta M, Guéhéneuc Y-G (2009b) An exploratory study of the impact of code smells on software change-proneness. In: Proceedings of the 16th working conference on reverse engineering (WCRE). IEEE Computer Society Press, Piscataway Khomh F, Di Penta M, Guéhéneuc Y-G (2009b) An exploratory study of the impact of code smells on software change-proneness. In: Proceedings of the 16th working conference on reverse engineering (WCRE). IEEE Computer Society Press, Piscataway
Zurück zum Zitat Khomh F, Guéhéneuc Y-G, Antoniol G (2009c) Playing roles in design patterns: an empirical descriptive and analytic study. In: Kontogiannis K, Xie T (eds) Proceedings of the 25th international conference on software maintenance (ICSM). IEEE Computer Society Press, Piscataway, 10 pp Khomh F, Guéhéneuc Y-G, Antoniol G (2009c) Playing roles in design patterns: an empirical descriptive and analytic study. In: Kontogiannis K, Xie T (eds) Proceedings of the 25th international conference on software maintenance (ICSM). IEEE Computer Society Press, Piscataway, 10 pp
Zurück zum Zitat Khomh F, Vaucher S, Guéhéneuc Y-G, Sahraoui H (2009d) A bayesian approach for the detection of code and design smells. In: Proceedings of the 9th international conference on quality software (QSIC). IEEE Computer Society Press, Piscataway, 10 pp Khomh F, Vaucher S, Guéhéneuc Y-G, Sahraoui H (2009d) A bayesian approach for the detection of code and design smells. In: Proceedings of the 9th international conference on quality software (QSIC). IEEE Computer Society Press, Piscataway, 10 pp
Zurück zum Zitat Langelier G, Sahraoui HA, Poulin P (2005) Visualization-based analysis of quality for large-scale software systems. In: Proceedings of the 20th international conference on automated software engineering. ACM Press, New York Langelier G, Sahraoui HA, Poulin P (2005) Visualization-based analysis of quality for large-scale software systems. In: Proceedings of the 20th international conference on automated software engineering. ACM Press, New York
Zurück zum Zitat Lanza M, Marinescu R (2006) Object-oriented metrics in practice. Springer, BerlinMATH Lanza M, Marinescu R (2006) Object-oriented metrics in practice. Springer, BerlinMATH
Zurück zum Zitat Mantyla M (2003) Bad smells in software—a taxonomy and an empirical study. PhD thesis, Helsinki University of Technology Mantyla M (2003) Bad smells in software—a taxonomy and an empirical study. PhD thesis, Helsinki University of Technology
Zurück zum Zitat Marinescu R (2004) Detection strategies: metrics-based rules for detecting design flaws. In: Proceedings of the 20th international conference on software maintenance. IEEE Computer Society Press, Piscataway, pp 350–359 (2004)CrossRef Marinescu R (2004) Detection strategies: metrics-based rules for detecting design flaws. In: Proceedings of the 20th international conference on software maintenance. IEEE Computer Society Press, Piscataway, pp 350–359 (2004)CrossRef
Zurück zum Zitat Moha N (2008) DECOR: détection et correction des défauts dans les systèmes orientés objet. PhD thesis, Université de Montréal et Université de Lille Moha N (2008) DECOR: détection et correction des défauts dans les systèmes orientés objet. PhD thesis, Université de Montréal et Université de Lille
Zurück zum Zitat Moha N, Guéhéneuc Y-G, Meur A-FL, Duchien L (2008a) A domain analysis to specify design defects and generate detection algorithms. In: Proceedings of the 11th international conference on fundamental approaches to software engineering. Springer, New York, pp 276–291 Moha N, Guéhéneuc Y-G, Meur A-FL, Duchien L (2008a) A domain analysis to specify design defects and generate detection algorithms. In: Proceedings of the 11th international conference on fundamental approaches to software engineering. Springer, New York, pp 276–291
Zurück zum Zitat Moha N, Hacene AMR, Valtchev P, Guéhéneuc Y-G (2008b) Refactorings of design defects using relational concept analysis. In: Medina R, Obiedkov S (eds) Proceedings of the 4th international conference on formal concept analysis (ICFCA). Springer, New York Moha N, Hacene AMR, Valtchev P, Guéhéneuc Y-G (2008b) Refactorings of design defects using relational concept analysis. In: Medina R, Obiedkov S (eds) Proceedings of the 4th international conference on formal concept analysis (ICFCA). Springer, New York
Zurück zum Zitat Moha N, Guéhéneuc YG, Duchien L, Meur AF (2010) DECOR: a method for the specification and detection of code and design smells. IEEE Trans Software Eng 36(1):20–36 Moha N, Guéhéneuc YG, Duchien L, Meur AF (2010) DECOR: a method for the specification and detection of code and design smells. IEEE Trans Software Eng 36(1):20–36
Zurück zum Zitat Munro MJ (2005) Product metrics for automatic identification of “bad smell” design problems in java source-code. In: Proceedings of the 11th international software metrics symposium. IEEE Computer Society Press, Piscataway Munro MJ (2005) Product metrics for automatic identification of “bad smell” design problems in java source-code. In: Proceedings of the 11th international software metrics symposium. IEEE Computer Society Press, Piscataway
Zurück zum Zitat Olbrich S, Cruzes DS, Basili V, Zazworka N (2009) The evolution and impact of code smells: a case study of two open source systems. In: Third international symposium on empirical software engineering and measurement Olbrich S, Cruzes DS, Basili V, Zazworka N (2009) The evolution and impact of code smells: a case study of two open source systems. In: Third international symposium on empirical software engineering and measurement
Zurück zum Zitat Oliveto R, Khomh F, Antoniol G, Guéhéneuc Y-G (2010) Numerical signatures of antipatterns: an approach based on b-splines. In: Capilla R, Ferenc R, Dueas JC (eds) Proceedings of the 14th conference on software maintenance and reengineering. IEEE Computer Society Press, Piscataway Oliveto R, Khomh F, Antoniol G, Guéhéneuc Y-G (2010) Numerical signatures of antipatterns: an approach based on b-splines. In: Capilla R, Ferenc R, Dueas JC (eds) Proceedings of the 14th conference on software maintenance and reengineering. IEEE Computer Society Press, Piscataway
Zurück zum Zitat Riel AJ (1996) Object-oriented design heuristics. Addison-Wesley, Reading Riel AJ (1996) Object-oriented design heuristics. Addison-Wesley, Reading
Zurück zum Zitat Sheskin DJ (2007) Handbook of parametric and nonparametric statistical procedures, 4th edn. Chapman & Hall, LondonMATH Sheskin DJ (2007) Handbook of parametric and nonparametric statistical procedures, 4th edn. Chapman & Hall, LondonMATH
Zurück zum Zitat Simon F, Steinbrückner F, Lewerentz C (2001) Metrics based refactoring. In: Proceedings of the fifth European conference on software maintenance and reengineering (CSMR’01). IEEE Computer Society Press, Piscataway, p 30CrossRef Simon F, Steinbrückner F, Lewerentz C (2001) Metrics based refactoring. In: Proceedings of the fifth European conference on software maintenance and reengineering (CSMR’01). IEEE Computer Society Press, Piscataway, p 30CrossRef
Zurück zum Zitat Travassos G, Shull F, Fredericks M, Basili VR (1999) Detecting defects in object-oriented designs: using reading techniques to increase software quality. In: Proceedings of the 14th conference on object-oriented programming, systems, languages, and applications. ACM Press, New York, pp 47–56CrossRef Travassos G, Shull F, Fredericks M, Basili VR (1999) Detecting defects in object-oriented designs: using reading techniques to increase software quality. In: Proceedings of the 14th conference on object-oriented programming, systems, languages, and applications. ACM Press, New York, pp 47–56CrossRef
Zurück zum Zitat van Emden E, Moonen L (2002) Java quality assurance by detecting code smells. In: Proceedings of the 9th working conference on reverse engineering (WCRE’02). IEEE Computer Society Press, Piscataway van Emden E, Moonen L (2002) Java quality assurance by detecting code smells. In: Proceedings of the 9th working conference on reverse engineering (WCRE’02). IEEE Computer Society Press, Piscataway
Zurück zum Zitat Vicinanza S, Mukhopadhyay T, Prietula M (1991) Software-effort estimation: an exploratory study of expert performance. Inf Syst Res 2(4):243–262CrossRef Vicinanza S, Mukhopadhyay T, Prietula M (1991) Software-effort estimation: an exploratory study of expert performance. Inf Syst Res 2(4):243–262CrossRef
Zurück zum Zitat Vokác M (2004) Defect frequency and design patterns: an empirical study of industrial code. IEEE Trans Software Eng 30(12):904–917 Vokác M (2004) Defect frequency and design patterns: an empirical study of industrial code. IEEE Trans Software Eng 30(12):904–917
Zurück zum Zitat Wake WC (2003) Refactoring workbook. Addison-Wesley Longman, Boston Wake WC (2003) Refactoring workbook. Addison-Wesley Longman, Boston
Zurück zum Zitat Webster BF (1995) Pitfalls of object oriented development, 1st edn. M & T Books, Redwood City Webster BF (1995) Pitfalls of object oriented development, 1st edn. M & T Books, Redwood City
Zurück zum Zitat Wei L, Shatnawi R (2007) An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. J Syst Softw 80(7):1120–1128 Wei L, Shatnawi R (2007) An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. J Syst Softw 80(7):1120–1128
Zurück zum Zitat Yin RK (2002) Case study research: design and methods, 3rd edn. SAGE, London (2002) Yin RK (2002) Case study research: design and methods, 3rd edn. SAGE, London (2002)
Zurück zum Zitat Zimmermann T, Weisgerber P, Diehl S, Zeller A (2004) Mining version histories to guide software changes. In: Proceedings of the 26th international conference on software engineering. IEEE Computer Society Press, Piscataway, pp 563–572CrossRef Zimmermann T, Weisgerber P, Diehl S, Zeller A (2004) Mining version histories to guide software changes. In: Proceedings of the 26th international conference on software engineering. IEEE Computer Society Press, Piscataway, pp 563–572CrossRef
Zurück zum Zitat Zimmermann T, Premraj R, Zeller A (2007) Predicting defects for Eclipse. In: Proceedings of the 3rd ICSE international workshop on predictor models in software engineering. IEEE Computer Society Press, Piscataway Zimmermann T, Premraj R, Zeller A (2007) Predicting defects for Eclipse. In: Proceedings of the 3rd ICSE international workshop on predictor models in software engineering. IEEE Computer Society Press, Piscataway
Metadaten
Titel
An exploratory study of the impact of antipatterns on class change- and fault-proneness
verfasst von
Foutse Khomh
Massimiliano Di Penta
Yann-Gaël Guéhéneuc
Giuliano Antoniol
Publikationsdatum
01.06.2012
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 3/2012
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-011-9171-y

Weitere Artikel der Ausgabe 3/2012

Empirical Software Engineering 3/2012 Zur Ausgabe