Abstract

Although there has been a large body of work cataloguing design patterns since their introduction, there is a limited amount of detailed, empirical evidence on pattern use and application. Those studies that have collected experimental data generally focus on experienced, professional software engineers or graduate-level computer science and software engineering students. Although the value of design pattens in general is still widely debated, many experts have concluded that the use of design patterns is beneficial for experienced software engineers and architects. But it is still unclear if the benefits of design patterns translate equally to young, inexperienced software engineers. To assess this, we conducted a controlled experiment to evaluate the comparative performance in targeted tasks of novice software engineers, which are represented by software engineering undergraduate students about to earn a bachelors degree in an ABET-accredited computer science or software engineering program. We assessed the ability of subjects to recognize, comprehend, and refactor software containing a number of design patterns. We also collected subjective data measuring the subjects' preferences for or against pattern use. Although experiment results are mixed, depending on the complexity of the pattern involved, we observe that novice software engineers can recognize and understand software containing some design patterns, but that benefits of pattern use, in terms of refactoring time, are dependent on the complexity of the pattern. We conclude that, while simpler patterns show benefits, more complex design patterns may be an impediment for novice developers.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call