[发明专利]一种面向软件演化的代码可兼容性评估方法有效
申请号: | 201610165972.5 | 申请日: | 2016-03-22 |
公开(公告)号: | CN105843614B | 公开(公告)日: | 2019-03-05 |
发明(设计)人: | 李必信;苗意盎;廖力 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F11/36 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 杨晓玲 |
地址: | 211189 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向软件演化的代码可兼容性评估方法,对演化原因进行分析与定位,包括以下步骤:根据源代码构造相应的抽象语法树;在抽象语法树上提取类和接口的属性信息,构造出代码的类模型;基于二进制兼容的规则对代码进行演化类型的区分,对代码的可兼容性进行计算,并将评估结果表示出来;该技术可以根据不兼容性演化发生的位置,报告出导致代码可兼容性变化的原因。该发明的评估方法不但可以自动分析源代码,指出程序中发生不兼容性演化的位置,改变了以往代码分发时发生不兼容性问题而需手动查找带来的主观性和效率问题,为自动化评估代码可兼容性打下良好的基础。 | ||
搜索关键词: | 一种 面向 软件 演化 代码 兼容性 评估 方法 | ||
【主权项】:
1.一种面向软件演化的代码可兼容性评估方法,其特征在于,该方法包括以下步骤:步骤一,根据程序源代码的历史版本与目标版本中的每个类构造为抽象语法树;步骤二,从所述抽象语法树中的org.eclipse.jdt.core.dom.TypeDeclaration节点、org.eclipse.jdt.core.dom.FieldDeclaration节点和org. eclipse.jdt.core.dom.MethodDeclaration节点中获取类和接口的的属性信息,并记录到类的数据结构中;步骤三,基于二进制兼容中的不兼容性演化规则,遍历所述步骤二最终获取的类的数据结构,得到程序源代码的历史版本与目标版本的可兼容性集合,进而查看目标版本中类及方法是否兼容历史版本的类及方法,将不兼容的类及方法记录进不兼容性集合,所述基于二进制兼容中的不兼容性演化规则为:规则1:类的声明由非abstract类演化为abstract类;规则2:类的声明由非final类演化为final类;规则3:类的声明由public类演化为非public类;规则4:类体中非private函数或方法的删除;规则5:类体中函数或方法的声明由默认演化为private;规则6:类体中函数或方法的声明由protected演化为默认或private访问;规则7:类体中函数或方法的声明由public访问演化为protected、默认、或private访问;规则8:类体中函数或方法的声明由非abstract演化为abstract;规则9:类体中函数或方法的声明由非final演化为final;规则10:类体中函数或方法的声明为private和static演化为非static;规则11:类体中函数或方法的参数类型演化为其他非父类类型;规则12:类体中函数或方法的返回类型演化为其他非子类类型;规则13:接口的声明由public演化为非public;规则14:接口的函数或方法的声明不兼容演化规则与类体中函数或方法的声明相同;步骤四,统计可兼容性集合和不兼容性集合中的可兼容性类及方法、不可兼容性类及方法,然后使用代码可兼容性评估模型进行评估,得到代码可兼容性。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610165972.5/,转载请声明来源钻瓜专利网。
- 上一篇:低温样品运输装置
- 下一篇:一种胰腺移植手术用胰岛素存储装置