ABSTRACT
Context: We investigate class grime, a form of design pattern decay, wherein classes of the pattern realization have extraneous attributes or methods, which obfuscate the intended design of a pattern. Goal: To expand the taxonomy of class grime using properties of class cohesion. Using this expanded taxonomy we explore the effect that forms of class grime have on pattern realization understandability. Method: A pilot study utilizing a formal experiment to explore the effects of class grime on design pattern understandability. The experiments used simulated injection of 8 types of class grime into design pattern realizations randomly selected from 16 design pattern types from a set of 6541 realizations from 520 distinct software systems. Results: We found that for each of the 8 identified class grime forms, understandability was negatively affected. Conclusion: This work serves as early communication of research for the validation of the extended taxonomy as well as the method of grime injection used in the experiment.
- Ampatzoglou, A., Michou, O., and Stamelos, I. 2012. Building and mining a repository of design pattern instances: Practical and research benefits. Entertainment Computing 4, 2 (Apr. 2013), 131--142. DOI= http://dx.doi.org/10.1016/j.entcom.2012.10.002.Google Scholar
- Bansiya, J. and Davis, C. G. 2002. A hierarchical model for object-oriented design quality assessment. IEEE Trans. Soft. Eng. 28, 1 (Jan. 2002), 4--17. IEEE-CS, Los Alamitos, CA, USA. DOI= http://dx.doi.org/10.1109/32.979986. Google ScholarDigital Library
- Bieman, J. M. and Kang, B. K. 1995. Cohesion and reuse in an object-oriented system. In Proceedings of the ACM Symposium on Software Reusability (Seattle, WA, USA, April 23--30). SSR'94. ACM, New York, NY. 259--262. Google ScholarDigital Library
- Briand, L. C., Daly, J. W., and Wust, J. K. 1998. A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering 3, 1 (Mar. 1998), 65--117. DOI= http://dx.doi.org/10.1023/A:1009783721306. Google ScholarDigital Library
- Briand, L., Morasca, S., and Basili, V. 1993. Measuring and assessing maintainability at the end of high level design. In Proceedings of IEEE Conference on Software Maintenance (Montreal, Canada, September 27--30). CSM'93. IEEE. 88-87. Google ScholarDigital Library
- Eick, S. G., Graves, T. L., Karr, A. F., Marron, J. S., and Mockus, A. 2001. Does code decay? Assessing the evidence from change management data. IEEE Trans. Soft. Eng. 27, 1 (Jan. 2001), 1--12. IEEE-CS, Los Alamitos, CA, USA. DOI= http://dx.doi.org/10.1109/32.895984. Google ScholarDigital Library
- France, R. B., Kim D. K., Song, E., and Ghosh S. 2004. A UML-based pattern specification technique. IEEE Trans. Soft. Eng, 34, 5, (Mar. 2004), 193--206. Google ScholarDigital Library
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Boston, MA. Google ScholarDigital Library
- Izurieta, C. 2009. Decay and grime buildup in evolving object oriented design patterns. Ph.D. Dissertation. Colorado State University, Fort Collins, CO, USA. Advisor James Bieman. AAI3385139. Google ScholarDigital Library
- Izurieta, C. and Bieman, J. M. 2007. How software designs decay: a pilot study of pattern evolution. In Proceedings of the First International Symposium on Empirical Software Engineering and Measurement (Madrid, Spain, September 20--21, 2007). ESEM 2007. 449--451. DOI= http://dx.doi.org/10.1109/ESEM.2007.55. Google ScholarDigital Library
- Izurieta, C. and Bieman, J. M. 2008. Testing consequences of grime buildup in object oriented design patterns. In Proceedings of the First International Conference on Software Testing, Verification, and Validation (Lillehammer, Norway, April 9--11, 2008). ICST 2008. 171--179. DOI= http://dx.doi.org/10.1109/ICST.2008.27. Google ScholarDigital Library
- Izurieta, C. and Bieman, J. M. 2013. A multiple case study of design pattern decay, grime, and rot in evolving software systems. Software Quality J. 21, 2 (Jun. 2013), 289--323. DOI= http://dx.doi.org/10.1007/s11219-012-9175-x. Google ScholarDigital Library
- Izurieta, C., Vetro, A., Zazworka, N., Cai, Y., Seaman, C., and Shull, F. Organizing the technical debt landscape. In Proceedings of the Third International Workshop on Managing Technical Debt (Zurich, Switzerland, June 1, 2012). MTD 2012. IEEE, 23--26. DOI= http://dx.doi.org/10.1109/MTD.2012.6225995. Google ScholarDigital Library
- Schanz, T. and Izurieta, C. 2010. Object oriented design pattern decay: a taxonomy. In Proceedings of the 2010 ACM-IEEE International Symposium on Emprical Software Engineering and Measurement (Bolzano-Bozen, Italy, September 16--17, 2010). ESEM 2010. ACM, New York, NY, 7:1--7:8. DOI= http://doi.acm.org/10.1145/1852786.1852796. Google ScholarDigital Library
Index Terms
- Design pattern decay: the case for class grime
Recommendations
Object oriented design pattern decay: a taxonomy
ESEM '10: Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and MeasurementSoftware designs decay over time. While most studies focus on decay at the system level, this research studies design decay on well understood micro architectures, design patterns. Formal definitions of design patterns provide a homogeneous foundation ...
How Software Designs Decay: A Pilot Study of Pattern Evolution
ESEM '07: Proceedings of the First International Symposium on Empirical Software Engineering and MeasurementA common belief is that software designs decay as systems evolve. This research examines the extent to which software designs actually decay by studying the aging of design patterns in successful object oriented systems. Aging of design patterns is ...
A multiple case study of design pattern decay, grime, and rot in evolving software systems
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 ...
Comments