Crowdsourcing platforms, such as Stack Overflow, have changed and impacted the software development practice. In these platforms, developers share and reuse their software development and programming experience. Therefore, a plethora of research work focused on crowdsourcing in software engineering and showed that, among other things, crowdsourced development tends to increase developers' productivity and reduce time-to-market. However, in crowdsourcing, the empirical studies of software quality are lacking, and simple questions, such as what developers use the crowdsourcing knowledge for, are unanswered. Therefore, our research focused on studying the impact of reusing crowdsourcing knowledge on software projects. To do so, we conduct several large-scale empirical studies on some of the well-known crowdsourcing platforms, including Stack Overflow and npm. Our results showed that reusing knowledge from these crowdsourcing platforms has the potential to assist software development practice, specifically in the form of reusing crowdsourced code. However, using such knowledge affects the quality of the software in several aspects, such as making the software projects suffer from dependency overhead and increasing the maintenance effort. Based on these findings, we use the gained knowledge to make sound data-driven decisions where we examine software quality assurance methods to mitigate the risk of relying on crowd sourcing knowledge in software development. We examine the use of continuous integration (CI). Our analysis showed how CI can be improved to increase developers' productivity and save their resources.


翻译:诸如Stack Overflow等众包平台已经改变并影响了软件开发实践。在这些平台上,开发者分享并复用其软件开发与编程经验。因此,大量研究工作聚焦于软件工程中的众包现象,并表明众包开发有助于提升开发者生产力并缩短产品上市时间。然而,当前针对众包模式下软件质量的实证研究尚显不足,一些基础问题——例如开发者如何利用众包知识——仍未得到解答。为此,本研究致力于探究复用众包知识对软件项目的影响。我们通过在Stack Overflow和npm等知名众包平台上开展多项大规模实证研究来实现这一目标。研究结果表明,复用这些众包平台的知识(特别是以代码复用的形式)具有辅助软件开发实践的潜力。但此类知识的运用也会在多方面影响软件质量,例如导致软件项目承受依赖项开销、增加维护成本等。基于这些发现,我们运用所获知识制定合理的数据驱动决策,通过检验软件质量保障方法来降低软件开发中对众包知识的依赖风险。我们重点考察了持续集成(CI)技术的应用,分析揭示了如何改进CI以提升开发者生产力并节约其资源。

0
下载
关闭预览

相关内容

软件(中国大陆及香港用语,台湾作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。软件就是程序加文档的集合体。
专知会员服务
32+阅读 · 2020年5月20日
国家自然科学基金
17+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
46+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
VIP会员
相关基金
国家自然科学基金
17+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
46+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员