[发明专利]一种基于编程上下文信息的代码重构方法在审
| 申请号: | 202110408445.3 | 申请日: | 2021-04-16 |
| 公开(公告)号: | CN113190269A | 公开(公告)日: | 2021-07-30 |
| 发明(设计)人: | 张静宣;骆君鹏;梁嘉慧;刘思远 | 申请(专利权)人: | 南京航空航天大学 |
| 主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F16/335;G06F16/35;G06N3/04 |
| 代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 施昊 |
| 地址: | 211106 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 编程 上下文 信息 代码 方法 | ||
本发明公开了一种基于编程上下文信息的代码重构方法,根据编程项目的上下文信息,对编程项目的需求文档、设计文档、缺陷报告和代码结构进行分析,形成编程上下文模型,对于给定的标识符通过编程上下文模型,重构来源列表,步骤如下:(1)将代码上下文、注释、需求文档、设计文档进行切分序列化,形成文本向量;(2)通过机器学习方法,将文本向量转换为数值向量,并进行数值向量的嵌入;(3)对于形成的多个向量空间,使用聚类的方法将向量空间进行聚类(4)将标识符输入编程上下文模型中形成重构备选排序列表,推荐给开发者。本发明更加有效、个性化地构建新的重构标识符,提高软件质量,避免程序缺陷与腐化,帮助开发人员进行程序开发。
技术领域
本发明涉及代码重构方法,尤其涉及一种基于编程上下文信息的代码重构方法。
背景技术
针对标识符重构,主要体现在以下两个方面,一是基于命名约定的重命名,二是基于不一致性的重命名。
基于命名约定的重命名:命名约定是程序员用来指导他们命名软件实体的一套规则,尤其是形成标识符的规则(包括单词的选择,也包括“语法”规则)。根据统一的命名惯例命名软件实体提高了软件应用程序的可读性和可维护性。命名惯例是与上下文相关的。不同的编程语言和组织定义了自己的命名约定。例如,Java语言建议按照camel case约定命名实体,而C程序员通常使用下划线作为分隔符来连接单词。
基于命名约定寻找重命名机会不同于命名约定本身的选择或质量。暗示问题的不是命名惯例本身,而是它的违反。理论上,基于命名约定的重命名必须首先找到软件采用的上下文约定,其次识别违反重命名机会等约定的标识符。
基于不一致性的重命名:检查软件中不一致的标识符是识别重命名机会的另一项关键技术。标识符传达对程序理解有用的领域概念。它们捕捉程序员在编写代码时所拥有的特定于应用程序的知识。适当的标识符不仅应该简明地反映其实体的作用,而且应该在整个程序中一致地表示概念。然而,大多数程序都存在标识符不一致的问题。
基于不一致性的重命名现有方法基于标识符之间的不一致性以及实体名称和实体实现之间的不一致性来识别重命名机会。此外,标识符之间的不一致性分为基于同义词的方法、基于克隆的方法和基于相似性的方法。
现有的研究工作把主要精力放在了重命名机会的识别上,却忽略了确定哪一部分标识符是需要被重命名之后的操作,即标识符重命名的来源是什么,以及采用何种方式将更好的标识符推荐给开发者,这一部分与重命名机会的识别同样重要,甚至决定了与开发者的交互程度以及开发者对于推荐的新标识符的接受程度,影响了标识符重构的有效性和意义。
现阶段,尚未有研究系统性地总结标识符重构的有效推荐来源是什么以及有效的推荐方式是什么。针对这一部分的研究目前比较匮乏,迫切需要进一步展开更加深入的研究。
发明内容
发明目的:本发明的目的是提供一种个性化构建新的重构标识符、提高软件质量的基于编程上下文信息的代码。
技术方案:一种基于编程上下文信息的代码重构方法,根据编程项目的上下文信息,对编程项目的需求文档、设计文档、缺陷报告和代码结构进行分析,包括步骤如下:
(1)将代码上下文、注释、需求文档和设计文档进行切分序列化,形成文本向量;
(2)通过机器学习方法,将文本向量转换为数值向量,并进行数值向量的嵌入,形成向量空间;
(3)对于形成的多个向量空间,选用聚类方法将向量空间进行聚类,将最后形成的相同编程上下文模型归类到一起;
(4)对于给定的标识符通过编程上下文模型,形成重构备选排序列表,推荐给开发者。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110408445.3/2.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置





