[发明专利]建立不同版本程序类集合映射关系的方法有效
申请号: | 201911138413.5 | 申请日: | 2019-11-20 |
公开(公告)号: | CN110908705B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 陈星;陈晓娜;胡传淑敏;郭莹楠;陈艳 | 申请(专利权)人: | 福州大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 丘鸿超;蔡学俊 |
地址: | 350108 福建省福州市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 建立 不同 版本 程序 集合 映射 关系 方法 | ||
本发明提出一种建立不同版本程序类集合映射关系的方法,首先,确定类相似度和方法相似度的评判因素;其次从源代码逆向工程建立类图;最后通过一系列的算法分析(包括计算初步类相似度、方法相似度以及迭代确立方法和类的最终相似度)建立不同版本间程序的类集合中类的“一对一”、“一对多”、“多对一”的映射关系以及类中方法的“一对一”映射。能够解决由于人工阅读源代码等方式寻找不同版本系统类集合间的映射关系难以实施的问题,直观反映系统的体系结构,增加了代码的可读性和可维护性,降低软件开发人员和维护人员理解不同版本间系统的难度,提供了一个在较高层次观察不同系统的方法。
技术领域
本发明属于计算机软件技术领域,尤其涉及一种建立不同版本程序,尤其是Java程序的类集合映射关系的方法。
背景技术
面向对象技术自从提出以来就成为了研究的热点。迄今为止,面向对象已经逐渐渗透到了软件开发的各个层次和方面,出现了包括面向对象分析、设计和程序设计等面向对象的方法。软件演化是指软件进行渐变并达到所希望形态的过程。软件演化对延长软件寿命起着重要作用,软件程序经过演化后效率会被提高,缺陷将得到修正。软件维护和演化是不可避免的,但有时候项目人员并不只想要获得演化后的程序,更多地,他们渴望获取的是演化后不同版本程序的差异。对软件的演化分析可以帮助对不同版本程序差异的全面理解,而对各个版本的程序的全面理解和对不同版本程序差异的全面理解是程序维护的基础,然而演化后的程序由于结构复杂且联结,代码量巨大,通过阅读源代码的方式来分析程序演化信息的方式是艰难而不理智的行为。
虽然面向对象技术使得程序的可维护性有了显著的提高,但由于目前对不同版本的程序进行演化分析需要借助于不同版本的程序的开发文档或者变更记录,而规范化文档的欠缺、不完整以及不一致是一个常见的问题。因此,如何在此类文档欠缺的情况下能够从不同版本的软件程序中提取每个版本的高层结构信息,接着根据高层结构信息建立不同版本软件程序之间的映射关系,并据此得到不同版本软件程序之间的差异,从而发掘软件程序高层的演化信息成为了软件演化分析过程的一个棘手的问题。
发明内容
鉴于现有技术的不足,本发明所要解决的技术问题是提供一种建立不同版本程序,尤其是Java程序的类集合映射关系的方法,在于给定一个Java程序的演化前后两个版本源代码,能得到新旧版本Java程序的类集合中类的“一对一”、“一对多”、“多对一”的映射关系以及方法集合中方法的“一对一”映射关系。
在本发明方案中,首先,确定类相似度和方法相似度的评判因素;其次从源代码逆向工程建立类图,例如可以通过代码分析工具soot对Java源代码进行分析,获取分析后的产物,建立不同版本Java程序的类集合中类的模型并生成类图;最后通过一系列的算法分析(包括计算初步类相似度、方法相似度以及迭代确立方法和类的最终相似度)建立不同版本间Java程序的类集合中类的“一对一”、“一对多”、“多对一”的映射关系以及类中方法的“一对一”映射。
其具体如下:
一种建立不同版本程序类集合映射关系的方法,其特征在于,包括以下步骤:
步骤S1:获取同一程序两个不同版本的源代码;
步骤S2:根据步骤1的两个不同版本的源代码通过代码分析获取数据结构信息和类与类之间的关系,以及类中方法与方法间的调用关系,生成类图;
步骤S3:计算初步类相似度:通过步骤S2获得的信息建立两个版本程序类集合的模型信息,以其中一个版本程序的类集合为类集合A,通过预定义的类相似度评判因素计算相似度,确定被映射版本程序类集合B中每个类在类相似度评判因素下对类集合A每个类的相似度;
步骤S4:计算方法相似度:通过步骤S2获得的信息建立两个版本方法集合的模型信息,以其中一个版本程序的方法集合为方法集合A,通过预定义的方法相似度评判因素计算相似度,确定被映射版本程序方法集合B中每个方法在方法相似度评判因素下对方法集合A每个方法的相似度;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911138413.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种页岩油气储层压裂用无水泡沫发生器及其应用
- 下一篇:一种系泊式海浪发电机