[发明专利]一种面向嵌入式软件的软件分析集成方法有效
申请号: | 201210081950.2 | 申请日: | 2012-03-23 |
公开(公告)号: | CN102662661A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 陈家熙;罗笑南;孟思明;罗育泽 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510006 广东省广州市番禺*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 嵌入式 软件 分析 集成 方法 | ||
1.一种面向嵌入式软件的软件分析集成方法,其特征在于,该方法包括软件分析方法集成模块、分析方法执行模块与分析方法结果追踪模块;采用基于Eclipse的软件分析方法集成机制,并在集成的过程中采用基于Eclipse的软件制品输入适配方法,具体的流程为:
Step1:根据分析方法独一无二标识,在Eclipse平台提供的插件注册库中得到平台对于该分析方法的描述(IPluginDescripter),这些描述包括分析方法的安装地址,分析方法的名字,分析方法在平台上的扩展点等;如果该分析方法不存在,则返回;
Step2:根据所得到的分析方法扩展点的描述(IPluginDescripter)得到分析方法的扩展点集合;
Step3:利用Eclipse平台提供的ISelection,获得实际的输入制品,并根据实际的输入制品与分析方法所要求的制品之间的差异,调用相应的适配方法,并最终转换成分析方法所要求的制品的集合,提供给分析方法;
Step4:根据Step2得到的分析方法的扩展点的集合,得到其中对于org.eclipse.ui.popupMenus扩展点的扩展,因为分析方法只有通过扩展该扩展点才能在Eclipse中右击相应的制品并启动分析方法;
Step5:对于Step4中得到的结果,获得其中的配置点的集合(IConfigurationElement[]),因为对于每个扩展org.eclipse.ui.popupMenus的元素来说,可以存在多个配置项,这些配置项声明了该扩展点的输入类型,可以根据该输入类型对实际输入的软件制品进行输入适配;
Step6:从上一步的配置点中得到相应的分析方法的函数集合,函数集合是指标签是由class声明的集合,由于一个分析方法可能有若干个不同类型的启动函数,因此本工具需要将其列出来由分析工具集成人员来选择正确的分析方法启动函数;
Step7:由集成人员选出正确的启动函数后,本集成工具会将这些启动函数保存成为一个启动函数列表,在真正执行的时候供分析方法使用人员进行调用;
Step8:在分析方法真正执行时利用回调方式启动该分析工具,并从Step3中得到与该分析方法相匹配的输入制品,分析方法对该制品进行分析,得到相应的分析结果。
2.如权利要求1所述的方法,其特征在于,基于Eclipse的输入适配方法的流程为:对于JAVA模型,输入制品特定于一个JAVA项目,需要从JAVA模型的根节点出发进行层层解析,得到不同的制品集合,提供给分析方法使用,具体的解析步骤如下所示:
Step11:由Java模型解析成为每个包路径的根节点,得到这些根节点的集合;
Step12:将上述得到的包路径根节点进一步向下转换得到包的集合;
Step13:将上述得到的包的集合再进一步转换成为编译单元的集合;
而由于在Eclipse中是分别在org.eclipse.core.resources与org.eclipse.jdt.core两种自然结构来描述相类似的制品的,因此对于输入的IJavaProject,转换为IProject,并进一步得到其它制品的集合,这种情况下的适配方法如下:
Step21:把IJavaProject转换得到IProject;
Step22:由得到IProject得到其下的IFolder的集合;
Step23:由所得到的IFolder得到其中的IFile的集合。
3.如权利要求1所述的方法,其特征在于,Eclipse把制品类型定义成为抽象语法树上相对应的节点,根据这些节点的位置获得与该节点相对应的软件制品,从而获得该制品的集合,其具体的解析过程为:
a、把java源文件中的java源代码保存成为字符数组;
b、通过抽象语法树的解析程序解析第1步所得到的字符数组,把字符数组解析成所对应的抽象语法树,而这棵抽象语法树上的每个节点代表java语言中特定制品;
c、抽象语法树根据节点是否需要决定是否要把与该节点相关的其他信息通过捆绑(binding)的方式加载进来;
d、如果用户修改了语法树上的节点,可以通过直接修改语法树或者通过重构语法树来实现;
e、如果语法树有修改,则需要把修改的地方重新写回语法树。
4.如权利要求1所述的方法,其特征在于,Eclipse平台对于不同软件制品已经有比较明确的分层与定义,这些分层与定义的方式也是严格按照JAVA面向对象思想来实现的,所以Eclipse平台下不同的软件制品在UML模型中也能找到其所相对应的表示方法,不同的软件制品与UML模型元素之间是一一对应的关系,把分析结果附着到表示该制品的模型元素需要以下过程:
Step1:把分析人员指定分析的软件制品通过逆向工程转换到该制品相对应的UML模型元素;
Step2:将UML模型元素与该模型元素所代表的实际的软件制品二者建立映射关系;
Step3:把分析结果的保存路径与分析方法的输入制品二者的建立匹配关系,建立输入适配后分析方法的输入制品与分析结果保存文件之间的匹配关系,保存于resultMap.xml文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210081950.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种耐磨涂覆型太阳能电池背板
- 下一篇:一种移动设备收费阻错的方法与装置