论 文:Ke Mao, Licia Capra, Mark Harman, and Yue Jia. A Survey of the Use of Crowdsourcing in Software Engineering.
https://doi.org/10.1016/j.jss.2016.09.015
论文摘要:
调查内容:
本调查的目的有两方面:第一,提供一份对众包软件工程领域目前研究成果的全面调查。第二,总结众包软件工程的挑战并且揭示这些挑战在多大程度上通过现有的工作得到了解决。本调查的具体思路如下:
1. 什么是众包软件工程:
首先,我们要先明确什么是众包。我们总结了众包的四大公共特性:产品中的开放存取性、劳动力的灵活性、自愿参与性和利益相关者间的互惠互利。
接下来我们探索众包软件工程的定义。我们只关注众包和软件工程交集中的部分,如下图:
图 1 众包和软件工程的关系集
在我们收集的论文中,我们选择了最广泛被引用的Jeff Howe对于众包软件工程的定义,具体如下: 众包软件工程是指以一种通过公开招募的形式聚集大量不确定且潜在的 络工作人员来承担外包软件工程任务的行为。
众包软件工程有三种角色:请求方(Requester)、平台(Platform)、工人(Worker)。如图2所示,他们在众包软件工程中承担不同的职能。
图 2 众包软件工程的三种角色(stakeholders)
2. 软件工程中的众包实践:
图 3 部分软件工程众包平台
众包在软件工程的不同阶段都有应用,如图3所示。主要有如下五个阶段:
(1)众包应用于软件需求分析阶段:
(2)众包应用于软件设计阶段:
在现有的商业众包市场中,有许多平台支持软件接口设计。然而, 关于使用众包进行软件设计的表现的研究 道却很少。支持软件架构设计的众包平台很少见,TopCoder是应用最广泛的平台之一。,TopCoder等平台在实现多个设计者共同参与生成的解决方案方面有其局限性。
(3)众包应用于软件编码阶段:
利用众包技术进行软件编码一直是人们关注的焦点,它有三个子领域:IDE增强、群体编程环境和程序优化。
(4)众包应用于软件测试和验证阶段:
软件测试和验证在软件工程研究界受到了极大的关注。因此毫不意外的是有大量众包技术应用该阶段。首先我们关注众包应用于软件测试阶段,也就是众包测试。与传统软件测试相比,众包测试具有招募人员的有利条件,它不只要专业的软件测试人员,而且终需要端用户来支持测试任务。
众包应用于软件测试的以下几个类型:可用性测试、性能测试、界面测试、生成测试用例和预言家难题。其次,在软件验证阶段,由于现阶段需要花费很多资金雇佣技术员工进行验证,众包也许可以降低软件验证的技术壁垒和成本。
(5)众包应用于软件演化和维护阶段:
软件开发和维护(包括)是最早从众包技术中受益的领域之一。一系列的研究已经分析了众包软件演化与维护的可能性。其分为三个分支:众包软件演化、众包软件文档、众包软件本土化。
除了这五个阶段,众包还被广泛应用于软件安全和隐私分析等软件工程的相关活动中。
3. 众包软件工程面临的问题和发展机遇:
尽管众包软件工程已经有广泛的应用,但这种新兴的模式本身也有着一系列未来需要研究的问题。根据对TopCoder案例的研究,众包软件工程的核心关注点包括任务分解、组成、规划和调度、协调和沟通、知识产权、动机和软件质量等方面。面临的主要问题主要有如下几点:
- 众包软件工程的理论和模型。该基础尚未成熟,模型的适用性有待于今后的研究。
- 任务分解。软件工程的任务通常与特定的上下文有关,众包需要对其进行分解。一些研究集中在如何分解任务。
- 众包人员的调度计划。由于人具有高度的异质性,需要仔细的计划和安排。
- 动机和 酬。动机被认为是影响软件项目成功的关键因素。对于众包软件项目,没有适当动机的开发人员可能无法完成持续的贡献,而不适当的 酬可能导致效率低下或任务匮乏。
- 众包软件的质量保证。由于众包活动是暂时的,工人的专业技能和背景各不相同。这种未定义的劳动力的使用,往往会给众包带来质量问题。
最后我们认为以下几个方面的思考会影响众包软件工程以后的发展:
- 谁来做“众包”中的“众”?
- 推测性软件工程。目前,众包软件工程被设想为用使用人群工作替换现有软件工程活动的一种方式。我们预计众包软件工程将越来越多地为目前无法实现的软件工程活动开辟新的可能性。
- 混合众包软件工程。我们设想众包软件工程与非众包软件工程二者界限的模糊化。
- 多众包软件工程。多个不同的(但有联系的)群体处理不同的(但相关的)问题。群体间进行交互而不是相互独立。
- 迭代众包软件工程。随着众包平台的成熟,众包软件工程可能会变得具有适应性和迭代性,以更好地模拟它支持的底层软件工程进程。最近的一项研究表明迭代重组可以帮助改进众包软件设计。
调查结论:
以往并没有调查 告用于系统介绍众包软件工程领域。在本次调查中,我们分析了有关众包在软件工程中应用的现有文献以及对这些众包活动的研究。经过调查表明有关众包软件工程的研究越来越多。接下来调查提供了从理论,实践和应用这几个不同角度来看众包在软件工程中如何应用。调查研究还提出了众包软件工程中的潜在问题,以及之前研究中进行的相关分析和解决方案。最后,本调查旨在鉴定出当前有关文献中的不足之处和未来的工作会遇到的问题。
致谢
此文由南京大学软件学院2019级硕士郭子琛翻译转述。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!