[发明专利]一种面向软件代码变更集成的决策支持方法及装置在审
申请号: | 201910196342.8 | 申请日: | 2019-03-15 |
公开(公告)号: | CN109947462A | 公开(公告)日: | 2019-06-28 |
发明(设计)人: | 玄跻峰;陈阳;贾向阳 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/72 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 罗飞 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码变更 决策支持 软件代码 预测模型 变更 版本控制系统 机器学习算法 功能扩展 技术效果 决策效率 开发效率 项目版本 变更度 结构化 构建 合并 更新 决策 帮助 开发 | ||
1.一种面向软件代码变更集成的决策支持方法,其特征在于,包括:
步骤S1:针对预设GitHub项目,遍历所有具有确定状态的代码变更请求,从代码变更请求获得所包含的方法内代码变更记录,根据代码变更请求是否被合并以及代码版本情况,将代码变更记录标记为合并状态或者未合并状态;
步骤S2:对于同一文件的同一方法,将代码变更记录对应的代码进行抽象语法树的遍历并提取结构化代码变更度量值,其中,结构化代码变更度量值用以表征代码的具体变化情况;
步骤S3:根据结构化代码变更度量值构造第一度量向量,结合第一度量向量与标记的状态,采用机器学习算法构建预测模型;
步骤S4:对待决策的代码变更请求中,同一文件的同一方法的代码变更记录对应的代码进行抽象语法树的遍历,并提取结构化代码变更度量值,再构建第二度量向量,将第二度量向量作为预测模型的输入,获得预测结果,将其作为决策支持的结果。
2.如权利要求1所述的方法,其特征在于,步骤S1中根据代码变更请求是否被合并以及代码版本情况,将代码变更记录标记为合并状态或者未合并状态,包括:
对于为合并状态的代码变更请求所包含的方法内代码变更记录,比较提交请求时与被合并后的内容,若两者内容相同,则判定代码变更请求被直接合并到项目中,则将代码变更请求包含的方法内代码变更记录标记为已合并,
对于为未合并状态的代码变更请求所包含的方法内代码变更记录,将其所包含的方法内代码变更记录标记为未合并。
3.如权利要求2所述的方法,其特征在于,步骤S2中的结构化代码变更度量值由属性和操作类型进行组合后获得。
4.如权利要求3所述的方法,其特征在于,属性包括变量、声明和代码块三种类型,操作类型包括增加、删除和修改。
5.如权利要求1所述的方法,其特征在于,一个代码变更请求包含一个或者多个文件。
6.如权利要求1所述的方法,其特征在于,步骤S3中的机器学习算法包括:决策树、支持向量机、朴素贝叶斯、卷积神经网络。
7.一种面向软件代码变更集成的决策支持装置,其特征在于,包括:
状态标记模块,用于针对预设GitHub项目,遍历所有具有确定状态的代码变更请求,从代码变更请求获得所包含的方法内代码变更记录,根据代码变更请求是否被合并以及代码版本情况,将代码变更记录标记为合并状态或者未合并状态;
度量值提取模块,用于对于同一文件的同一方法,将代码变更记录对应的代码进行抽象语法树的遍历并提取结构化代码变更度量值,其中,结构化代码变更度量值用以表征代码的具体变化情况;
预测模型构建模块,用于根据结构化代码变更度量值构造第一度量向量,结合第一度量向量与标记的状态,采用机器学习算法构建预测模型;
预测模块,用于对待决策的代码变更请求中,同一文件的同一方法的代码变更记录对应的代码进行抽象语法树的遍历,并提取结构化代码变更度量值,再构建第二度量向量,将第二度量向量作为预测模型的输入,获得预测结果,将其作为决策支持的结果。
8.如权利要求7所述的装置,其特征在于,状态标记模块还用于:
对于为合并状态的代码变更请求所包含的方法内代码变更记录,比较提交请求时与被合并后的内容,若两者内容相同,则判定代码变更请求被直接合并到项目中,则将代码变更请求包含的方法内代码变更记录标记为已合并,
对于为未合并状态的代码变更请求所包含的方法内代码变更记录,将其所包含的方法内代码变更记录标记为未合并。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至6中任一项权利要求所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6中任一项权利要求所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910196342.8/1.html,转载请声明来源钻瓜专利网。