[发明专利]一种面向软件代码变更集成的决策支持方法及装置在审
申请号: | 201910196342.8 | 申请日: | 2019-03-15 |
公开(公告)号: | CN109947462A | 公开(公告)日: | 2019-06-28 |
发明(设计)人: | 玄跻峰;陈阳;贾向阳 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/72 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 罗飞 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码变更 决策支持 软件代码 预测模型 变更 版本控制系统 机器学习算法 功能扩展 技术效果 决策效率 开发效率 项目版本 变更度 结构化 构建 合并 更新 决策 帮助 开发 | ||
本发明公开了一种面向软件代码变更集成的决策支持方法及装置,其中的决策支持方法,针对版本控制系统中的代码变更,提取修改的代码的结构化变更度量值,利用机器学习算法构建预测模型,并通过预测模型实现对新提交的代码变更请求做出是否集成的决策,从而帮助项目管理者决定是否合并来自其他开发者的代码变更请求。利用本发明的方法,可以实现有效提高代码变更请求的集成决策效率,进而提高项目版本更新和功能扩展的开发效率的技术效果。
技术领域
本发明涉及软件工程及数据挖掘技术领域,具体涉及一种面向软件代码变更集成的决策支持方法及装置。
背景技术
在互联网时代,高质量、高效率的软件开发和版本变更离不开版本控制系统,GitHub基于版本控制系统是全球最受欢迎的开源社区和协作开发平台。GitHub为开发者提供了很多强大便捷的功能,其中,代码变更请求(pull request)是项目所有者与项目开发参与者进行代码集成交互的主要途径。
一个项目的参与开发者将项目复制(fork)到自己的GitHub账户并进行代码修改,将修改的代码通过代码变更请求发送给项目所有者,从而为项目开发做出贡献,并由项目所有者决定是否集成来自其他开发者的代码变更请求。在此过程中,若在开发者发送代码变更请求时,原项目中相同部分的代码已经修改为不同的内容,此时就会产生冲突。
现有技术中,已经存在一些相关研究的原型工具,例如,基于分析源代码抽象语法树的结构化合并工具,能够帮助开发者分析代码从而尽可能的避免冲突或解决冲突;基于半结构化的代码变更请求的研究,重点在于解决冲突并利用半结构化合并工具分析影响代码集成的代码变更请求的特征;通过建立开发者之间社交网络,帮助管理者找到合适的评审者,由评审者做出评估后帮助项目所有者做出合并决策。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有技术中,并没有完善的关于项目所有者对代码变更集成的决策支持方案,因此,对于代码评审者或者项目所有者,在做出代码集成决策之前,需要先理解整个项目的代码以及评估收到的代码变更请求内容。整个过程往往非常耗费时间和精力,存在集成决策效率低的技术问题。
发明内容
有鉴于此,本发明提供了一种面向软件代码变更集成的决策支持方法及装置,用以解决或者至少部分解决现有技术存在的集成决策效率低的技术问题。
本发明第一方面提供了一种面向软件代码变更集成的决策支持方法,包括:
步骤S1:针对预设GitHub项目,遍历所有具有确定状态的代码变更请求,从代码变更请求获得所包含的方法内代码变更记录,根据代码变更请求是否被合并以及代码版本情况,将代码变更记录标记为合并状态或者未合并状态;
步骤S2:对于同一文件的同一方法,将代码变更记录对应的代码进行抽象语法树的遍历并提取结构化代码变更度量值,其中,结构化代码变更度量值用以表征代码的具体变化情况;
步骤S3:根据结构化代码变更度量值构造第一度量向量,结合第一度量向量与标记的状态,采用机器学习算法构建预测模型;
步骤S4:对待决策的代码变更请求中,同一文件的同一方法的代码变更记录对应的代码进行抽象语法树的遍历,并提取结构化代码变更度量值,再构建第二度量向量,将第二度量向量作为预测模型的输入,获得预测结果,将其作为决策支持的结果。
在一种实施方式中,步骤S1中根据代码变更请求是否被合并以及代码版本情况,将代码变更记录标记为合并状态或者未合并状态,包括:
对于为合并状态的代码变更请求所包含的方法内代码变更记录,比较提交请求时与被合并后的内容,若两者内容相同,则判定代码变更请求被直接合并到项目中,则将代码变更请求包含的方法内代码变更记录标记为已合并,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910196342.8/2.html,转载请声明来源钻瓜专利网。