[发明专利]一种跨项目缺陷影响分析方法有效
申请号: | 201911020242.6 | 申请日: | 2019-10-23 |
公开(公告)号: | CN110781086B | 公开(公告)日: | 2022-02-08 |
发明(设计)人: | 陈林;马皖王莹;任浩;罗阳 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/71 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210023 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种基于程序依赖关系和符号分析的跨项目缺陷影响分析方法,包括下列步骤:1)获取同一软件生态系统中不同项目、多个版本的程序源代码;2)从每个项目基础版本的程序源代码中抽取调用关系,构建生态系统基本依赖网络;3)从每个项目其它版本的程序源代码中获取代码变更,构建版本敏感的生态系统依赖网络;4)对于给定的跨项目缺陷,已知其上游出错方法,挑选候选下游模块;5)针对每个候选下游模块,进行代码预处理;6)对每个预处理后的候选下游模块,进行符号编码;7)对每个符号编码后的下游模块进行约束求解,如有解,则提示开发人员该模块可能受给定跨项目缺陷影响。本发明解决了目前存在的缺乏针对跨项目缺陷影响分析、无法提示下游项目受影响模块等问题,进而指导跨项目缺陷的修复方案设计,提高缺陷修复补丁的质量,从而能更好地控制和管理软件生态系统的健康发展。 | ||
搜索关键词: | 一种 项目 缺陷 影响 分析 方法 | ||
【主权项】:
1.一种基于程序依赖关系和符号分析的跨项目缺陷影响分析方法,其特征在于,从软件版本控制系统中获取同一软件生态系统中不同项目多个版本的源代码,通过抽取项目间调用关系构建版本敏感的软件生态系统跨项目调用网络,以此识别调用了上游出错方法的下游候选模块,基于符号分析将每个候选模块入口到调用点处的语句连同缺陷触发条件一同编码成符号约束,通过约束求解判断每个候选模块是否受给定跨项目缺陷影响;该方法包括下列步骤:/n1)获取同一软件生态系统中不同项目、多个版本的程序源代码;版本控制系统中保存了软件生态系统中每个项目的所有程序版本的提交,根据文件名和版本号,从软件版本控制系统中获取每个软件不同版本程序的源代码;/n定义1:文件名和版本号是软件版本控制系统中用于区分不同软件或同一软件不同版本的标识;/n2)从每个项目基础版本的程序源代码中抽取调用关系,构建生态系统基本依赖网络;对步骤1)中已经收集好的每个项目基础版本的源程序代码进行词法分析和语法分析,利用Python标准库中的ast模块生成对应的抽象语法树,并从抽象语法树中抽取四种类型的节点:方法调用节点、方法定义节点、类定义节点和import节点;然后提取方法调用节点中的调用者和被调函数,并根据方法定义节点、类定义节点和import节点过滤定义在同个项目中的调用关系,即只保留跨项目调用关系,并生成生态系统基础依赖网络G(SE)=<V
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201911020242.6/,转载请声明来源钻瓜专利网。