基于程序切片的修改影响分析工具设计与实现

 2022-01-29 06:01

论文总字数:24333字

摘 要

本文主要对修改影响分析工具的设计与实现进行了研究。修改影响分析工具是为了实现找出修改点所影响的语句、方法、类、包、对外API接口。我们利用程序切片前向切片和后向切片的特点和依赖图(依赖图是表示彼此几个对象的依赖关系的有向图),设计与实现了基于程序切片的修改分析工具。程序切片计算完后会产生的依赖图,在这个基础之上我们可以进行传统的静态依赖图的修改影响分析的计算;然后可以结合动态程序切片来完成依赖图中动态边的标记,从而完成基于执行的修改影响分析应用的开发。程序切片是一种有效分解程序的方法,能使对程序的分析更加方便明了。所以程序切片能够用来辅助对软件维护中的修改影响分析工作。

最后我们通过了几个小实例的测试,验证了我们的修改影响分析工具确实可以找出修改点所影响的语句、方法、类、包、对外API接口。

关键词:修改影响分析,程序切片,依赖图,软件维护

Design and Implementation of Tool for Change Impact Analysis

based on Program Slicing

Abstract

In this thesis,the design and implementation of tool for change impact analysis was studied.The goal of change impact analysis tool is to find the statement, method, class, package, external API interface which will be affected by the modified points.We use characteristics of forward slicing slices and backward slices and dependency graph (dependency graph shows the interdependent relationship between the several objects of a directed graph) to design and implementation our change impact analysis tool which based on program slicing. After the calculation of slicing,it will produce a dependency graph, on which basis we can do the calculation of change impact analysis of traditional static dependency graph.Then it can be combined with dynamic program slicing to complete marking dynamic edge in the dependency graph, thereby completing the implementation of the change impact analysis application based execution.Program slicing is an effective way to break down the program,which can make the program easier to analysis.Program slicing can be used to aid in understanding the program, debug, and some other major software engineering activities, so it’s very suit for change impact analysis.

Finally, we test a few small examples to verify that our change impact analysis tool can actually find the statement, method, class, package, external API interface which will be affected by the modified points.

KEY WORDS:change impact analysis,program slicing,dependency graph,software maintenance

目 录

摘 要 I

Abstract II

第一章 绪 论 1

1.1 引言 1

1.2修改影响分析 1

1.3程序切片 2

1.4本文的研究目的和主要研究内容 2

第二章 修改影响分析 3

2.1基于跟踪性的修改影响分析 3

2.2基于依赖性的修改影响分析 3

第三章 程序切片 5

3.1 程序切片的概念 5

3.1.1基于控制流图的程序切片 5

3.1.2基于图形可达的切片概念 5

3.2程序切片的分类 6

3.2.1静态切片和动态切片 6

3.2.2过程内切片和过程间切片 6

3.2.3前向切片和后向切片 6

第四章 修改影响分析工具设计与实现 8

4.1 实验设备及环境 8

4.2 修改影响分析工具概述 8

4.3 程序切片技术实现 8

4.4修改影响分析的实现 9

第五章 实验结果 12

第六章 总结与展望 20

致谢 21

参考文献(References) 22

第一章 绪 论

1.1 引言

毫无疑问,我们现在正处于以通信、计算机和软件产业为主导的信息时代,计算机科学与技术凭着惊人的增长速度,迅速占领了世界,是当之无愧的目前世界上最重要的战略性产业。这一产业的飞速发展给我们的生活工作给社会都带来了巨大的改变,其中显而易见的影响之一就是软件工程在人们的视野中越来越凸显出它的重要性。各个行业几乎都离不开软件,软件使人们之间的合作,使许多原本复杂的事情都变的简单便捷,极大的提高了效益。

但随着科技的发展,社会也在日新月异地发展着,所以软件又要不断发展来满足人们与社会的不断变化。这意味着,在软件维护的阶段,许多软件系统将经历频繁的修改。有些修改是因为用户不明确的需求,比如说不明白软件开发的具体需求,或是对软件的开发需求的描述不够精确,又或是开发人员的理解与用户的本意发生了偏差;有些修改则是因为之前的开发指导缺少正确的理论;有些则是随着软件的渐渐发展,开发复杂度不断增大。总而言之,软件的修改不可避免,并且软件在开发的各个阶段都会经历修改。我们当然希望修改带来的都是好的结果,但是现实往往是复杂的。这些修改可能会引入新的功能,但也可能会带来固定存在的缺陷以及系统适应修改之后环境的变化。虽然这些修改之后的影响,有些对用户是有利的,但同时也带来了风险,可能会使软件发生意外,或是以我们并不希望的的方式行事,从而带来了新的缺陷,破坏了已有的功能,以至于应用性能降低。风险评估也与影响分析的任务相关联。影响分析背后的动机即是识别可能被修改影响的部分。得到可能会受影响的对象的信息,制定计划去确定因为这个修改什么行动必须执行。任何必须要实施的改变将涉及现有的一些工作产品和任务的返工。因为这些可能的风险,越早的得到一个修改对软件将会带来怎样的影响是非常重要和必要的。尽管明白了对修改的影响的分析是软件维护中,也是软件工程中不可或缺的一部分,修改影响分析却不是那么容易获得,这是一个比较艰巨的任务。

同时,随着计算机科学技术的发展,软件规模也相应的越大越复杂。一个大型的软件的开发需要更为精细的操作。对这样一个大型软件的测试、调试、维护需要大量的人力、物力、财力。在这种情况下,开发人员发现程序切片能使软件的调试与测试等更加方便与高效。一个大的程序被分解成一个个较小的片段时,更容易被构造、理解和维护。程序切片作为一种分解程序的程序分析技术,成了软件开发、测试和维护领域必不可少的一个课题,它的思想的应用范围遍及软件工程的各个领域。所以我们很自然地将程序切片与修改影响分析联系在一起。程序切片是执行修改影响分析很有有吸引力的选择。比方说,对于一些小项目,静态程序切片透明地集成了软件构建和开发者IDE,能够快速,高效的对软件的修改进行假设或风险分析。因此,通过对程序的分解和错误定位以及修改影响分析的结合使用,使得对程序的调试、测试等等变得更加的方便。

剩余内容已隐藏,请支付后下载全文,论文总字数:24333字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;