首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 46 毫秒
1.
该文介绍了一种C++程序的分层切片方法。通过构造系统程序层依赖图、类层依赖图、方法层依赖图和语句层依赖图,对C++程序进行分层切片,有效地表示了C++中的单重继承、多重继承、多态和动态绑定,该方法比其它C++切片技术更清晰地描述了C++程序中类之间的各种关系和消息传递机制。  相似文献   

2.
程序切片是一种程序分析技术,它通过把程序减少到只包含与某个特定计算相关的那些语句来分析程序,过程间切片作为图形可达性问题时,需要扩展过程内切片所用的程序依赖图(PDG)成系统依赖图(SDG),然后利用两阶段图形可达性算法计算比较精确的切片,目前程序切片技术的研究以面向对象程序切片为主,文中讨论了一种合适面向对象程序的分层切片方法,并综合分层切片方法和两阶段图形可达性算法提出了一种简化的计算面向对象程序过程间切片的算法。  相似文献   

3.
程序切片作为软件理解领域的一种重要的分析技术,可以将程序分解为独立的程序线程。系统依赖图的概念及两阶段图形可达性算法的出现,则有效解决了程序切片的过程调用问题。文章介绍了程序切片的基本概念,并给出了在面向对象程序中进行静态分层切片的思想。作为分层切片思想的应用,文章给出了在一种Java程序切片工具模型JSTM(JavaSlicingToolsModel)中运用系统依赖图进行方法内切片的具体算法。  相似文献   

4.
一种分析和理解程序的方法--程序切片   总被引:21,自引:0,他引:21  
程序切片是一种分析和理解程序的技术,是通过对源程序中每个兴趣点分别计算切片来达到对程序的分析和理解。程序中某个兴趣点的程序切片不仅与该点定义和使用变量有关,而且与影响该变量的值的语名和谓词以及受该变量的值影响的语名的谓词有关。文中详细阐述了程序切片技术的研究与进展情况,并对目前存在各种程序切片方法和工具进行了比较;简单介绍了文中提出的面向对象的分层切片方法及其算法的思想;最后分析了程序切片技术目前  相似文献   

5.
程序切片的初始概念出现在1979年Mark Weiser的博士论文中。从此其他研究者们也提出一些程序切片,而这些程序切片的概念和计算方法与Weiser的比起来略有不同。一个重要的区别就是出现了动态和静态之分,即前者考虑程序的特定输入,而后者不需要。直到20世纪90年代,由于面向对象程序设计语言的兴起,那些基于传统的结构化语言的程序切片概念和计算方法又不能直接用于  相似文献   

6.
一种基于分层切片模型思想的源程序信息分析方案   总被引:2,自引:0,他引:2  
作为软件理解的手段之一,程序切片技术通过寻找程序内部的相关性来分解程序,再通过对分解所得程序切片的分析达到对整个程序的分析和理解。程序切片算法必须建立在对源程序信息正确、完整分析的基础上。详细地描述了一种基于分层切片模型思想的程序信息提取方案。该方案已成功运用到一种Java程序切片工具模型JSTM(Java Slicing Tools Model)中。  相似文献   

7.
JAVA语言是目前一种主要的面向对象编程语言,由于JAVA语言复杂的结构,使得对JAVA程序进行程序切片非常困难.本文提出一种层次的构造JAVA系统依赖图的算法,基于JAVA程序本身的层次结构,自顶向下构造系统依赖图,然后基于构造的系统依赖图,用一种改进的两阶段算法得到JAVA程序切片.  相似文献   

8.
一种基于程序切片技术的软件测试方法   总被引:4,自引:0,他引:4  
1 引言软件测试是人们发现、纠正、预防软件错误以及完善软件功能的重要手段。软件测试的目的就是为了发现程序中的错误。对于传统程序设计语言书写的软件,软件测试人员普遍接受三个级别的测试:单元测试、集成测试和系统测试。无论在哪个级别上进行测试,其测试过程均为输入测试数据、处理和验证输出结果三个步骤。目前面向对象软件开发技术发展迅速,但面向对象软件测试技术的研究还相对薄弱。例如,对面向对象的程序测试应当分为多少级尚未达成共识。基于结构的传统集成策略并不适于面向对象的程序。这是因为面向对象的程序的执行实际上是执行一个由消息连接起来的方法序列,而这个方法序列往往是由外部事件驱动的,在面向对象语言中,虽然信息隐藏和封装使得类具有较好的独立性,有利于提高软件的易测试性和保证软件的质量,但是,这些机制与继承机制和  相似文献   

9.
一个分层切片工具模型   总被引:1,自引:0,他引:1  
谭毅  朱平 《计算机科学》2001,28(12):93-96
程序切片技术在程序调试、测试、程序理解、逆向工程和软件维护等方面有着广泛的应用。程序切片是一组可能影响到在程序中某个点i的某个变量v的值的语句或谓词的集合。而(v,i)被称作切片准则。这里v也可以是一组变量。自从Mark Weiser提出切片的概念,随着程序依赖图、系统依赖图的出现,传统程序的切片技术已走向成熟。1994年以来,面向对象的程序切片逐渐成为研究的主流。A.Krishnaswamy利用一种面向对象的程序依赖图(OPDG,Object-Ori-ented Program Dependence Graph)来计算面向对象程序的语句切片,但是OPDG不能表示动态绑定等问题。D.Liang,L.D.Larsen和M.J.Harrold扩展系统依赖图来计算面向对象程序的切片,在一定程度上解决了动态绑定和对象参数的问题。这些切片方法都是基于依赖图的,而构造OO程序的依赖图是一件非常复杂的工作,而且构造过程中容易出错,这会导致切片的结果不正确,造成前功尽弃。李必信提出了分层切片的思想,利用逐步求精的方法来得到面向对象程序的切片。  相似文献   

10.
戎玫  何志学  张广泉 《计算机应用》2008,28(5):1300-1302
为了缩减程序验证的状态空间,针对面向对象程序的并发机制,定义了程序中存在的依赖关系,提出一种从待验证的线性时序逻辑(LTL)性质中提取出切片准则对程序进行切片的方法。切片后的程序与原程序对待验证的LTL性质具有相同的可满足性,而其对应的状态转换图中的状态个数明显减少。  相似文献   

11.
如何平衡面向对象数据库(OODB)索引的检索性能、维护开销、实现复杂度已经成为一个影响OODB性能的关键问题。提出一种OODB继承层次索引配置方法。通过开销模型评估各种索引配置的检索开销、存储开销、更新开销,根据数据库真实使用情况选择最优索引配置。通过实验,验证这种方法的准确性,并且同其他常见索引策略作对比。结果表明该方法可以为OODB提供性能最优的索引方案。  相似文献   

12.
面向对象软件回归测试技术研究   总被引:24,自引:0,他引:24  
回归测试的目标之一是在程序修改后,只对进行修改的部分重新测试,从而达到与完全测试相同的测试覆盖.利用数据流或部分数据流技术,对结构化程序进行回归测试的技术已相继提出.随着面向对象方法的逐渐成熟,对面向对象软件测试技术的研究有了迫切的需求.通过分析对象系统的特性,定义了对象之间的依赖关系,通过这个依赖关系,导出测试对象的方法序列,并应用程序切片技术,标识那些受到程序修改影响的测试用例,只有这些测试用例才需要在回归测试中重新执行.最后给出了一完整的对象系统的回归测试解决方案.  相似文献   

13.
Debugging large and complex software systems requires significant effort since it is very difficult to localize and identify faults. Program slicing has been proposed to efficiently localize faults in the program. Despite the fact that a number of debug systems using program slicing, have been developed, the usefulness of this method to fault localization has not been sufficiently evaluated. This paper aims to experimentally evaluate the usefulness of the program slicing method to fault localization. In order to conduct the experiment, we first developed a debug tool based on program slicing, after which two experimental projects were conducted, in which subjects (debuggers) were divided into two groups. A program that includes several faults is given to each subject of the group. Each subject in Group 1 localizes the faults by using the slicing-based method, whereas in Group 2 each subject localizes the faults by using the conventional debugger-based method. Finally, the effectiveness of program slicing is analyzed by comparing the data collected from both groups. As the results of these experiments, we confirm that the program slicing method is indeed useful to localize program faults.  相似文献   

14.
面向对象程序设计中的对象引用,必须指明相应的层次关系,就Visual Foxpro中对象的层次结构、引用方式、对象属性的设置以及对象的调用方法作了分析论述,这对程序中代码段的正确书写与执行均有着十分重要的作用。  相似文献   

15.
Program slicing is a technique for simplifying programs by focusing on selected aspects of their behavior.Current mainstream static slicing methods operate on dependence graph PDG (program dependence graph) or SDG (system dependence graph),but these friendly graph representations may be a bit expensive for some users.In this paper we attempt to study a light-weight approach of static program slicing,called Symbolic Program Slicing (SymPas),which works as a dataflow analysis on LLVM (low-level virtual machine).In our SymPas approach,slices are stored in symbolic forms,not in procedures being re-analyzed (cf.procedure summaries).Instead of re-analyzing a procedure multiple times to find its slices for each callling context,we calculate a single symbolic slice which can be instantiated at call sites avoiding re-analysis;SymPas is implemented with LLVM to perform slicing on LLVM intermediate representation (IR).For comparison,we systematically adapt IFDS (interprocedural finite distributive subset) analysis and the SDG-based slicing method (SDG-IFDS) to statically slice IR programs.Evaluated on open-source and benchmark programs,our backward SymPas shows a factor-of-6 reduction in time cost and a factor-of-4 reduction in space cost,compared with backward SDG-IFDS,thus being more efficient.In addition,the result shows that after studying slices from 66 programs,ranging up to 336800 IR instructions in size,SymPas is highly size-scalable.  相似文献   

16.
一种用于评估多核处理器存储层次性能的模型,使用排队论建模,求解速度快,可以在设计早期给出不同配置参数对处理器整体性能的影响,从而调整存储层次结构,优化设计.  相似文献   

17.
近年来,已经有不少面向对象技术运用于专家系统的研究。本文提出一种新的面向对象专家系统的设计方法。首先介绍系统总体结构,给出知识表示模型和推理机制,并且引入RMG的概念,进一步提出运用RMG完成推理过程的算法。最后把提出的方法应用于中西医结合糖尿病诊疗专家系统的开发。实践证明此方法是有效的。  相似文献   

18.
一种基于模块单子语义的动态程序切片方法   总被引:2,自引:0,他引:2  
提出一种基于程序模块单子语义的新动态切片方法--模块单子动态切片.首先通过单子转换器,将切片这一类计算抽象成独立于具体语言的实体:切片单子转换器.然后,将该切片转换器作为模块加载到实际程序中,并给出相应的模块单子动态切片算法.据此,可直接在抽象语法结构上计算动态切片,不必记录程序执行历史;相应单子切片器也无需显式地构造诸如依赖图的中间结构.这种模块化抽象机制使得文中的动态切片算法具有很强的可扩展性和重用性.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号