Isaac Griffith PhD Comprehensive Exam presentation
- Thursday, October 15, 2015 from 3:00pm to 4:00pm
- Barnard Hall - view map
Isaac Griffith will present "Design Pattern Decay - A Study of Design Pattern Grime and its Impact on Quality and Technical Debt."
Technical debt is a financial metaphor describing the tradeoff between the short term benefits gained and long term consequences of design and implementation shortcuts taken over the evolution of a software product. These shortcuts typically manifest as design disharmonies such as code smells, anti-patterns, design pattern grime, modularity violations, or violations of good coding rules. Currently little is known about the relationships between these design disharmonies and current technical debt metrics, between design disharmonies and quality attributes (e.g., maintainability or security), and technical debt metrics and quality attributes.
The focus of this proposal is on evolution and effects of a type of design disharmony called design pattern grime. Design pattern grime is the accumulation of unnecessary or unrelated software artifacts within the classes of a design pattern instance. Since design patterns represent agreed upon methods to solve common problems and are based upon sound principles of good design, the decay of these patterns implies an evolution away from good design. This research will expand the knowledge base of design pattern grime through systematic and empirical evaluation of its effects on quality and technical debt.
Initially, we define an extended taxonomy of design pattern grime based on design principles in conjunction with metrics. Using this taxonomy as a guide we intend to experiment with open source software to evaluate the effect of design pattern grime on software product quality and technical debt. We also propose three case studies in the context of both open source and industry grade software to study the evolution of grime, the relationship between grime subtypes, and the effect of automated monitoring of technical debt in an industry setting.
This research proposes the following contributions: A formalized method for conducting controlled experiments through the automated injection of design disharmonies. An extended taxonomy of design pattern grime. An approach to automate the detection of design pattern grime. An evaluation of the relationships between design pattern grime types. Empirical confirmation of the existence of all known types of design pattern grime. Finally, an evaluation of the effects of grime on quality and technical debt.