Study of Design Patterns and Software Quality

Study of Design Patterns and Software Quality



We present an empirical study of the impact of design patterns on quality attributes in the context of software maintenance and evolution. Our ¯rst hypothesis veri¯es software engineering lore: design patterns impact software quality positively. We show that, contrary to popular beliefs, design patterns in practice impact negatively several quality at- tributes, thus providing concrete evidence against common lore. We then study design patterns and object-oriented best practices by formulating a second hypothesis on the impact of these principles on quality. We show that results for some design patterns cannot be explained and conclude on the need for further studies on the relation between design patterns and object-oriented best practices. Thus, we bring further evidence that design patterns should be used with caution during development because they may actually impede maintenance and evolution. Many studies in the literature (including some by these authors) have for premise that design patterns improve the quality of object-oriented software systems. Indeed, it is claimed that design patterns improve the quality of systems and that every well-structured object oriented designs contain pattern, for example Yet, some studies, e.g., , suggest that the use of design patterns do not always result in \good designs. For example, a tangled implementation of patterns impacts negatively the quality that these patterns claim to improve [9]. Also, patterns generally ease future enhancement at the expense of simplicity. Thus, evidence of quality improvements through the use of design patterns consists primarily of intuitive statements and examples. There is little empiri- cal evidence to support the claims of improved reusability , expandability and understandability as put forward in [4] when applying design patterns. Also, the impact of design patterns on other quality attributes is unclear. The lack of concrete evidence on the impact of design patterns on quality led us to carry an empirical study of the impact of these patterns on the quality of systems as perceived by software engineers in the context of maintenance and evolution. Our hypothesis veri¯es software engineering lore: design patterns im- pact software quality positively. Our objective is to provide evidence to con¯rm or refute the hypothesis. We perform the study by asking respondents their evaluations of the impact of design patterns on several quality attributes after application, thus in the context of maintenance and evolution. We choose this approach because, as explained in Section 3, there exists no quality model that takes into account the use of design patterns. Existing quality models fail to assess correctly systems in which design patterns are used [5]. Thus, the evaluation of the perceived impact of design patterns on quality is a necessary step to build a model that takes into account design patterns. We present detailed results for three design patterns:Abstract Factory, Composite, Flyweight and three quality attributes: reusability, understand- ability, and expandability, and global results for other patterns and quality attributes. We conclude that, contrary to popular beliefs, design patterns in practice do not always improve quality attributes, thus providing concrete evi- dence against common lore. We attempt to explain the results with respect to object-oriented best practices and show their limitations. We conclude that de- sign patterns and object-oriented best practices require further study and that patterns should be used with caution during development because they may actually impede maintenance and evolution. The contribution of this paper is three fold. First, we propose an empirical method to study the impact of design patterns on quality attributes. Second, we carry out a qualitative and quantitative study and show that some design

Free download research paper



Related

Software Design Quality-Style and Substance

research prizes and awards CSE PROJECTS

FREE IEEE PAPER AND PROJECTS

FREE IEEE PAPER