The Effects of Deploying Design Patterns for Software Changes

The Hong Kong University of Science and Technology
Department of Computer Science and Engineering


PhD Thesis Defence


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

By

Mr. Tsz-Hin Ng


Abstract

Object design patterns are popular to manage software changes. While they
are claimed to reduce coupling and increase flexibility, they are also
criticized to increase the complexity of software structure. With such
co-existing competing forces, is pre-deploying design patterns useful to
guide maintainers to complete a change? This question is challenging
because on the performance of maintainers, the effects of whether design
patterns are pre-deployed are naturally intertwined with that of
maintainers' experience and skills.

We empirically investigate this question in two phases. In the first
phase, we 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. Our
results 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 changes facilitated by design patterns were studied in the
first phase, we also studied changes without the facilitation of
pre-deployed design patterns in the second phase. We studied two finer
questions. First, to correctly complete a change, does pre-deploying
design patterns lead to faster maintenance than not? If so, would this
factor be more important than maintainers' experience and skills? We
conducted a controlled experiment that studies the performance of
maintainers in completing three perfective changes under various factors:
whether design patterns are pre-deployed, amount of prior exposures to the
program, and familiarity with the relevant programming language. Our
results show that while the factors are individually significant, they are
closely related. In particular, pre-deploying design patterns is
comparably important to hiring experienced or skillful maintainers for
fast completion of a change.


Date:			Monday, 4 August 2008

Time:			10:00a.m.-12:00noon

Venue:			Room 3501
			Lifts 25-26

Chairman:		Prof. Chung-Yee Lee (IELM)

Committee Members:	Prof. Shing-Chi Cheung (Supervisor)
			Prof. Zonghua Gu
			Prof. Frederick Lochovsky
			Prof. Danny Tsang (ECE)
			Prof. Hareton Leung (Computing, PolyU)


**** ALL are Welcome ****