程序类论文范文数据库,与程序切片技术在程序理解中的应用相关论文的格式

时间:2020-07-05 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

本论文是一篇程序类论文的格式,关于程序切片技术在程序理解中的应用相关毕业论文模板范文。免费优秀的关于程序及切片及软件工程方面论文范文资料,适合程序论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

摘 要:随着计算机软件技术的飞速发展,软件系统的规模变得越来越大,软件的维护工作也随之越来越复杂.绝大部分软件开发的主要精力都消耗在维护或者扩展原有的系统上面,而不是重新开发新系统.因此,对于软件系统的维护问题变得极其重要,对于遗留软件的维护、理解在软件开发过程中已经变得越来越重要.分别介绍了程序理解的模型及工具,并结合程序切片技术探讨程序切片在程序理解中的应用.

关 键 词:程序切片;程序理解;逆向工程

中图分类号:TP311文献标识码:A文章编号:2095-2163(2013)02-0097-03

0引言

大多数软件系统在开发过后都会经历一个相当长的维护过程.在这个过程中,软件维护人员常常需要根据已知测试结果和反馈得来的BUG进行各类纠错,并且还可能会需要进行修改以致重新设计.实践经验表明,软件开发的绝大部分精力都耗费在对原有系统的维护上面,而不是用于新系统的重新开发.专家估计用于维护的资源和时间已经占到总开发的50%到70%[1],因而需要对其给予高度重视,并对其实现有效调控.

程序理解是从计算机程序中获取有效知识信息的一个重要过程.这些知识信息可以用于程序排错、完善程序、重用程序以及整理文档等很多方面的工作[2].简单来讲,程序理解就是通过特定的方法和技术来得到一个认知,就是这个程序是“做什么”的以及是“如何做”的.如果对其进行完整、周密的定义,可以将程序理解看作如下的一个任务:以软件维护、升级和再实践为目的,在不同的抽象层次上建立有关基本软件的概念模型,包括从程序代码本身的模型到基本应用领域的模型.基于以上定义,程序理解的基础是要建立软件产品间的直接对应关系,维护人员借助这些对应关系,就可以根据自身拥有的软件系统的相关知识,快速定位到与其存在关联的一系列软件产品,比如,找到实现相应业务逻辑的可执行代码,或者在看到代码以后,了解到这些代码可实现的具体业务逻辑,又或是根据一个业务逻辑,找到与其有关的特定业务逻辑.


怎么写程序本科论文
播放:29802次 评论:6367人

但是,程序理解是一个复杂的任务,因其涉及对软件系统不同抽象层次的有效理解及其之间的精确知识匹配.例如,存在于系统问题域和系统实现域之间的巨大“语言差距”就是程序理解的难点之一.程序理解过程的复杂性主要表现在如下几个方面:

(1)具体应用领域与程序设计领域之间的专业鸿沟有待跨越.在理解某一应用领域的程序时,不仅需要程序方面的知识,还需要这一领域的专业知识,专业知识的匮乏必然给程序理解带来相当的理解难度.

(2)软件系统的耦合度非常高.各个功能模块出现了交叉,由此导致程序理解难度的增加.

(3)软件系统的不断升级,导致程序逻辑结构的混乱.

(4)程序理解过程中,缺少必要的源程序说明文档及相关文字材料.

(5)程序理解中,人员的心理因素也是程序理解难度增加的一个不可忽视的影响因素.

程序切片技术在程序理解中的应用参考属性评定
有关论文范文主题研究: 关于程序的论文范文 大学生适用: 自考毕业论文、函授毕业论文
相关参考文献下载数量: 25 写作解决问题: 写作参考
毕业论文开题报告: 文献综述、论文题目 职称论文适用: 职称评定、职称评副高
所属大学生专业类别: 写作参考 论文题目推荐度: 免费选题

1程序理解模型及工具

11程序理解模型

随着程序理解的发展,现已提出了许多模型[2],这些模型在程序理解过程中发挥着关系全局的重要作用.在程序理解中,采用一种有效的程序理解模型,有助于实现高质量、高成功率的程序理解,下面对程序理解的主要模型进行简单的说明和论述.

(1)自顶向下模型.程序理解时,采用自顶向下的理解方式,是首先假设已经理解,然后去验证所提出的假设,最后再修改此假设的一个顺序理解过程.这种理解方式需要程序员熟悉该程序应用领域的有关背景知识,然后将这些背景知识和具体程序源代码不断尝试对应的过程.详述此过程就是,将对程序进行假设作为开始,其后在代码中验证该假设是否成立.当初始假设获得验证后,可以精化出附属的子假设,于是这些大、小假设就构成了一个树状结构,并按照深度优先原则,不断地进行着验证的深一层精化.Soloway和Ehrlich已通过经验性研究发现,自顶向下的理解方式常常发生在程序员较为熟悉编写代码的技术和编码风格的时候.

(2)自底向上模型.假设程序理解人员并不透彻了解具体业务逻辑,此时就需从阅读程序源代码来理解程序,再通过自底向上的方式创建程序控制流抽象,直至建立高层抽象.具体来说,该种理解方式中,程序理解人员会逐行理解程序源码,逐步建立上一层的抽象模型.这些较高层次的抽象表现形式又将组合在一起,提取出更高层次的抽象结果.在这个过程中,语法知识与特定编程语言相关,需要考虑的是程序中的语句和基本单元,而语法知识的积累则有助于程序员形成精神模型.程序的语义知识则与特定语言无关,并随着程序员精神模型的不断建立而渐次获取相应内容,内容所描述的就是程序应用领域的业务知识.大量实验研究表明,当程序员采用这种方法来理解程序时,更多关注的是程序中的结构化信息,同时在脑海中根据这些结构化信息,首先建立程序模型.如程序员将聚焦程序中的控制流程,建立控制流图,又或者集中在程序中的数据上,建立数据流图,再根据数据流图来实现程序理解.

(3)综合模型.这种模型是自底向上和自顶向下模型的结合,并根据上述模型建立相应的知识库,在知识库的辅助下完成程序理解过程.

12程序理解工具

目前,已经存在多种支持程序理解的软件工具,下面择选较为典型的程序理解软件工具做以分析介绍.

(1)Understand.是一款分析大型软件工程的有力工具,由Scitool公司开发.该工具能够分析出函数声明或定义、数据结构的定义、交叉引用以及函数的调用图等程序内部信息,并且也可以计算出函数的复杂度和控制语句的嵌套深度.同时Understand还集成了代码编辑器、代码跟踪器和代码分析器,提供了功能强大的用户界面,可将分析结果以各种形式(图形、图表、架构图等)呈现给用户,为程序员进行代码开发、维护、调试提供了更大程度的便利.目前,Understand已能支持C/C++/C#、Ada、Java、FORTRAN、Delphi和Jovial等众多编程语言,实现程序理解.(2)JBPAS.是由北大青鸟研制开发的一款支持C++语言的程序理解辅助系统,由信息管理器、C++前端分析器及程序分析工具集三大主体部分构成.该系统能够生成OOD(Object-OrientedDesign)文档和Rose文档.C++前端分析器则是通过数据库的概念模型对C++程序源代码展开分析,再将抽取出的程序片段信息保存在数据库中.

(3)BDCom-C++.是一款支持C++语言的程序理解系统,由信息管理器、信息抽取器和用户界面所组成.该系统以增量式分析技术对程序源代码实现静态分析,信息库则是由增量型数据库组成,同时存储了经由信息抽取器分析后所收集到的程序信息.第2期杜均,等:程序切片技术在程序理解中的应用智能计算机与应用第3卷

(4)Rigi.是一个可裁剪、可扩展的逆向工程环境的程序理解系统,主要由Rigi-server、Rigi-reverser和Rigi-edit3这三大部分组成.其中,Rigi-server是一个用于存储从源程序代码抽取所得信息的静态信息库;Rigi-reverser是一个支持C、COBOL等程序语言的静态信息解析器;Rigi-edit则是一个交互性的窗口编辑器,通过图形方式展示和操控程序&

1 2

程序类论文范文数据库,与程序切片技术在程序理解中的应用相关论文的格式参考文献资料:

本科日语毕业论文

本科自考科目有哪些

农学本科就业

大学本科函授

本科毕业设计

自考本科论文范文

自考本科院校及专业

可以自考本科吗

自考本科要考多少门

本科历史论文

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
后台-系统-系统设置-扩展变量-(内容页告位3-手机版)