下载此文档

一种UML活动图的逆向恢复方法.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
一种UML活动图的逆向恢复方法1周新宽,陈平,李青山西安电子科技大学软件工程研究所陕西西安(710071E-mail:zhouxinkuan@摘要:UML活动图的逆向恢复是逆向工程的重要组成部分,对于理解目标系统的动态行为和控制流程有重要辅助作用。本文针对Windows环境中的面向对象系统,给出了一种基于进程(线程间关系的UML活动图的逆向恢复方法,该方法采用反射植入机制对目标系统进行基于关键函数的植入,然后对植入后目标系统运行时的动态信息进行过滤并提取出来转化为UML活动图模型文件。在此过程中给出了相应的植入和过滤算法,并通过实验验证该方法的有效性。关键词:逆向工程;UML活动图;进程(线程间关系1引言在逆向工程[1]中,UML活动图[2]在理解面向对象系统的过程中有着举足轻重的作用,为了辅助用户能从多个角度、多个层次全面地理解目标系统,就需要产生和抽象出能反映软件系统动态行为特征的活动图,从而促进系统的维护和演化,因此活动图的恢复在逆向工程中扮演着非常重要的角色。UML活动图是用于对系统动态方面的建模,体现了系统从活动到活动的控制流程,而进程(线程间关系可以看作是系统执行过程中体现出的系统计算能力的一个侧面,它强调了系统行为(任务、并发、同步等的实现逻辑,所以在进程(线程层次对系统的控制流程进行的恢复是一种清晰而合理的思想。在之前的工作中,主要针对Unix系统进行了基于进程间关系的活动图的逆向恢复,获得了初步的成果。Windows系统同样也是一种主流的操作系统,而且基于Windows的应用系统也拥有非常独立和广阔的领域。因此,对于Windows环境下的面向对象系统进行活动图的逆向恢复就成为逆向工程中重要的组成部分,这也是本文所论述的焦点。本文基于Unix系统中活动图恢复的技术,给出了Windows系统中一种基于进程(线程间关系的活动图的逆向恢复方法。文中所有相关算法已经在逆向工程工具XDRE[3](XiDianReverseEngineering中实现。2反射原理和开放编译技术反射[4](reflection是关于并作用于计算系统本身的推理过程,这一活动涉及访问并部分地改变整个系统,从而影响自身的计算。反射的实现通常将系统细分为两层:基层和元层。应用的功能在基层实现,元层完成观测、操纵基层的结构和行为的功能。面向对象系统通过元对象1本课题得到国家自然科学基金(项目编号:60473063,国家教育部博士点基金(项目编号:20030701009及“十五”国防预研项目(项目编号:41306060106资助。-1-来实现反射,一个对象与一个元对象联系在一起时,这个元对象表示着该对象的元信息。反射能够明确分离描述系统自身结构和行为的信息与系统所处理的信息,能够建立可动态操纵的因果关联以动态调整系统行为,是开放编译器的基础。反射的关键思想就是访问并修改元系统,以改变其执行动作的方式。开放编译的思想是将编译过程用元对象协议MOP[5][6]向用户开放,允许用户自己通过编制实现元对象的程序片段来干预编译过程,以达到特定的应用目的。OpenC++[5]是开放式编译器技术的一个典型,将元对象协议引入了C++语言,它是基于C++的一种扩展语言,扩展的特征由元程序在编译时指定。OpenC++中将常规的C++程序称为基层程序。通过MOP接口以操纵基层程序元信息的程序称为元层程序。OpenC++的编译处理过程包括三个阶段:预处理、源码对源码的转换以及后端的C++编译。OpenC++的MOP是一个在第二阶段控制转换的接口。图1中显示了元层程序被编译器动态连接的过程。基级程序首先由C++预处理程序进行预处理,然后分成很小的代码片断,这些代码片断由类的元对象转换后,再组合成一个完整的C++程序。具体实现中,程序员在元程序中定义一个新的类的元对象,这个类的元对象关联于基级程序中的一个特定的类,并且控制与该类有关的代码转换,而与其它类相关的代码保持不变。图1OpenC++开放编译框架3Windows环境下活动图的逆向恢复方法基于进程(线程间关系的UML活动图的逆向恢复方法作为一个独立完整的过程,需要经历对目标系统的源码进行植入、动态信息收集、在RationalRose中呈现这三步。本文所关注的是从植入到动态信息收集的过程,即活动图模型的恢复,针对Windows目标系统着重对植入和收集信息这部分的方法和算法进行论述和分析。,这些动态信息主要是从程序的运行中得到的,所以要对目标系统进行跟踪并且不能影响该系统的原有功能,因此必须对Windows目标系统的源代码进行必要的植入,本文采用的是基于源代码的反射植入机制[7][8]。这样目标系统在运行的时候才能在不影响本身功能的情况下把自己的行为表

一种UML活动图的逆向恢复方法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小44 KB
  • 时间2019-11-12