[发明专利]一种逆向提取Java软件程序类图的方法有效
| 申请号: | 201310451992.5 | 申请日: | 2013-09-29 |
| 公开(公告)号: | CN103593222A | 公开(公告)日: | 2014-02-19 |
| 发明(设计)人: | 于莉莉;张幼春;卢玲;高智杰;祝宇;邱薇;刘晓杰;吕益楠 | 申请(专利权)人: | 中国人民解放军第二炮兵装备研究院科研试验中心 |
| 主分类号: | G06F9/45 | 分类号: | G06F9/45 |
| 代理公司: | 中国人民解放军第二炮兵专利服务中心 11040 | 代理人: | 肖进 |
| 地址: | 10008*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 逆向 提取 java 软件 程序 方法 | ||
技术领域
本发明属于一种软件测试技术领域,特别涉及一种软件详细设计功能测试及提取软件程序类图的方法。
背景技术
目前的软件审查工具,主要侧重于对源代码的自动分析、对代码缺陷的自动检测,某种程度上忽视了程序是否符合软件详细设计的功能模块划分,程序结构是否合理的检验,且对软件详细设计及其编程实现的审查,完全依赖于有经验的软件开发人员,尚未看到可用来检查程序结构是否符合设计要求的有效方法和支持工具。例如,为了建立代码与详细设计之间的对应关系,需要人工在程序代码中标注各段代码与软件详细设计文档中的定义的功能点之间的对应关系。尽管在模型驱动的软件开发过程中,软件的详细设计可以直接转换成程序代码,但是程序代码在软件开发的多次迭代中可能发生变化,因此,对软件的详细设计与源代码之间进行审查依然是必要的,以确认软件实现是否符合设计要求。
由于在软件开发过程中,类与类之间关系的实现有多种方式,因此会存在这样的现象:软件设计模型中类A和类B之间存在着关联关系或者是依赖关系,而程序实现时类A和类B不存在直接的关系,而用其他类来实现类A与类B之间的关系。也就是说,设计类图与程序类图之间会相差很大,为了达到对软件的详细设计与源代码之间进行审查,需要一种提取抽象程序类图的方法,以得到更简化、更高抽象层次的程序类图。
发明内容
本发明的目的是:提供一种逆向提取Java程序类图的方法,以达到软件的代码实现与其详细设计之间的一致性验证。
本发明的技术方案是:一种逆向提取Java软件程序类图的方法,其特征是包括以下步骤:
A.基于JDT的API接口,分析.class文件,获取Java程序的静态信息,提取类之间的继承、关联、聚合、依赖关系以及类与接口之间实现、关联、聚合、依赖关系;
B.选定体现主要流程的类作为骨干类,并将其作为抽象的基准点,搜索任意两个骨干类之间的路径;
C.对B步骤得到的每一条路径,从路径的任意一端开始,检查是否存在具有类-关系-类-关系-类这样性质的子路径与本步骤列举的57条类图抽象规则相匹配,若匹配,则用抽象规则的结果代替这条子路径;若不匹配,则跳过当前的类结点和关系结点,从下一个类结点开始遍历;直到不存在可以转换的路径,除此之外,骨干类不能被抽象掉;类图抽象规则包括:
其中,“-”表示分隔符,Class表示类,两个类之间为类存在的关系,共4种关系:Generalization为泛化关系;Dependency为依赖关系;Association为关联关系,Aggregation为聚合关系;Left表示后一类位于前一类的左侧;Right表示后一类位于前一类的右侧;表示推出符号,由前描述的关系推出后描述的关系;
本步骤列举的57条规则是本发明能够逆向提取Java软件程序类图的关键;
D.若出现两个骨干类之间抽象后存在多种关系时,按照泛化关系优先于聚合关系优先于双向关联关系优先于单向关联关系优先于依赖关系的优先级确定保留哪个关系,对抽象后的路径进行合并,得到抽象类图。
本发明通过对类图的抽象,来舍弃程序类图中具体细节,以突出其重要的结构特征,达到软件的代码实现与其详细设计之间的一致性验证的目的;本发明还可以在详细设计文档缺失的情况下,或者当软件设计者面对一个包含很多实现细节而难以迅速发现软件的关键设计要素和有这些要素所构成的软件结构情况时,为软件设计者提供一种准确理解程序的途径。
具体实施方式
实施例1:一种逆向提取Java软件程序类图的方法,其特征是包括以下步骤:
A.基于JDT的API接口,分析.class文件,获取Java程序的静态信息,提取类之间的继承、关联、聚合、依赖关系以及类与接口之间实现、关联、聚合、依赖关系;
B.选定体现主要流程的类作为骨干类,并将其作为抽象的基准点,搜索任意两个骨干类之间的路径;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军第二炮兵装备研究院科研试验中心,未经中国人民解放军第二炮兵装备研究院科研试验中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310451992.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种粘结剂及其制备方法
- 下一篇:具有三烷氧基甲硅烷基烷基的鎓盐





