基于多重程序模型的程序理解和逆向工程的研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:qinlou
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序理解是人们将程序及其环境对应到面向人的概念知识的过程,它对于软件的维护,测试,度量具有十分重要的意义。程序理解可以手工进行,也可以在工具的支持下半自动地进行。随着软件规模及复杂度的不断加大,软件项目再也不是一两个人的工作,开发人员也不可能一直去维护自己的程序,而且历史上留下的大量的程序,它们要么没有文档,要么文档过时或不完整,要维护或修改它们显得十分的困难。 要对现有软件系统进行维护和修改,首先需要理解它们。在没有文档或文档不全的情况下,程序理解变得极其困难,需要耗费理解人员大量的时间和精力却往往得不到理想的效果。这时,如果完全用手工的方式去理解程序,代价就会非常之大。据统计,目前软件的维护费用约占软件生命期中总投资的70%,而对于源程序的理解所耗费的时间又约占整个系统维护时间的50%-90%。可见,研制程序理解系统,用以减轻维护人员理解的智力负担,增强程序理解的准确性和可靠性是十分必要的,这个领域也越来越多的引起众多计算机专家们的重视。 程序理解系统实质上实施的是一种逆向工程的技术,其总的追求目标是:对大型程序系统进行分析理解,弄清工作原理,恢复设计方案,抽象出其结构和功能,产生由源程序代码逆向生成用高层次方式精确地描述该程序系统的文档资料,辅助维护人员对程序系统的理解。 软件工程领域的专家们对程序理解的过程进行了深入的研究,提出了多种程序理解活动的过程模型,如Letovsky模型、Brooks模型、Soloway&Ehrlich模型、Pennington模型和综合的元模型。这些模型都试图从人类不同的思维模式去寻求某种通用的理解方法。例如,S&E模型主要是采用了一种自上而下的理解模式,而Pennington模型则是自下而上的。本文分析和比较了这五种程序理解活动的过程模型,并在其基础上结合MichaelL.VanDeVanter提出的源代码文档结构的概念,提出了一种改进的程序理解活动的过程模型。这个过程模型明确划分了程序理解活动中建模、抽取、合并&保存和抽象四个步骤;归纳出整个理解活动中的四种有效信息源并通过一系列的操作使得不同信息源相互关联;引入了知识库和人工智能技术并以程序建模作为整个理解活动的中心环节。 程序模型是对程序源代码的一种归纳抽象,并且以特定的结构把源程序的相关信息保存下来。本文提出了三种不同的程序模型,详细分析了这三种程序模型的结构和特点,并结合这三种程序模型进行了三种不同类型的程序理解活动。 本文提出的三种模型分别是:可扩展程序对象模型(EPOM),基于对象、域和型的层次式程序模型(OSTPM)和可扩展程序参考模型(EPRM)。 EPOM模型中囊括了C/C++语言中的所有的语法细节,而模型中的类又通过指针连接其他类型对象,使得程序中的各个语法单元相互关联,详尽且有序的展现了整个源程序的语法结构。OSTPM是基于对象、型和作用域的层次式的程序模型,它通过作用域把程序中的不同对象串联起来,同时使得对象和对象的类型相互匹配。简言之,OSTPM是以不同层次的作用域为基础,以对象为内容,以型作为主线的一种递归嵌套的程序表示模型。使用该模型检测程序中作用域误用和类型不匹配两种错误有着良好的效果。EPRM是在EPOM的基础上建立起来的有关程序统计信息的模型。它能够反映程序中的变量信息、函数信息、类型信息和枚举常量等信息,并以超文本的方式展现给用户。三种模型的特点各不相同,功能也有所区别。 程序模型在程序理解活动中扮演着非常重要的角色,许多的程序理解活动都可以直接或间接的从单个或多个程序模型中获得相应的信息。本文列举了三种不同的程序理解活动:软件度量、程序静态分析和程序信息显示。这三种类型的理解活动都是从上述程序模型中直接获取相关信息。软件度量和程序信息显示分别是基于EPOM和EPRM的模型,而静态分析则是在EPOM和OSTPM的共同协作下完成。 程序理解和逆向工程是伴随着软件产业的蓬勃发展而逐渐引起人们重视的,许多的理论和实践还都处于早期的探索研究阶段。今后,程序理解将会朝着智能化和全自动化的方向发展。我们相信,程序模型作为整个理解活动中的基础,将会得到更大的发展。
其他文献
随着信息技术特别是网络技术的发展,电子媒体的传播极为迅捷。但随之而来的盗版和侵权行为也日益猖獗。同时也出现了多种保护电子媒体信息安全的技术。数字图像水印技术作为一
该文以数字视频压缩技术为基础,以视频信息的存储和网络传输为重点,以简单实用的视频运动检测为特色,实现了具有自主知识产权的数字视频监控系统Blue-Eye的主要核心部件.多路
该文主要介绍专家系统开发工具CLIPS事实存储技术的相关理论的研究情况,以及功能扩展工作.首先,该文从应用的角度分析了研究CLIPS事实理论的必要性,分析了CLIPS的各种模板结
云计算是一种新型的商业模式和计算模式,它通过对计算资源、存储资源、软件服务的商品化处理,以更具可靠、廉价、高速的方式提供给用户使用,实现资源拥有者与使用者的分离。
随着网络信息时代的不断进步,信息安全在这纷繁复杂的世界占居了及其重要的地位,但要保证信息的绝对安全,科技技术的支撑显然是必不可少的,倘若没有先进的科技,就不能了解前
该文对移动代理跨域互操作的安全问题和目前的研究现状进行了分析,给出了一个基于CORBA安全机制的安全Agent请求代理体系结构SARBA.SARBA采用纵向分层授权、横向分级安全控制
Web使用数据挖掘是Web挖掘中的一个主要分支.Web使用数据挖掘的数据来源主要是以日志为代表的使用数据,它分为客户端使用数据、代理端使用数据、以及服务器端使用数据,该课题
随着互联网的不断发展,传统的被固定在台式机上的Internet终端越来越无法满足人们对于信息服务的及时性和就地性以及信息可携带性的要求,Internet信息终端技术成为当前研究的热
该文详细介绍了凹版印刷机彩色套印系统的组成及原理,分析并提出了一种利用单光点同轴反射式高速、高灵敏开关量光电传感器与印版滚筒轴上的光电编码器获取彩色套印偏差信号
该文在Purdue大学设计的AAFID[7]框架的基础上,提出ABHIDS(Agent-Based Hybrid Intrusion Detection System)模型.该模型是一个基于Agent的混合式入侵检测模型,符合当前的IDS