一种基于GitHub的软件资产推荐的方法及系统技术方案

技术编号:21361538 阅读:18 留言:0更新日期:2019-06-15 09:22
本发明专利技术提供了一种基于GitHub的软件资产推荐的方法及系统。该方法包括:根据GitHub平台的开发人员数据和软件资产数据,呈现出目前开发人员和软件代码开发的情况,有助于开发人员和软件资产的全面统计和分析;建立开发者信息模型A、软件资产信息模型B;收集开发人员对软件和代码开发的行为信息,建立开发者‑行为矩阵模型C;利用基于开发者相似性度量和行为预测的协同过滤推荐技术对目标开发者推荐出最符合需求的Top‑n个软件资产,即Top‑n推荐模块;从而解决了开发者浪费大量时间去寻找最符合需求的软件资产的问题,同时根据软件资产推荐系统,也为软件开发人员提供了有效的开发资源和开发方向,促进了软件资产市场的快速发展。

A Method and System of Software Asset Recommendation Based on GitHub

The invention provides a method and system for software asset recommendation based on GitHub. This method includes: presenting the current situation of developers and software code development according to GitHub platform's developer data and software asset data, which is helpful for the comprehensive statistics and analysis of developers and software assets; establishing developer information model A and software asset information model B; collecting behavior information of developers for software and code development, and establishing developer's behavior. Matrix Model C; Using collaborative filtering recommendation technology based on developer similarity measurement and behavior prediction to recommend Top_n software assets that most meet the needs of target developers, namely Top_n recommendation module; thus solving the problem that developers waste a lot of time to find the most suitable software assets, and according to the software asset recommendation system, also for software developers. It provides effective development resources and direction, and promotes the rapid development of software asset market.

【技术实现步骤摘要】
一种基于GitHub的软件资产推荐的方法及系统
本专利技术涉及一种软件资产推荐的方法及系统。
技术介绍
GitHub拥有海量开源代码库以及版本,GitHub已经成为了管理软件开发以及发现已有代码的首选方法,是代码玩家的必备工具。虽然传统的软件资产管理技术能够掌握软件开发和代码使用情况,但是无法及时根据软件和代码的开发情况推荐出最符合开发人员需求的软件和代码,因此软件开发人员在庞大的软件和代码仓库里需要花费多余的时间去寻找自己的需求目标,从而增加了开发人员的负担和时间精力成本,从而不利于加快软件资产市场的发展。
技术实现思路
本专利技术的目的在于,在合理、科学的前提下,有效地推荐出最符合开发者需求的软件资产,为开发者提供高效的选择路径,节约时间和人力成本,促进软件开发市场的发展。为了达到上述目的,本专利技术提供一种基于GitHub的软件资产推荐的方法及系统,本专利技术的步骤包含:步骤1、获取GitHub平台的软件资产信息;步骤2、建立开发者信息模型A,以记录不同开发者对软件资产的行为信息;所述行为信息包括:查找、浏览、下载、编辑、提交;步骤3、建立软件资产信息模型B,以记录开发者对软件资产的不同行为的总次数;步骤4、GitHub中收集开发者对软件资产的行为信息,建立开发者-行为矩阵模型C,以用来根据行为相似性分析最相似开发者,并提供最符合要求的软件资产;步骤5、对每一个开发者对软件资产的行为信息加入不同的权值k;步骤6、利用基于代码开发人员相似性度量技术和开发者行为预测技术的协同过滤推荐技术,为开发者推荐出符合需求的前Top-n个软件资产。优选地,在步骤1所述的软件资产信息包括:软件发现信息,软件许可信息,软件使用信息,软件版本信息,软件补丁信息,软件开发信息,代码开发信息。优选地,所述步骤2中,根据开发者信息模型A来构建开发者查找模块、浏览模块、下载模块、编辑模块、提交模块,通过各模块来记录开发者所行为过的软件资产列表。优选地,所述步骤5中把查找、浏览、下载、编辑、提交的k值依次分别设置为1、2、3、4、5。优选地,在步骤6中,基于开发者相似性度量技术,根据相似度计算方法来计算目标开发者i和其他开发者j之间的相似度sim(i,j);其中,H为开发者i、j共同行为过的软件资产集合;Ki,h、Kj,h分别表示开发者i、j对共同行为过的软件资产h的实际行为值;分别表示开发者i、j行为过的软件资产权值均值。优选地,开发者行为预测技术将sim(i,j)值按照降序排列,取前n个相似度值最高的邻近开发者集N,再根据邻近开发者集N中的每个邻近开发者u分别对目标开发者i的目标项目s计算行为预测值vi,s;其中,邻近开发者u对目标项目s的行为权值为Ku,s;表示邻近开发者u对所有行为过的软件资产的行为平均值。优选地,为开发者推荐出符合需求的前Top-n个软件资产的方法步骤包含:步骤6.1、为先设定一个阀值a;步骤6.2、当vi,s>a时放入Top-n集合中,并降序排列;步骤6.3、最后根据开发者行为的相似度和行为预测值来推荐出最符合开发者需求的前n个软件资产。一种基于GitHub的软件资产推荐系统,包括以下模块:开发者信息获取模块、软件资产信息获取模块、软件资产信息构建模块、开发者行为信息构建模块、目标开发者行为信息获取模块、目标开发者软件资产信息获取模块、相似开发者行为信息获取模块、相似开发者的软件资产信息获取模块、Top-n推荐软件资产显示模块;开发者信息获取模块、软件资产信息获取模块各与GitHub平台中的数据仓库连接,以获取软件资产信息和开发者信息;所述开发者信息包含:开发者账户ID信息和不同开发者对软件资产的行为信息;开发者信息获取模块发送开发者信息给开发者行为信息构建模块,开发者行为信息构建模块依次对应生成不同账户ID信息的开发者对软件资产的行为信息;目标开发者行为信息获取模块查找开发者行为信息构建模块的所有开发者,并获取目标开发者对应的目标开发者的行为信息,并对不同行为按照权值最高的行为来记录;所述软件资产信息获取模块将获取到的软件资产信息发送给软件资产信息构建模块,以生成每个软件资产的ID信息、每个软件资产的url信息、每个软件资产的名称,每个软件资产的url中记录开发者总行为次数;目标开发者软件资产信息获取模块获取目标开发者行为信息获取模块发送的目标开发者对应的目标开发者的行为信息;目标开发者行为信息获取模块为相似开发者行为信息获取模块发送目标开发者的行为信息,相似开发者行为信息获取模块生成相似开发者行为信息;目标开发者软件资产信息获取模块为相似开发者行为信息获取模块提供目标开发者行为过的软件资产集合,相似开发者行为信息获取模块生成相似开发者共同行为过的软件资产集合;目标开发者软件资产信息获取模块为相似开发者的软件资产信息获取模块发送目标开发者的软件资产信息,相似开发者的软件资产信息获取模块生成相似开发者的软件资产信息;相似开发者的软件资产信息获取模块为相似开发者行为信息获取模块提供相似开发者的软件资产信息,相似开发者行为信息获取模块根据相似开发者的软件资产信息获取模块提供的相似开发者的软件资产信息生成相似开发者对软件资产的行为信息;相似开发者行为信息获取模块和相似开发者的软件资产信息获取模块利用开发者行为度量相似性获取到相似开发者的相似行为和行为过的软件资产信息,再发送给Top-n推荐软件资产显示模块;Top-n推荐软件资产显示模块根据行为预测技术和协同过滤推荐算法综合推荐出最符合目标开发者需求的Top-n软件资产。优选地,所述开发者行为信息构建模块进一步包括:开发者查找构建模块、开发者浏览构建模块、开发者下载构建模块、开发者编辑构建模块、开发者提交构建模块;所述开发者对软件资产的行为信息包括:查找、浏览、下载、编辑、提交;开发者查找构建模块用来记录开发者查找过的软件资产列表、开发者浏览构建模块用来记录开发者浏览过的软件资产列表、开发者下载构建模块用来记录开发者下载过的软件资产列表、开发者编辑构建模块用来记录开发者编辑过的软件开发代码列表、开发者提交构建模块用来记录开发者提交的软件资产列表。优选地,所述软件资产信息包括:软件发现信息,软件许可信息,软件使用信息,软件版本信息,软件补丁信息,软件开发信息,代码开发信息。本专利技术的有益效果不仅可以有效识别和整合开发者的需求,为开发人员减少了时间精力,还可以有助于软件开发市场的发展,提高开发人员的开发率和创新性。本专利技术在合理、科学的前提下,有效的推荐出最符合开发者需求的软件资产,最大限度地发挥软件资产效益,对推动软件资产产业的发展壮大,以及促进开发人员的创新具有重要意义。附图说明图1是本专利技术方法的流程示意图;图2是本专利技术系统的总体架构示意图。具体实施方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合附图和具体实施例对本专利技术做进一步详细的说明,但不以任何方式限制本专利技术的范围。如附图2所示,本专利技术的系统结构包含:开发者信息获取模块(203)、软件资产信息获取模块(202)、软件资产信息构建模块(210)、开发者行为信息构建模块(209)、目标开发者行为信息获取模块(211)、目标开发者软件资产信息获取模块(212)、相似开发者行为信息获本文档来自技高网...

【技术保护点】
1.一种基于GitHub的软件资产推荐的方法,其特征在于,步骤包含:步骤1、获取GitHub平台的软件资产信息;步骤2、建立开发者信息模型A,以记录不同开发者对软件资产的行为信息;所述行为信息包括:查找、浏览、下载、编辑、提交;步骤3、建立软件资产信息模型B,以记录开发者对软件资产的不同行为的总次数;步骤4、GitHub中收集开发者对软件资产的行为信息,建立开发者‑行为矩阵模型C,用来根据行为相似性分析最相似开发者,并提供最符合要求的软件资产;步骤5、对每一个开发者对软件资产的行为信息加入不同的权值k;步骤6、利用基于代码开发人员相似性度量技术和开发者行为预测技术的协同过滤推荐技术,为开发者推荐出符合需求的前Top‑n个软件资产。

【技术特征摘要】
1.一种基于GitHub的软件资产推荐的方法,其特征在于,步骤包含:步骤1、获取GitHub平台的软件资产信息;步骤2、建立开发者信息模型A,以记录不同开发者对软件资产的行为信息;所述行为信息包括:查找、浏览、下载、编辑、提交;步骤3、建立软件资产信息模型B,以记录开发者对软件资产的不同行为的总次数;步骤4、GitHub中收集开发者对软件资产的行为信息,建立开发者-行为矩阵模型C,用来根据行为相似性分析最相似开发者,并提供最符合要求的软件资产;步骤5、对每一个开发者对软件资产的行为信息加入不同的权值k;步骤6、利用基于代码开发人员相似性度量技术和开发者行为预测技术的协同过滤推荐技术,为开发者推荐出符合需求的前Top-n个软件资产。2.根据权利要求1所述的方法,其特征在于,在步骤1所述的软件资产信息包括:软件发现信息,软件许可信息,软件使用信息,软件版本信息,软件补丁信息,软件开发信息,代码开发信息。3.根据权利1所述的方法,其特征在于,所述步骤2中,根据开发者信息模型A来构建开发者查找模块、浏览模块、下载模块、编辑模块、提交模块,通过各模块来记录开发者所行为过的软件资产列表。4.根据权利1所述的方法,其特征在于,所述步骤5中把查找、浏览、下载、编辑、提交的k值依次分别设置为1、2、3、4、5。5.根据权利4所述的方法,其特征在于,在步骤6中,基于开发者相似性度量技术,根据相似度计算方法来计算目标开发者i和其他开发者j之间的相似度sim(i,j);其中,H为开发者i、j共同行为过的软件资产集合;Ki,h、Kj,h分别表示开发者i、j对共同行为过的软件资产h的实际行为值;分别表示开发者i、j行为过的软件资产权值均值。6.根据权利5所述的方法,其特征在于,开发者行为预测技术将sim(i,j)值按照降序排列,取前n个相似度值最高的邻近开发者集N,再根据邻近开发者集N中的每个邻近开发者u分别对目标开发者i的目标项目s计算行为预测值vi,s;其中,邻近开发者u对目标项目s的行为权值为Ku,s;表示邻近开发者u对所有行为过的软件资产的行为平均值。7.根据权利6所述方法,其特征在于,为开发者推荐出符合需求的前Top-n个软件资产的方法步骤包含:步骤6.1、为先设定一个阀值a;步骤6.2、当vi,s>a时放入Top-n集合中,并降序排列;步骤6.3、最后根据开发者行为的相似度和行为预测值来推荐出最符合开发者需求的前n个软件资产。8.一种基于GitHub的软件资产推荐系统,其特征在于,包括以下模块:开发者信息获取模块(203)、软件资产信息获取模块(202)、软件资产信息构建模块(210)、开发者行为信息构建模块(209)、目标开发者行为信息获取模块(211)、目标开发者软件资产信息获取模块(212)、相似开发者行为信息获取模块(214)、相似开发者的软件资产信息获取模块(213)、Top-n推荐软件资产显示模块(215);开发者信息获取模块(203)、软件资产信息获取模块(202)各与GitHub平台中的数据仓库(201)连接,以获取软件资产信息和开发者信息;所述开发者信息包含:开发者账户ID信息和不同开发者对软件资产的...

【专利技术属性】
技术研发人员:熊倩华任洪敏熊志翔
申请(专利权)人:上海海事大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1