|
| This Article | ||
| ||
| Share | ||
| Bibliographic References | ||
| Add to: | ||
| | ||
| Search | ||
| ||
2009 16th Working Conference on Reverse Engineering
Tracking Design Smells: Lessons from a Study of God Classes
Lille, France
October 13-October 16
ISBN: 978-0-7695-3867-9
| ASCII Text | x | ||
| Stéphane Vaucher, Foutse Khomh, Naouel Moha, Yann-Gaël Guéhéneuc, "Tracking Design Smells: Lessons from a Study of God Classes," Reverse Engineering, Working Conference on, pp. 145-154, 2009 16th Working Conference on Reverse Engineering, 2009. | |||
| BibTex | x | ||
| @article{ 10.1109/WCRE.2009.23, author = {Stéphane Vaucher and Foutse Khomh and Naouel Moha and Yann-Gaël Guéhéneuc}, title = {Tracking Design Smells: Lessons from a Study of God Classes}, journal ={Reverse Engineering, Working Conference on}, volume = {0}, year = {2009}, issn = {1095-1350}, pages = {145-154}, doi = {http://doi.ieeecomputersociety.org/10.1109/WCRE.2009.23}, publisher = {IEEE Computer Society}, address = {Los Alamitos, CA, USA}, } | |||
| RefWorks Procite/RefMan/Endnote | x | ||
| TY - CONF JO - Reverse Engineering, Working Conference on TI - Tracking Design Smells: Lessons from a Study of God Classes SN - 1095-1350 SP145 EP154 A1 - Stéphane Vaucher, A1 - Foutse Khomh, A1 - Naouel Moha, A1 - Yann-Gaël Guéhéneuc, PY - 2009 KW - Design smells; antipatterns KW - software evolution KW - empirical study VL - 0 JA - Reverse Engineering, Working Conference on ER - | |||
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/WCRE.2009.23
"God class" is a term used to describe a certain type of large classes which "know too much or do too much". Often a God class (GC) is created by accident as functionalities are incrementally added to a central class over the course of its evolution. GCs are generally thought to be examples of bad code that should be detected and removed to ensure software quality. However, in some cases, a GC is created by design as the best solution to a particular problem because, for example, the problem is not easily decomposable or strong requirements on efficiency exist. In this paper, we study in two open-source systems the "life cycle" of GCs: how they arise, how prevalent they are, and whether they remain or they are removed as the systems evolve over time, through a number of versions. We show how to detect the degree of "godliness" of classes automatically. Then, we show that by identifying the evolution of "godliness", we can distinguish between those classes that are so by design (good code) from those that occurred by accident (bad code). This methodology can guide software quality teams in their efforts to implement prevention and correction mechanisms.
Index Terms:
Design smells; antipatterns, software evolution, empirical study
Citation:
Stéphane Vaucher, Foutse Khomh, Naouel Moha, Yann-Gaël Guéhéneuc, "Tracking Design Smells: Lessons from a Study of God Classes," wcre, pp.145-154, 2009 16th Working Conference on Reverse Engineering, 2009
Usage of this product signifies your acceptance of the Terms of Use.
