A controlled experiment in maintenance: comparing design patternsto simpler solutions
Prechelt, L.; Unger, B.; Tichy, W.F.; Brossler, P.; Votta, L.G.
Software Engineering, IEEE Transactions on
Volume 27, Issue 12, Dec 2001 Page(s):1134 - 1144
Digital Object Identifier 10.1109/32.988711
Summary:Software design patterns package proven solutions to recurring
design problems in a form that simplifies reuse. We are seeking
empirical evidence whether using design patterns is beneficial. In
particular, one may prefer using a design pattern even if the actual
design problem is simpler than that solved by the pattern, i.e., if not
all of the functionality offered by the pattern is actually required.
Our experiment investigates software maintenance scenarios that employ
various design patterns and compares designs with patterns to simpler
alternatives. The subjects were professional software engineers. In most
of our nine maintenance tasks, we found positive effects from using a
design pattern: either its inherent additional flexibility was achieved
without requiring more maintenance time or maintenance time was reduced
compared to the simpler alternative. In a few cases, we found negative
effects: the alternative solution was less error-prone or required less
maintenance time. Overall, we conclude that, unless there is a clear
reason to prefer the simpler solution, it is probably wise to choose the
flexibility provided by the design pattern because unexpected new
requirements often appear. We identify several questions for future
empirical research
View citation and abstract |