Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems

  • Authors:
  • Steffen M. Olbrich;Daniela S. Cruzes;Dag I. K. Sjoberg

  • Affiliations:
  • Fraunhofer IESE, Kaiserslautern, Germany;Department of Computer and Information Science, Norwegian University of Science and Technology, Trondheim, Norway;Department of Informatics, University of Oslo, Norway

  • Venue:
  • ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
  • Year:
  • 2010

Quantified Score

Hi-index 0.01

Visualization

Abstract

Code smells are particular patterns in object-oriented systems that are perceived to lead to difficulties in the maintenance of such systems. It is held that to improve maintainability, code smells should be eliminated by refactoring. It is claimed that classes that are involved in certain code smells are liable to be changed more frequently and have more defects than other classes in the code. We investigated the extent to which this claim is true for God Classes and Brain Classes, with and without normalizing the effects with respect to the class size. We analyzed historical data from 7 to 10 years of the development of three open-source software systems. The results show that God and Brain Classes were changed more frequently and contained more defects than other kinds of class. However, when we normalized the measured effects with respect to size, then God and Brain Classes were less subject to change and had fewer defects than other classes. Hence, under the assumption that God and Brain Classes contain on average as much functionality per line of code as other classes, the presence of God and Brain Classes is not necessarily harmful; in fact, such classes may be an efficient way of organizing code.