面向开源社区的群体化协同开发机理实证研究
发布时间:2018-03-23 12:49
本文选题:开源社区 切入点:群体化开发方法 出处:《国防科学技术大学》2016年博士论文
【摘要】:开源软件经过数十年的蓬勃发展,已经在全球软件工程领域占据了主导地位。与传统的软件开发方法相比,开源模式体现了一种互联网环境下基于大众参与的软件开发新方法,即群体化方法。在如今流行的开源社区中,所有的用户都能实时关注社区内任何一个开源项目的发展动态,无限制地向其感兴趣的软件项目提交代码合并请求,自由地评论其他开发者的贡献。软件开发活动变得前所未有的开放,大规模群体的积极参与已成为软件发展的重要生产力。然而,持续涌入的大众贡献规模巨大、类型多样且质量参差不齐,导致了传统的贡献管理方式运转低效,进而严重影响了群体间的协同效率和软件质量。因此,探求高效能的贡献汇聚机制,成为了当前软件开发群体化方法亟待解决的问题。本文围绕大众化贡献汇聚过程中的效率和质量问题,立足于开源社区积累的软件工程大数据,系统地展开数据驱动下的实证研究。论文揭示了群体化协同开发的多项重要机理与最佳实践,主要工作与贡献总结如下:第一,在基于Pull-Request模式的贡献汇聚核心机理方面,提出了一种涵盖项目构建、代码特点、社交协同、项目管理、持续集成等多维度的贡献汇聚量化建模方法,定量地分析了上述因素在贡献汇聚过程中的影响效应,为大众群体更好地贡献高质量代码、核心管理者更高效地组织协同开发活动,提供了最佳实践指导。我们首先对Pull-Request模式下的协同开发因素进行了量化度量,然后将贡献汇聚机理细化为合并机理和延迟机理,并利用多层混合效应回归建模技术分别构建量化模型,最后通过回归分析发现并总结了各个维度上的最佳实践。第二,在持续集成条件下的贡献汇聚机理方面,首次基于大规模数据集量化评估了持续集成对于协同效率和软件质量的收益,为该技术的推广和发展提供了理论和实证依据。我们首先根据核心开发者和外围贡献者的特点提出了持续集成机制定量分析方法,然后利用零膨胀负二项回归建模技术,构建了协同效率模型和软件质量模型,定量地发现了持续集成能够在确保软件质量的前提下有效提高群体贡献的汇聚效率。第三,在持续集成条件下的质量变化机理方面,定量研究并发现了与大众贡献的初始质量和发布质量密切相关的影响因素,以及两类质量之间的内在联系,为软件演化过程中的快速迭代和质量保障,提供了有价值的理论指导和实践建议。首先,我们系统地总结了持续集成驱动下的质量控制机制,并通过对大量实际样本的统计分析发现,持续集成阶段所检测到的代码缺陷是高度集中的,即少部分文件覆盖了大部分的异常错误,因此项目管理者应该重点监控该部分文件的变动情况,及时提高相关测试的质量、完善相应的帮助文档,从而避免代码集成与测试资源的浪费。接着,我们追踪了每个贡献合并后的缺陷情况,采用混合效应逻辑回归建模技术与初始质量进行关联建模,定量地发现了初始质量较差的代码变更,即使贡献者修复了持续集成提示的异常错误,合并后引发真正缺陷的概率仍然较高。此项发现警示了开发者不能只将注意力局限在修复初始异常之上,还应该对初始质量较差的大众贡献开展更细粒度的代码审查。最后,我们对影响初始质量的多维因素进行了多元回归分析,为软件项目进一步提升持续集成阶段的运行效率提供了指导。第四,在人工审查条件下的贡献汇聚机理方面,提出了一种将专家知识和社交兴趣有机结合的审阅人混合推荐方法,能够有效地降低众包模式下审阅人响应延迟对协同效率所造成的巨大影响,从而提高大众贡献的汇聚效率。首先,我们将基于专家知识的任务指派方法扩展至基于众包模式的审阅人推荐场景中来,并在大规模数据集上验证了扩展方法的有效性。然后,我们基于贡献者与审阅人之间的社交评论关系,提出了一种有效度量开发者之间共同兴趣的建模方法,并将审阅人的专家知识与社交兴趣有机结合,提出了一种新颖的混合推荐方法,显著提高了审阅人推荐的效果。
[Abstract]:......
【学位授予单位】:国防科学技术大学
【学位级别】:博士
【学位授予年份】:2016
【分类号】:TP311.52
,
本文编号:1653531
本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/1653531.html