Identifying Code Smells with Collaborative Practices: A Controlled Experiment

R. Oliveira, Bernardo Estácio, Alessandro F. Garcia, S. Marczak, R. Prikladnicki, Marcos Kalinowski, C. Lucena
{"title":"Identifying Code Smells with Collaborative Practices: A Controlled Experiment","authors":"R. Oliveira, Bernardo Estácio, Alessandro F. Garcia, S. Marczak, R. Prikladnicki, Marcos Kalinowski, C. Lucena","doi":"10.1109/SBCARS.2016.18","DOIUrl":null,"url":null,"abstract":"Code smells are often considered as key indicators of software quality degradation. If code smells are not systematically removed from a program, its continuous degradation may lead to either major maintenance effort or the complete redesign of the system. For several reasons, software developers introduce smells in their code as soon as they start to learn programming. If novice developers are ought to become either proficient programmers or skilled code reviewers, they should be early prepared to effectively identify code smells in existing programs. However, effective identification of code smells is often not a non-trivial task in particular to a novice developer working in isolation. Thus, the use of collaborative practices may have the potential to support developers in improving their effectiveness on this task at their early stages of their careers. These practices offer the opportunity for two or more developers analyzing the source code together and collaboratively reason about potential smells prevailing on it. Pair Programming (PP) and Coding Dojo Randori (CDR) are two increasingly adopted practices for improving the effectiveness of developers with limited or no knowledge in software engineering tasks, including code review tasks. However, there is no broad understanding about the impact of these collaborative practices on the effectiveness of code smell identification. This paper presents a controlled experiment involving 28 novice developers, aimed at assessing the effectiveness of collaborative practices in the identification of code smells. We compared PP and CDR with solo programming in order to better distinguish their impact on the effective identification of code smells. Our study is also the first in the literature to observe how novice developers work individually and together to identify smells. Our results suggest that collaborative practices contribute to the effectiveness on the identification of a wide range of code smells. Our findings can also be used in practice to guide educators, researchers or teams on improving detection and training on code smell identification.","PeriodicalId":122920,"journal":{"name":"2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"15","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SBCARS.2016.18","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 15

Abstract

Code smells are often considered as key indicators of software quality degradation. If code smells are not systematically removed from a program, its continuous degradation may lead to either major maintenance effort or the complete redesign of the system. For several reasons, software developers introduce smells in their code as soon as they start to learn programming. If novice developers are ought to become either proficient programmers or skilled code reviewers, they should be early prepared to effectively identify code smells in existing programs. However, effective identification of code smells is often not a non-trivial task in particular to a novice developer working in isolation. Thus, the use of collaborative practices may have the potential to support developers in improving their effectiveness on this task at their early stages of their careers. These practices offer the opportunity for two or more developers analyzing the source code together and collaboratively reason about potential smells prevailing on it. Pair Programming (PP) and Coding Dojo Randori (CDR) are two increasingly adopted practices for improving the effectiveness of developers with limited or no knowledge in software engineering tasks, including code review tasks. However, there is no broad understanding about the impact of these collaborative practices on the effectiveness of code smell identification. This paper presents a controlled experiment involving 28 novice developers, aimed at assessing the effectiveness of collaborative practices in the identification of code smells. We compared PP and CDR with solo programming in order to better distinguish their impact on the effective identification of code smells. Our study is also the first in the literature to observe how novice developers work individually and together to identify smells. Our results suggest that collaborative practices contribute to the effectiveness on the identification of a wide range of code smells. Our findings can also be used in practice to guide educators, researchers or teams on improving detection and training on code smell identification.
用协作实践识别代码气味:一个受控实验
代码气味通常被认为是软件质量下降的关键指标。如果没有系统地从程序中去除代码气味,那么它的持续退化可能会导致主要的维护工作或系统的完全重新设计。由于几个原因,软件开发人员一开始学习编程就会在代码中引入气味。如果新手开发人员应该成为熟练的程序员或熟练的代码审阅者,他们应该尽早准备好有效地识别现有程序中的代码气味。然而,有效地识别代码气味通常不是一项重要的任务,特别是对于独立工作的新手开发人员。因此,协作实践的使用可能有潜力支持开发人员在他们职业生涯的早期阶段提高他们在这项任务上的效率。这些实践为两个或更多的开发人员提供了一起分析源代码的机会,并协作地推断出源代码中普遍存在的潜在问题。结对编程(PP)和编码Dojo随机数(CDR)是两种越来越被采用的实践,用于提高在软件工程任务(包括代码审查任务)方面知识有限或没有知识的开发人员的效率。然而,对于这些协作实践对代码气味识别有效性的影响还没有广泛的理解。本文提出了一项涉及28名新手开发人员的对照实验,旨在评估协作实践在识别代码气味方面的有效性。我们将PP和CDR与单独编程进行比较,以便更好地区分它们对有效识别代码气味的影响。我们的研究也是文献中第一个观察新手开发人员如何单独和共同识别气味的研究。我们的结果表明,协作实践有助于有效地识别各种代码气味。我们的发现也可以在实践中用于指导教育工作者、研究人员或团队改进代码气味识别的检测和培训。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信