More about HKUST
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 ****