TY - JOUR
T1 - Human and program factors affecting the maintenance of programs with deployed design patterns
AU - Ng, T. H.
AU - Yu, Yuen Tak
AU - Cheung, S. C.
AU - Chan, W. K.
PY - 2012/1
Y1 - 2012/1
N2 - Context: Practitioners may use design patterns to organize program code. Various empirical studies have investigated the effects of pattern deployment and work experience on the effectiveness and efficiency of program maintenance. However, results from these studies are not all consistent. Moreover, these studies have not considered some interesting factors, such as a maintainer's prior exposure to the program under maintenance. Objective: This paper aims at identifying what factors may contribute to the productivity of maintainers in the context of making correct software changes when they work on programs with deployed design patterns. Method: We performed an empirical study involving 118 human subjects with three change tasks on a medium-sized program to explore the possible effects of a suite of six human and program factors on the productivity of maintainers, measured by the time taken to produce a correctly revised program in a course-based setting. The factors we studied include the deployment of design patterns and the presence of pattern-unaware solutions, as well as the maintainer's prior exposure to design patterns, the subject program and the programming language, and prior work experience. Results: Among the factors under examination, we find that the deployment of design patterns, prior exposure to the program and the presence of pattern-unaware solutions are strongly correlated with the time taken to correctly complete maintenance tasks. We also report some interesting observations from the experiment. Conclusion: A new factor, namely, the presence of pattern-unaware solutions, contributes to the efficient completion of maintenance tasks of programs with deployed design patterns. Moreover, we conclude from the study that neither prior exposure to design patterns nor prior exposure to the programming language is supported by sufficient evidences to be significant factors, whereas the subjects' exposure to the program under maintenance is notably more important. © 2011 Elsevier B.V. All rights reserved.
AB - Context: Practitioners may use design patterns to organize program code. Various empirical studies have investigated the effects of pattern deployment and work experience on the effectiveness and efficiency of program maintenance. However, results from these studies are not all consistent. Moreover, these studies have not considered some interesting factors, such as a maintainer's prior exposure to the program under maintenance. Objective: This paper aims at identifying what factors may contribute to the productivity of maintainers in the context of making correct software changes when they work on programs with deployed design patterns. Method: We performed an empirical study involving 118 human subjects with three change tasks on a medium-sized program to explore the possible effects of a suite of six human and program factors on the productivity of maintainers, measured by the time taken to produce a correctly revised program in a course-based setting. The factors we studied include the deployment of design patterns and the presence of pattern-unaware solutions, as well as the maintainer's prior exposure to design patterns, the subject program and the programming language, and prior work experience. Results: Among the factors under examination, we find that the deployment of design patterns, prior exposure to the program and the presence of pattern-unaware solutions are strongly correlated with the time taken to correctly complete maintenance tasks. We also report some interesting observations from the experiment. Conclusion: A new factor, namely, the presence of pattern-unaware solutions, contributes to the efficient completion of maintenance tasks of programs with deployed design patterns. Moreover, we conclude from the study that neither prior exposure to design patterns nor prior exposure to the programming language is supported by sufficient evidences to be significant factors, whereas the subjects' exposure to the program under maintenance is notably more important. © 2011 Elsevier B.V. All rights reserved.
KW - Design patterns
KW - Empirical study
KW - Human factors
KW - Pattern-deployed software
KW - Program factors
KW - Software maintenance
UR - http://www.scopus.com/inward/record.url?scp=80055091289&partnerID=8YFLogxK
UR - https://www.scopus.com/record/pubmetrics.uri?eid=2-s2.0-80055091289&origin=recordpage
U2 - 10.1016/j.infsof.2011.08.002
DO - 10.1016/j.infsof.2011.08.002
M3 - RGC 21 - Publication in refereed journal
SN - 0950-5849
VL - 54
SP - 99
EP - 118
JO - Information and Software Technology
JF - Information and Software Technology
IS - 1
ER -