Comprehension and application of design patterns by novice software engineers: an empirical study of undergraduate software engineering and computer science students

Jonathan W. Lartigue, Richard O. Chapman
{"title":"Comprehension and application of design patterns by novice software engineers: an empirical study of undergraduate software engineering and computer science students","authors":"Jonathan W. Lartigue, Richard O. Chapman","doi":"10.1145/3190645.3190686","DOIUrl":null,"url":null,"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.","PeriodicalId":403177,"journal":{"name":"Proceedings of the ACMSE 2018 Conference","volume":"108 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-03-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the ACMSE 2018 Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3190645.3190686","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
软件工程师新手对设计模式的理解与应用:对软件工程与计算机专业本科生的实证研究
尽管自从设计模式被引入以来,已经有大量的工作对其进行了编目,但是关于模式的使用和应用的详细的、经验性的证据数量有限。那些收集实验数据的研究通常集中在经验丰富的专业软件工程师或研究生水平的计算机科学和软件工程学生身上。尽管设计模式的价值在总体上仍然存在广泛的争议,但许多专家已经得出结论,设计模式的使用对有经验的软件工程师和架构师是有益的。但是,尚不清楚设计模式的好处是否同样适用于年轻的、没有经验的软件工程师。为了评估这一点,我们进行了一项对照实验来评估新手软件工程师在目标任务中的比较表现,这些新手以即将获得abet认证的计算机科学或软件工程专业学士学位的软件工程本科生为代表。我们评估了测试对象识别、理解和重构包含大量设计模式的软件的能力。我们还收集了主观数据来衡量受试者对模式使用的偏好。尽管实验结果是混合的,取决于所涉及的模式的复杂性,我们观察到新手软件工程师可以识别和理解包含一些设计模式的软件,但是使用模式的好处,就重构时间而言,依赖于模式的复杂性。我们得出的结论是,虽然更简单的模式有好处,但更复杂的设计模式可能会成为新手开发人员的障碍。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Using software birthmarks and clustering to identify similar classes and major functionalities Predicting NFRs in the early stages of agile software engineering Cloud computing meets 5G networks: efficient cache management in cloud radio access networks Imputing trust network information in NMF-based collaborative filtering Cloud computing: cost, security, and performance
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1