THESIS
2008
ix, 90 leaves : ill. ; 30 cm
Abstract
Object design patterns are popular to manage software changes. While they are claimed to reduce coupling and increase flexibility, they are also criticized because they 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....[
Read more ]
Object design patterns are popular to manage software changes. While they are claimed to reduce coupling and increase flexibility, they are also criticized because they 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 investigated this question in two phases. In the first phase, we investigated how likely the maintainers will utilize the pre-deployed design patterns. We had conducted a study of maintainers completing different kinds of changes on different pattern-pre-deployed programs. Our results showed that the utilization rate of pre-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 pre-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? If so, would this factor be dominant over 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 exposure to the program, and familiarity with the relevant programming language. Our results showed 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 the fast completion of a change.
Post a Comment