发明名称 面向大规模协作开发的海量软件项目共享方法
摘要 一种面向大规模协作开发的海量软件项目共享方法,包括:构建软件数据服务器SDS,Web爬虫从主要开源社区中定期采集开源软件的Web页面,从中抽取项目数据;计算SDS中软件项目数据中的词汇的词频,形成SDS词汇表,计算SDS中每个软件项目的特征;设置需要自动获取共享项目的本地项目列表L,其中包括一定数目的本地项目,基于词频计算L中每个项目的项目数据的特征c,并将其发送到SDS;SDS将本地项目特征c与SDS中已有软件数据库中的每个软件项目的特征进行相似度比较,记录前m个相似度最大的软件项目列表PL;SDS将PL中软件项目的相关信息返回给本地项目p的开发者。当本地项目p的软件数据发生阶段性变化时或者经过一个预设时间间隔后,重复执行上述步骤。
申请公布号 CN102760058B 申请公布日期 2015.03.11
申请号 CN201210097157.1 申请日期 2012.04.05
申请人 中国人民解放军国防科学技术大学 发明人 王怀民;尹刚;史殿;朱沿旭;李翔;滕猛;丁博;刘惠;袁霖;王涛
分类号 G06F9/44(2006.01)I;G06F17/30(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 北京安博达知识产权代理有限公司 11271 代理人 徐国文
主权项 一种面向大规模协作开发的海量软件项目共享方法,包括下列步骤:步骤101、构建软件数据服务器SDS,Web爬虫从站点列表定义的主要开源社区中定期采集开源软件的Web页面,从页面中抽取项目数据,所述项目数据包括开源软件的基本属性及其开发团队属性;步骤102、计算SDS中软件项目数据中的词汇的词频,形成SDS词汇表,其中每个条目是由某个词汇及其词频组成的二元组,然后计算SDS中每个软件项目的特征,其中计算SDS中每个软件项目的特征p<sub>f</sub>的步骤进一步包括:(1)计算所述每个软件项目p′的项目数据中的词汇的词频;(2)对项目p′的每个词汇w计算其特征值F(w)=w<sub>p</sub>/w<sub>SDS</sub>,其中w<sub>p</sub>是词汇w在p的项目数据中出现的频率,w<sub>SDS</sub>是词汇w在SDS项目数据中出现的频率,w<sub>SDS</sub>为0时F(w)取最大值T;(3)按词汇的特征值由高至低排序,取前k个词汇组成一个词汇向量,以此作为p′的特征p<sub>f</sub>,其中k是一个预先设定的整数;步骤103、在软件开发环境SDE中设置需要自动获取共享项目的本地项目列表L,所述本地项目列表L中包括一定数目的具有自动获取共享需求的本地项目,基于词频计算L中每个项目的项目数据的特征c,并将该特征c发送到SDS;步骤104、SDS将本地项目特征c与SDS中已有软件数据库中的每个软件项目的特征进行相似度比较,记录前m个相似度最大的软件项目列表PL,其中相似度比较基于下列方式进行:对于SDE中某个本地软件项目p和SDS中的某个软件项目p′,两者的相似度S(p,p′)=∑<sub>w∈C</sub> w×(w<sub>p</sub>+w<sub>SDS</sub>),其中C是p和p′的项目数据中的公共词汇集合;步骤105、SDS将PL中软件项目的相关信息返回给本地项目p的开发者,所述软件项目的相关信息包括项目名称、主页URL、关键词、项目开发者列表;步骤106、当本地项目p的软件数据发生阶段性变化时或者经过一个预先设定的时间间隔后,重复执行步骤103至105。
地址 410073 湖南省长沙市开福区砚瓦池正街47号