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

design patterns and change proneness an examination of
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Design Patterns and Change Proneness: An Examination of Five Evolving Systems.

Norddin HABTI [27/09/2006]

slide-2
SLIDE 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

slide-3
SLIDE 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

slide-4
SLIDE 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.

slide-5
SLIDE 5

ROGER T. ALEXANDER

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

slide-6
SLIDE 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.

slide-7
SLIDE 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.

slide-8
SLIDE 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,

  • r 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

slide-9
SLIDE 9

OVERVIEW OF STUDY DESIGN

Study of five evolving systems and look at the relationship betw een design structure and software changes.

slide-10
SLIDE 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?

slide-11
SLIDE 11
slide-12
SLIDE 12

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.

slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18

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.

slide-19
SLIDE 19

RESULTS

H2: Are pattern classes less change prone?

slide-20
SLIDE 20
slide-21
SLIDE 21

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

  • peration (Changes/TotOp).
slide-22
SLIDE 22
slide-23
SLIDE 23

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.

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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.

slide-26
SLIDE 26

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.

slide-27
SLIDE 27

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.

slide-28
SLIDE 28

MERCI