论文部分内容阅读
随着开源社区的发展,越来越多人参与到GitHub的社会化编程中,为了更好的实现团队合作,计算机相关专业教师也鼓励学生在GitHub上进行项目开发协作。针对学生在GitHub上协作完成的课程实践任务,教师如何对项目团队内成员的贡献进行度量成为一个问题。传统的评分策略主要依靠人为主观评价且没有充分利用项目团队开发过程的数据信息。本文充分利用软件开发活动积累的大量数据,从以下四个部分展开研究:(1)GitHub项目团队成员贡献度量分析,帮助教师了解团队个人的贡献情况。构建了项目团队成员贡献指标模型,提出了一套贡献指标的计算方法,根据贡献指标模型确定数据采集范围,通过数据处理计算完成对项目内成员的个体评价,并对其进行可视化。(2)GitHub项目团队协作关系分析,使教师掌握团队内部协作沟通的情况。构建了协作关系网络图模型,通过数据收集处理完成协作关系的可视化。定义了协作关系密集度和协作关系均衡度,用来表征项目团队内成员之间的协作密切均衡程度,度量计算完成了对项目团队协作情况的整体评价。(3)GitHub项目整体推进的特征分析,帮助教师从宏观角度获取项目开发过程的进展信息。定义了工作模式(Work Pattern,abbr.WP),通过数据处理得到工作模式挖掘中所需的三个属性特征,即项目整体推进过程中添加代码量变化趋势、删除代码量变化趋势、提交次数变化趋势。分解得到原子工作模式单元n iWT,给出了挖掘工作模式的方法,并对挖掘得到的七种工作模式进行分析评价。提出了项目整体推进的评价方法。(4)GitHub项目团队成员个性化工作习惯分析,使教师更深入了解学生的开发习惯。基于LDA主题模型的方法处理代码文本完成了对项目成员所参与的软件功能开发方面的个性化分析,此外还从工作时间、GitHub活动类型等方面分析了项目内成员个性化工作习惯,并将其进行可视化。本文通过对GitHub项目团队数据的挖掘,综合(1)(2)(3)项目团队的个体评价和整体评价提出了一套GitHub项目团队成员综合评价体系,可以更全面的对项目成员贡献进行度量,同时帮助教师减轻评估任务量。此外还对项目内成员的个性化工作习惯进行分析,帮助教师了解学生的开发习惯。最后对研究成果进行了系统设计与实现,以Web形式呈现。