[发明专利]开源软件生态系统健康性的多维度度量系统在审
申请号: | 202110254806.3 | 申请日: | 2021-03-09 |
公开(公告)号: | CN112882914A | 公开(公告)日: | 2021-06-01 |
发明(设计)人: | 王红兵;侯鹏君 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06Q10/06 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 薛雨妍 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 生态系统 健康 多维 度量 系统 | ||
1.开源软件生态系统健康性的多维度度量系统,其特征在于:包括以下部分:
第一部分是:从开源软件生态系统的定义出发,利用节点之间的依赖关系,采用Louvain社区发现算法找到复杂网络中的软件生态系统;
第二部分是:建立了一套关于开源软件生态系统健康性的多维度度量指标体系,从生产力、规模性、稳定性以及结构性四个维度来评估软件生态系统;
第三部分是:对开源软件生态系统的健康性定义定量化,给开源软件生态系统进行打标签,给出了基于神经网络的健康性度量方法。
2.根据权利要求1所述的开源软件生态系统健康性的多维度度量系统,其特征在于:所述基于Louvain社区发现算法寻找软件生态系统;在开源软件社区中,存在着大量的开源软件生态系统;首先,给出模块度Q的定义:
其中,
①Avw是开源软件社区复杂网络中项目v和项目w之间边的权重,网络不是带权图时,所有边的权重可以看做是1,定义为:
②表示复杂网络的总权重;
③kv=∑wAvw,表示所有与项目v相连的边的总权重,即项目v的度数;
④cv和cw分别表示项目v和项目w所在的两个软件生态系统。
⑤函数δ(cv,cw)的定义如下:
软件生态系统内部的权重(边数)和GitHub整个项目网络中总权重(边数)的比例为:
项目w和网络中任意一个项目存在关联关系的概率是而项目v的度数为kv,因此在随机情况下项目v和项目w存在关联关系的概率为
因此,模块度Q的大小也可以定义为软件生态系统内部的总权重(边数)和整个复杂网络中权重(边数)的比例减去一个期望值,该期望值是将网络设定为随机网络时同样的软件生态系统分配所形成的软件生态系统内部的总权重(边数)和网络中总权重(边数)的比例的大小;于是,Q可以简化为:
其中,∑in表示第i个软件生态系统内的权重(边数),∑tot表示与第i个软件生态系统内部的项目所关联的边的权重(边数);即
∑in=∑vwAvwδ(cv,i)δ(cw,i)
∑tot=∑vkvδ(cv,i)
记为,Q=∑i(ei-(ai)2)
Louvain算法是基于模块度的社区发现算法,以最大化Q为目标。每次划分都将比较划分前后的模块度,以获得模块度增益。
3.根据权利要求2所述的开源软件生态系统健康性的多维度度量系统,其特征在于:把节点i分配给节点j所在的社区c时模块度增益ΔQ定义为:
其中,ki,in是社区c内节点与节点i的边的权重之和;ΔQ前面部分是把节点i加入到社区c后的模块度,后一部分是节点i作为一个独立社区和社区c的模块度;
①将图中的每个节点看成一个独立的社区,初始社区的数目与节点个数相同;
②对每个节点i,依次尝试把节点i分配到其每个邻居节点所在的社区,计算分配前与分配后的模块度变化ΔQ,并记录ΔQ最大的那个邻居节点,如果maxΔQ>0,则把节点i分配ΔQ最大的那个邻居节点所在的社区,否则保持不变;
③重复②,直到所有节点的所属社区不再变化;
④对图进行压缩,将所有在同一个社区的节点压缩成一个新节点,社区内节点之间的边的权重转化为新节点的环的权重,社区间的边的权重转化为新节点间边的权重;
⑤重复①直到整个图的模块度不再发生变化;找到复杂网络中存在的软件生态系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110254806.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种索网组件及建筑物
- 下一篇:一种融合先验知识的小样本雷达工作模式分类方法