User Tools

Site Tools


what_do_we_know_about_the_effectiveness_of_software_design_patterns

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
what_do_we_know_about_the_effectiveness_of_software_design_patterns [2013/09/16 06:30]
yann
what_do_we_know_about_the_effectiveness_of_software_design_patterns [2014/01/09 00:42]
yann
Line 1: Line 1:
-====== ​Abstract ​======+====== ​Zhang, C. & Budgen, D. What Do We Know about the Effectiveness of Software Design Patterns? Transactions on Software Engineering,​ IEEE CS Press, 2012, 38, 1213-1231 ​====== 
 + 
 +===== Abstract ​=====
 **Context.** Although research in software engineering largely seeks to improve the practices and products of software development,​ many practices are based upon codification of expert knowledge, often with little or no underpinning from objective empirical evidence. Software design patterns seek to codify expert knowledge to share experience about successful design structures. **Objectives.** To investigate how extensively the use of software design patterns has been subjected to empirical study and what evidence is available about how and when their use can provide an effective mechanism for knowledge transfer about design. **Method.** We conducted a systematic literature review in the form of a mapping study, searching the literature up to the end of 2009 to identify relevant primary studies about the use of the 23 patterns catalogued in the widely referenced book by the "Gang of Four." These studies were then categorized according to the forms of study employed, the patterns that were studied, as well as the context within which the study took place. **Results.** Our searches identified 611 candidate papers. Applying our inclusion/​exclusion criteria resulted in a final set of 10 papers that described 11 instances of "​formal"​ experimental studies of object-oriented design patterns. We augmented our analysis by including seven "​experience"​ reports that described application of patterns using less rigorous observational forms. We report and review the profiles of the empirical evidence for those patterns for which multiple studies exist. **Conclusions.** We could not identify firm support for any of the claims made for patterns in general, although there was some support for the usefulness of patterns in providing a framework for maintenance,​ and some qualitative indication that they do not help novices learn about design. For future studies we recommend that researchers use case studies that focus upon some key patterns, and seek to identify the impact that their use can have upon maintenance. **Context.** Although research in software engineering largely seeks to improve the practices and products of software development,​ many practices are based upon codification of expert knowledge, often with little or no underpinning from objective empirical evidence. Software design patterns seek to codify expert knowledge to share experience about successful design structures. **Objectives.** To investigate how extensively the use of software design patterns has been subjected to empirical study and what evidence is available about how and when their use can provide an effective mechanism for knowledge transfer about design. **Method.** We conducted a systematic literature review in the form of a mapping study, searching the literature up to the end of 2009 to identify relevant primary studies about the use of the 23 patterns catalogued in the widely referenced book by the "Gang of Four." These studies were then categorized according to the forms of study employed, the patterns that were studied, as well as the context within which the study took place. **Results.** Our searches identified 611 candidate papers. Applying our inclusion/​exclusion criteria resulted in a final set of 10 papers that described 11 instances of "​formal"​ experimental studies of object-oriented design patterns. We augmented our analysis by including seven "​experience"​ reports that described application of patterns using less rigorous observational forms. We report and review the profiles of the empirical evidence for those patterns for which multiple studies exist. **Conclusions.** We could not identify firm support for any of the claims made for patterns in general, although there was some support for the usefulness of patterns in providing a framework for maintenance,​ and some qualitative indication that they do not help novices learn about design. For future studies we recommend that researchers use case studies that focus upon some key patterns, and seek to identify the impact that their use can have upon maintenance.
  
-====== Comments ======+===== Comments ===== 
 //​Yann-Gaël Guéhéneuc,​ 2013/​09/​13//​ //​Yann-Gaël Guéhéneuc,​ 2013/​09/​13//​
  
Line 12: Line 15:
  
 The results include interesting discussions and three recommendations. In the discussions,​ the paper states that several studies involve more than one design pattern. This observation is not surprising because (1) design patterns are supposed to work together, they form a "​language",​ and (2) some studies use automatically occurrences of design patterns that are not instances, i.e., they are false positive occurrences. As recommendations,​ the paper states that: The results include interesting discussions and three recommendations. In the discussions,​ the paper states that several studies involve more than one design pattern. This observation is not surprising because (1) design patterns are supposed to work together, they form a "​language",​ and (2) some studies use automatically occurrences of design patterns that are not instances, i.e., they are false positive occurrences. As recommendations,​ the paper states that:
-    * "The use of experiments,​ particularly using student participants and short-term tasks, should be used with care for studies of design. Case studies may be more appropriate for exploring the complex cognitive issues involved."​+    * "The use of experiments,​ particularly using student participants and short-term tasks, should be used with care for studies of design. Case studies may be more appropriate for exploring the complex cognitive issues involved" — That is all the difficulties in teaching and studying design patterns! 
 +    * "​Studies of design patterns should use research questions that are related to specific patterns and their roles" — That is what we have been doing although it is often difficult to distinguish roles in implementation,​ which calls for design studies. 
 +    * "​Observational studies need to be reported rigorously and ensure that the links between any conclusions and the reported experiences are explicit" ​— That is something sometimes limiting because reviewers always want more!
what_do_we_know_about_the_effectiveness_of_software_design_patterns.txt · Last modified: 2019/10/06 20:37 (external edit)