程序动态切片技术研究

上传人:ldj****22 文档编号:30969045 上传时间:2018-02-03 格式:DOC 页数:64 大小:1.01MB
返回 下载 相关 举报
程序动态切片技术研究_第1页
第1页 / 共64页
程序动态切片技术研究_第2页
第2页 / 共64页
程序动态切片技术研究_第3页
第3页 / 共64页
程序动态切片技术研究_第4页
第4页 / 共64页
程序动态切片技术研究_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《程序动态切片技术研究》由会员分享,可在线阅读,更多相关《程序动态切片技术研究(64页珍藏版)》请在金锄头文库上搜索。

1、毕 业 设 计(论 文)程序动态切片技术研究专业年级: 07 级计算机 2 班 学 号: 0706010234 姓 名: 惠军绪 指导教师: 邹 阳 评 阅 人: 2011 年 6 月中国 南京河海大学毕业论文I摘 要程序切片技术是一种重要的程序分析技术,广泛应用于程序的调试、测试与维护等领域。程序切片主要通过寻找程序内部的相关特性,从而分解程序,然后对分解所得的程序切片进行分析研究,以此达到对整个程序理解和认识的目的。而动态程序切片主要是指在某个给定输入的条件下,源程序执行路径上所有对程序某条语句或兴趣点上的变量有影响的语句。面向对象技术仍是目前软件开发方法的主流,其中封装、继承、多态、并发

2、等特征都为程序的理解与分析提出了新的问题。本文在程序的分析评测中引入使用基于依赖图的程序切片技术,实现其切片功能,解决在程序理解、程序复杂性度量、程序转换和评测中遇到的问题。本文采用一种基于依赖图的面向对象的动态程序切片方法,核心算法是以静态程序的程序依赖图为基础,先从程序依赖图里提取出对应给定执行历史的数据依赖节点和控制依赖节点,使用图可达性算法,计算得出可达语句集,从而获得所需的动态切片,对程序进行理解分析。【关键词】:数据依赖、控制依赖、程序依赖图、程序切片、动态切片河海大学毕业论文IIAbstractProgram slicing is an important program ana

3、lysis techniques, widely used in debugging, testing and maintenance and other fields. Program slicing within the main program by finding the relevant features to break down program, and then proceeds to the decomposition of the analysis of program slicing, in order to achieve the overall objective o

4、f understanding and awareness programs. The dynamic program slice is the main input in a given condition, the source of all the program execution path of a statement or point of interest on the variable impact statement.Object-oriented software development method is still the mainstream, including e

5、ncapsulation, inheritance, polymorphism, concurrency and other features are the understanding and analysis of the program raised new problems. In this paper, the introduction of evaluation procedures for the analysis of dependence graph-based program slicing techniques to achieve its slice function

6、to solve the program comprehension, program complexity metrics, program transformation and evaluation of problems encountered.This paper, a dependency graph based on dynamic program slicing of object-oriented approach, the core algorithm is the program that rely on a static picture shows the base, s

7、tarting with the program dependence graph to extract the corresponding implementation of the history of a given node and the control dependence data dependence Nodes, using the graph accessibility algorithm calculated statements set up to obtain the necessary dynamic slicing, program understanding o

8、f the analysis.【Key words】 :DD,CD,PDG,Program Slicing,Dynamic Slicing河海大学毕业论文III目 录摘 要 .IAbstract.II第一章 绪 论 .1第一节 课题研究目的和意义 .1第二节 研究内容和本文结构 .1第二章 程序切片技术 .3第一节 程序切片技术的概述 .3第二节 切片技术的应用 .5第三章 动态程序切片技术 .7第一节 动态切片法产生的背景及现有算法 .7第二节 动态程序切片实现算法 .8第四章 动态程序切片系统设计 .14第一节 系统概要设计 .14第二节 详细设计 .16第三节 实例分析 .24第五章 系

9、统的实现环境和运行结果的分析 .29第一节 开发与运行环境 .29第二节 系统输出 .29第六章 结束语 .32第一节 本文的主要工作 .32第二节 展望 .32致谢 .33参考文献 .34附录 .35附录 A 核心代码 .35附录 B 英文原文 .41附录 C 英文翻译 .49附录 D 河海大学毕业设计(论文)中期进展报告 .56河海大学毕业论文1第一章 绪 论第一节 课题研究目的和意义软件危机曾经是软件界甚至整个计算机界最热门的话题为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中存在故障,正是这些故障导致了软件

10、开发在成本、进度和质量上的失控。故障是软件的属性,而且是无法改变的,因为软件是由人来编写的,所有由人做的工作都不会是完美无缺的。软件测试就是“为了发现故障而执行程序的过程” ,其根本目的就是尽可能地消除软件中的故障,使得软件在正式投入使用之前,软件中的故障密度达到尽可能低或者可以接受的程度。软件测试是软件生命周期中的重要一环,在当前的软件开发过程中发挥着越来越重要的作用。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的 40%以上;在软件开发的总成本中,用在测试上的开销要占到 50%左右。软件测试的实质是根据软件开发各阶段的规格说明和程序的内部结构精心选取一批测试数据,

11、形成测试用例,并用这些测试用例去驱动被测程序,观察程序的执行结果,验证实际运行结果与期望结果是否一致,然后做相应的调整。可见,测试数据生成是软件测试的核心与关键。白盒测试(结构测试)一般是根据被测程序的内部结构设计测试用例,具有很强的理论基础。这种结构测试要求对被测程序的结构特性做到一定程度的覆盖。路径覆盖是一种相对比较强的覆盖标准,要求生成足够多的测试数据,尽可能覆盖所有程序路径。但是,实际中往往会出现这样的情况:多个测试用例执行的是同一条程序路径,而有的程序路径则从未被执行过。因此,探讨一种有效的手段,以辅助基于路径的测试数据生成,有着很现实的意义。第二节 研究内容和本文结构本文在理解 M.Weiser 的切片算法的基础上,根据 H.Agrawai 等人提出的基于静态程序依赖图的算法,编写程序,最终实现切片系统。并对程序切片进行河海大学毕业论文2测试分析。本文的第一章简要介绍本课题研究的背景、意义以及关于切片系统的实现目标;第二章主要介绍程序切片的技术概述和应用发展;第三章则是动态程序切片的具体算法设计;第四章关于动态程序切片系统设计的介绍;第五章则是本系统的开发环境和运行结果分析;第六章则是对本文的总结以及展望。河海大学毕业论文3第二章 程序切片技术第一节 程序切片技术的概述程序切片技术是 M.Weiser 在他的 1979 年的博士论文中首次提出的一种程序分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号