design patterns and change proneness an examination of
play

Design Patterns and Change Proneness: An Examination of Five - PowerPoint PPT Presentation

Design Patterns and Change Proneness: An Examination of Five Evolving Systems. Norddin HABTI [27/09/2006] AUTHORS James M. Bieman, Greg Straw, Huxia Wang, Roger T. Alexander Software Assurance Laboratory Computer Science Department Colorado


  1. Design Patterns and Change Proneness: An Examination of Five Evolving Systems. Norddin HABTI [27/09/2006]

  2. AUTHORS James M. Bieman, Greg Straw, Huxia Wang, Roger T. Alexander Software Assurance Laboratory Computer Science Department Colorado State University P. Willard Munger School of Computing Southern Adventist University

  3. JAMES M. BIEMAN Professor of Computer Science Professor of Electrical and Computer Engineering Director, The Colorado State University Software Assurance Laboratory. Editor-in-Chief, The Software Quality Journal. Software Assurance Laboratory Computer Science Department Colorado State University Research Interests: Software Design Quality: Evaluation and Improvement

  4. P. WILLARD MUNGER School of Computing Southern Adventist University Research Interests: Software engineering, testing, case tools, information systems, object-oriented software concerns, coupling problems in operating systems.

  5. ROGER T. ALEXANDER Associate Professor School of Electrical Engineering & Computer Science Washington State University Research Interests: Software engineering and computer security.

  6. CONTEXT The use of the most commonly referenced design patterns should promote adaptable and reusable program code. Changes to code should not involve direct modifications to the classes in prior versions that play roles in a design patterns. The evidence of improvements in adaptability through the use of design patterns and other design structures consists primarily of intuitive arguments and examples. We studied five systems, three proprietary systems and two open source systems, to identify the observable effects of the use of design patterns in early versions on changes that occur as the systems evolve.

  7. DESIGN PATTERNS Design patterns are well-known and frequently reused micro-architectures They represent well-known solutions to common design problems in a given context. They provide proven solutions to design recurring problems within certain contexts. Design patterns can be classified into: • Creational patterns concern object creation; • Structural patterns capture classes or object composition; • Behavioral patterns deal with the way in which classes and objects distribute responsibility and interact.

  8. OBJECTIVE � To determine if software with patterns tends to be adapted by creating new concrete classes that are extensions of existing pattern classes, interfaces, or abstract classes. Prior study: analyze of 39 versions of an evolving industrial system implemented in C++ Question: Is there a relationship between patterns, other design attributes, and the number of changes? - Larger classes were changed more frequently. - Classes that participate in design patterns were not less change prone - Classes that were reused the most through inheritance tend to be more change prone

  9. OVERVIEW OF STUDY DESIGN Study of five evolving systems and look at the relationship betw een design structure and software changes.

  10. CASE STUDY HYPOTHESES • H1: Larger classes will be more change prone. • H2: Classes participating in design patterns are less change prone. Are classes that are reused through inheritance more often less change prone?

  11. RESULTS H1: Are larger classes more change prone? In the first case study, Class size correlates to the number of changes. In three of the four other case studies, class size had a much smaller relationship with changes.

  12. We now do not have enough evidence to reject the null hypothesis, and we cannot conclude that class size can predict the number of changes.

  13. RESULTS H2: Are pattern classes less change prone?

  14. To control for the effect of class size, we used change density rather than the total number of changes in our analysis. Change density is the changes per operation (Changes/TotOp).

  15. NOT H2: Classes participating in design patterns are more change prone. We applied the Mann-Whitney test, a non-parametric two sample rank test of the equality of two population medians, and the corresponding point estimate and confidence interval. This test allows us to reject the null hypothesis of NOT H2, our original H2, with a significance of 0.0003. We conclude that classes that participate in design patterns are more change prone.

  16. Additional Case Study Results. The results were similar to our initial findings in three of the four systems. Pattern classes in System A, System B, and Netbeans were more change prone. In contrast, JRefactory pattern classes were less change prone than non- pattern classes

  17. Are classes that are reused through inheritance more often less change prone? Classes with many subclasses would cause a large ripple effect if they were changed. The subclasses would be effectively changed.

  18. DISCUSSION The newcase studies demonstrate that we should not rely upon the results from a single case study. The first case study made it appear that (1) larger classes are more changeprone, an expected result, and (2) classes that play roles in design patterns are more change prone, an unexpected result. The new case studies indicate a relationship between class size and change- proneness, but it is a much weaker relationship than in the first study.

  19. Conclusions The goal of this research was to use case studies, both from industry and from the Open Source community, to explore the relationship between design structures in object-oriented software and development and maintenance changes. The relationship between class size and number of changes is equivocal. Classes that play roles in design patterns are changed more often than other classes in four of the five case studies. � the dangers of a generalization based on one case study.

  20. MERCI

Recommend


More recommend