发明名称 一种逆向提取Java软件程序类图的方法
摘要 本发明属于一种软件测试技术领域,特别涉及一种软件详细设计功能测试及提取软件程序类图的方法。其技术方案是:一种逆向提取Java软件程序类图的方法,包括步骤:A.静态分析程序类图;B.选定骨干类作为抽象的基准点,搜索骨干类之间的路径;C.对每一条路径,从路径的任意一端开始,对存在具有类‑关系‑类‑关系‑类这样性质的子路径与本发明列举的57条类图抽象规则相匹配的子路径进行抽象;D.若出现两个骨干类之间抽象后存在多种关系时,按规定的优先级抽象后的路径进行合并,得到抽象类图。本发明提供了一种逆向提取Java程序类图的方法,达到软件的代码实现与其详细设计之间的一致性验证的目的。
申请公布号 CN103593222B 申请公布日期 2016.08.10
申请号 CN201310451992.5 申请日期 2013.09.29
申请人 中国人民解放军第二炮兵装备研究院科研试验中心 发明人 于莉莉;张幼春;卢玲;高智杰;祝宇;邱薇;刘晓杰;吕益楠
分类号 G06F9/45(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 中国人民解放军火箭军专利服务中心 11040 代理人 肖进
主权项 一种逆向提取Java软件程序类图的方法,其特征是包括以下步骤:A.基于JDT的API接口,分析.class文件,获取Java程序的静态信息,提取类之间的继承、关联、聚合、依赖关系以及类与接口之间实现、关联、聚合、依赖关系;B.选定体现主要流程的类作为骨干类,并将其作为抽象的基准点,搜索任意两个骨干类之间的路径;C.对B步骤得到的每一条路径,从路径的任意一端开始,检查是否存在具有类‑关系‑类‑关系‑类这样性质的子路径与本步骤列举的57条类图抽象规则相匹配,若匹配,则用抽象规则的结果代替这条子路径;若不匹配,则跳过当前的类结点和关系结点,从下一个类结点开始遍历;直到不存在可以转换的路径,除此之外,骨干类不能被抽象掉;类图抽象规则包括:<img file="FSB0000151549370000011.GIF" wi="1655" he="1839" /><img file="FSB0000151549370000021.GIF" wi="1602" he="2869" /><img file="FSB0000151549370000031.GIF" wi="1559" he="2924" /><img file="FSB0000151549370000041.GIF" wi="1613" he="2896" /><img file="FSB0000151549370000051.GIF" wi="1452" he="1208" />其中,“‑”表示分隔符,Class表示类,两个类之间为类存在的关系,共4种关系:Generalization为泛化关系;Dependency为依赖关系;Association为关联关系,Aggregation为聚合关系;Left表示后一类位于前一类的左侧;Right表示后一类位于前一类的右侧;<img file="FSB0000151549370000052.GIF" wi="132" he="47" />表示推出符号,由<img file="FSB0000151549370000053.GIF" wi="119" he="46" />前描述的关系推出<img file="FSB0000151549370000054.GIF" wi="120" he="56" />后描述的关系;D.若出现两个骨干类之间抽象后存在多种关系时,按照泛化关系优先于聚合关系优先于双向关联关系优先于单向关联关系优先于依赖关系的优先级确定保留哪个关系,对抽象后的路径进行合并,得到抽象类图。
地址 100085 北京市清河大楼子12