[发明专利]一种基于软件路径剖析结果的修改影响分析方法有效
申请号: | 201410281529.5 | 申请日: | 2014-06-20 |
公开(公告)号: | CN104050084A | 公开(公告)日: | 2014-09-17 |
发明(设计)人: | 王璐璐;李必信;廖力;周颖 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 杨晓玲 |
地址: | 211189 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 软件 路径 剖析 结果 修改 影响 分析 方法 | ||
技术领域
本发明属于软件维护中修改影响分析的技术领域,涉及一种基于软件路径剖析结果的修改影响分析方法。
背景技术
路径是软件某次执行中控制流信息和数据流信息的完整表现形式,其中的信息含量丰富,应用价值较高,同时也较为复杂。针对路径信息的应用多种多样,所需要的信息也不尽相同,其中编译优化、程序理解等领域,需要的信息为软件在多次执行中的路径及其执行频率信息。以此为目标,出现了一系列的路径剖析(Path Profiling)技术,通过程序插装的方式来收集程序执行路径信息,获得剖析结果(Path Profile)。
目前主要的路径剖析方法有:
1996年T.Ball和J.Larus提出的Efficient Path Profiling方法。该方法能够以低廉的耗费处理一个软件中所有的非循环路径,其中的路径编码和插装方式为后续的路径剖析研究奠定了基础;
2007年K.Vaswani等人提出的Preferential Path Profiling方法。该方法能够针对用户所指定的目标软件中一部分路径进行剖析,耗费较Efficient Path Profiling更低,但是依然不能处理循环路径;
2012年B.Li和L.Wang等人提出的Profiling of All Paths方法。这一方法能够处理带有循环的软件路径,获得精确的剖析结果,效率比前两种方法略低。
耦合是软件的一项重要属性,其含义为软件内部模块之间存在的联系及其紧密程度,在软件的分析、测试和维护等过程中都需要获知。高度的耦合会对软件的维护活动产生不利影响:一个模块的修改会产生涟漪效应,其他模块也需随之修改。修改影响分析的含义为,当软件的某次修改发生时,从已知的修改模块集合自动的推算出其他需要修改或正确性检查的模块集合,从而过滤不受影响的软件部分、优先保证受影响严重的软件部分,提升软件维护过程的效率。
通过模块之间的耦合关联来分析修改带来的影响是软件维护中的常见做法。目前耦合度量一般通过静态方法进行,通过统计函数调用、消息传递和数据共享等信息来对模块耦合度进行计算。静态方法的优点在于耗费较小,只需要扫描代码而不需要软件执行;其缺点在于精度不高,因为各种静态指标对耦合程度的影响不一,例如形式相同的两个函数调用,如果一个经常执行而另一个基本不执行,那么后者对于耦合的影响较前者小很多。这种区别静态方法难以区分,动态方法可以弥补这一点。
发明内容
技术问题:本发明的目的是提供一种能够利用软件多次执行的控制流信息度量软件内部模块之间的耦合程度,具有较高精确性的基于软件剖析结果的修改影响分析方法。
技术方案:本发明的基于软件剖析结果的修改影响分析方法,包括如下步骤:
步骤1)通过路径剖析方法获知目标软件的各条执行路径px及其执行频率f(px),其中x为执行路径的编号;
步骤2)统计各执行模块的执行频率,具体方法为:将所有包含执行模块mi的路径的执行频率累加,得到执行模块mi的执行频率f(mi),其中i为执行模块的编号;
步骤3)统计所有实际执行的模块执行次序的执行频率;
a)遍历所有执行路径px,将所有执行过的模块构建为一个集合{mk},其中k为执行过的模块的编号;
b)将集合{mk}中任意两个模块进行组合,将所有的组合构建为一个集合,生成模块执行次序集合{(mi,mj)},其中(mi,mj)为模块的有序对,i和j为模块编号,且i≠j;
c)统计每一个模块执行次序(mi,mj)在执行中出现的频率f(mi,mj);
步骤4)利用下式计算所有的模块耦合度:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410281529.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种蜜饯漂烫装置
- 下一篇:一种制备氮化铝纳米管阵列的方法