[发明专利]一种面向开源软件的协同行为测度方法有效
申请号: | 201710337657.0 | 申请日: | 2017-05-15 |
公开(公告)号: | CN107247664B | 公开(公告)日: | 2020-09-22 |
发明(设计)人: | 魏丹;王大全;方景龙;陈滨 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 软件 协同 行为 测度 方法 | ||
本发明涉及一种面向开源软件的协同行为测度方法,传统是根据经验而没有具体的量化标准,多数基于单次合作关联而忽略了两个开发者合作多次的情况,然而开发者之间的多次合作会对开源软件质量产生不同的影响,使得协同行为分析结果不遵循实际的项目开发情况;本发明首先获取开源数据,提取项目开发者之间的合作次数,构建项目协同矩阵;根据项目协同矩阵,计算项目开发者网络的点权平均值和开发网络中加权集聚系数的平均值;对点权平均值和加权集聚系数的平均值进行线性加权求和,得到开源项目的协同行为测度值。本发明通过数值度量开源软件中开发者协同合作行为,能够得到整个软件的开发者协同合作的量化值,从而为开源软件质量评估提供支持。
技术领域
本发明是对开源软件参与人员的协同行为的一种测度方法,旨在将通过该技术得到的协同行为测度作为开源软件质量评估的评估属性,能够起到提高开源软件质量评估精确度的作用。
背景技术
开源软件是一种源代码可以自由获取的计算机软件,通常都是由许多开发者合作共同开发完成。随着软件行业的飞速发展,开源软件数目呈指数增长趋势,开源软件质量评估已经成为了一个巨大的挑战。目前很多开源软件由开发者共同开发完成,项目团队中协同、交互机制对软件项目的成败具有重要的影响。为保证开源软件的开发质量,需要开源软件参与人员之间保持高度的协调一致,尽可能减少无效劳动和由于缺乏交互而导致的重复劳动。因此,评价开源软件开发过程中开发者之间的交互协作状况,是开源软件质量评估的不可或缺的重要属性,也是促进开源软件发展的关键因素之一。
由于软件开发工作的特殊性,如何对开源软件开发者的协同行为进行准确的评价一直是个难题。国内外的研究学者采用开发者合作网络对开发者合作行为进行分析,但是注重于开发者的偏好合作关系研究,对于整个软件的开发者协同行为的评价多数是根据经验而没有具体的量化标准;另一方面,在分析开发者合作关系时,多数网络中的边没有赋予权值,即没有考虑两人合作多次的情况,然而开发者之间合作的次数反映开发者间的合作程度,开发者之间的多次合作可能会对开源软件质量产生不同的影响,使得协同行为分析结果不能满足实际的开源软件质量评估需求,距离实际应用尚有距离,迫切需要一种新型方法来解决开源软件中开发者协同行为测度问题,为开源软件质量评估提供支持。
发明内容
本发明针对现有开源软件质量评估中量化开发者协同行为的不足,提出了一种基于加权开发者合作网络的开源软件协同行为测度方法。该方法结合开发者之间的合作次数,更全面的考虑开发者之间合作的紧密程度,因此在分析开发者协同行为时更符合软件开发过程中的实际情况,从而实现对开源软件开发者协同行为的精确评估。
一种面向开源软件的协同行为测度方法,该方法具体包括如下步骤:
步骤1、采用通用的web爬虫技术从网站爬取开源项目的项目版本信息,获取项目开发者之间的合作次数,构建项目开发者网络,生成项目协同矩阵;具体包括如下步骤:
1)基于开源软件的版本信息,提取项目开发过程中开发者每次提交行为所涉及的文件信息;
2)生成每个项目开发者操作过的文件集合;
3)构建N×N的项目协同矩阵。
步骤2、根据项目协同矩阵,计算网络中每个节点的点权,点权的计算考虑到了邻近节点的个数和与它相连接边的权重;根据各节点的点权值计算项目开发者网络的点权平均值S;具体包括如下步骤:
1)对于开发网络中节点vi,查找其相邻的节点,构建相邻节点集合di;
2)节点vi的点权si为该节点连接边的全体权重之和,si的计算公式为:
其中wij表示连接节点vi和节点vj的边的权重,N为开发者网络中节点的个数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710337657.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种冗余变异体识别方法
- 下一篇:一种C接口函数的测试方法及系统