首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于代码提交分析的软件架构变化即时预测方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:华中师范大学

摘要:本发明提供一种基于代码提交分析的软件架构变化即时预测方法,对历史项目代码提交前后的源代码的软件架构进行恢复,并比较提交前后的软件架构;通过数据挖掘收集所述历史项目代码提交中的数据,并依据比较提交前后的软件架构的结果对所述数据进行筛选,筛选后的数据作为软件架构变化预测指标;对筛选后的数据打标签,并选择机器学习算法,建立并训练通过所述软件架构变化预测指标预测架构变化的预测模型;获取待预测项目代码提交中的软件架构变化预测指标,并输入训练好的预测模型中,得到预测结果。本发明能够从提交级别识别架构的更改且能够预测架构更改了多少,从而提高软件架构维护的效率。

主权项:1.一种基于代码提交分析的软件架构变化即时预测方法,其特征在于:对历史项目代码提交前后的源代码的软件架构进行恢复,并比较提交前后的软件架构;通过数据挖掘收集所述历史项目代码提交中的数据,并依据比较提交前后的软件架构的结果对所述数据进行筛选,筛选后的数据作为软件架构变化预测指标;对所述筛选后的数据打标签,并选择机器学习算法,建立并训练通过所述软件架构变化预测指标预测架构变化的预测模型;获取待预测项目代码提交中的软件架构变化预测指标,并输入训练好的预测模型中,得到预测结果,通过预测结果来观察软件架构的变化;所述的比较提交前后的软件架构,具体为:计算提交前后的软件架构之间的架构相似度度量的值,根据架构相似度度量的值来判断架构变化程度,架构相似度度量的值越大两个架构越相似;所述的软件架构变化预测指标具体通过以下方式得到:从所述的历史项目代码提交中,采用数据挖掘的方式得到数据;将所述的数据与所述架构相似度度量进行相关性检验,选择与所述架构相似度度量相关性高的数据作为软件架构变化预测指标;所述的数据包括规模相关数据、文件相关数据、开发者相关数据以及Issue相关指标四类;规模相关数据包括:修改的字符数、修改的代码行数以及修改的方法数;文件相关数据包括:修改的子系统数,修改的目录数、修改的文件数、信息熵、增加或者减少的文件数、修改的文件在变更前的最大代码行数,文件修改的圈复杂度、修改文件的最大修改次数以及文件与上一次更改的平均时间间隔;开发者相关数据包括:对代码提交进行修改的开发者数量、提交代码变更的开发者的经验数以及最近经验数;Issue相关指标是根据项目开发者在进行代码提交前填写的提交信息进行收集,提交信息中会记录每个提交的类型,包括:Issue类型以及issue报告数;所述的数据挖掘的方式具体为:在版本控制系统git中使用gitdiff命令获取代码提交前后的差异,差异包括增加、减少或修改的文件以及每个文件中增减或修改的代码;在版本控制系统git中使用gitlog命令获取提交历史,以计算每个提交的开发者数量以及作者的经验、文件与上一次更改的平均时间间隔,同时获得文件修改历史;从问题跟踪系统Jira中获取Issue记录,来获取Issue相关指标;所述的相关性检验中,对数值类型的数据,分别计算挖掘到的每种数据与架构相似度度量之间的皮尔逊相关系数或者斯皮尔曼相关系数,选取皮尔逊相关系数或者斯皮尔曼相关系数高于预设值对应的数值类型的数据,作为软件架构变化预测指标;对非数值类型的数据,首先对架构相似度度量的值低于预设度量值的历史项目代码提交,标记为引起架构变化的提交,对架构相似度度量的值高于或等于预设度量值的历史项目代码提交,标记为不引起架构变化的提交;在每个项目中汇总出两份数据,然后在每个项目中分别分析这两份数据,对期望计数符合条件的项目分别进行卡方检验或者Fisher确切概率法,从统计学意义上分析每个非数值型的数据与软件架构变化是否有关联;对所述筛选后的数据打标签,具体为:对架构相似度度量的值低于预设度量值的历史项目代码提交,标记为引起架构变化的提交;对架构相似度度量的值高于或等于预设度量值的历史项目代码提交,标记为不引起架构变化的提交;所述的预测模型包括以下两种:标签预测模型,通过软件架构变化预测指标,预测待预测项目代码提交是否是引起架构变化的提交;数值预测模型,通过软件架构变化预测指标,预测提交前后的架构之间的架构相似度。

全文数据:

权利要求:

百度查询: 华中师范大学 基于代码提交分析的软件架构变化即时预测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。