The Effects of Deploying Design Patterns for Software Changes

PhD Thesis Proposal Defence


Title: "The Effects of Deploying Design Patterns for Software Changes"

by

Mr. Tsz-Hin Ng


Abstract:

Software changes are inevitable. To manage changes, object design patterns
have been widely deployed. Despite their popularity, there are competing
forces behind deploying them. For example, design patterns are claimed to
reduce coupling and increase flexibility, but they are also criticized to
introduce additional indirections, complicating the software to complete
changes. This leads us to pursue our general research question: To face
with an anticipated change in software development, is it worthwhile to
deploy design patterns in advance? This question is challenged because the
answer depends on whether deploying design patterns in advance facilitates
maintainers to complete an anticipated change, yet the maintainers'
performance is also influenced by experience and skill.

We empirically investigate this question in two phases. In the first
phase, we aim to investigate how likely the maintainers will utilize the
deployed design patterns. We have conducted a study of maintainers
completing different kinds of changes on different pattern-deployed
programs. As an important finding, our result show that the utilization
rate of deployed design patterns can be 100%. In average cases, that rate
in correct programs is significantly higher than that in faulty programs.
This suggests that those maintainers who successfully completed changes
tend to utilize deployed design patterns.

While only pattern-deployed programs were studied in the first phase, we
also studied software without design patterns deployed for an anticipated
change in the second phase. We studied two finer questions. First, to
correctly complete an anticipated change, is deploying design patterns in
advance lead to faster maintenance than not? If so, would this factor be
more dominant than maintainers’ experience and skills to guide
maintainers to complete the change? In our controlled experiment, we
replicated the realization of three perfective changes on two
functionally-the-same programs, with and without design patterns to
facilitate the changes. We also compare maintainers with and without
experience on the working program and good skills on programming language
used. Interestingly, we find that the time spent by the inexperienced and
non-skillful maintainers who work on the pattern-deployed program is much
shorter than that of the experienced and skillful maintainers on the
alternative program. Altogether, our results support that in terms of the
overall performance of maintainers to correctly complete a change,
deploying design patterns in advance is beneficial despite the negative
forces. The main contributions of our results lie in uncovering deeper
insights about the effects of deploying design patterns.


Date:     		Thursday, 31 January 2008

Time:                   11:00a.m.-1:00p.m.

Venue:                  Room 4475
			lifts 25-26

Committee Members:      Dr. Shing-Chi Cheung (Supervisor)
			Dr. Lei Chen (Chairperson)
                        Dr. Zonghua Gu
			Prof. Frederick Lochovsky


**** ALL are Welcome ****