硕士论文-基于面向对象技术的软件逆向工程的研究与应用.pdf_第1页
硕士论文-基于面向对象技术的软件逆向工程的研究与应用.pdf_第2页
硕士论文-基于面向对象技术的软件逆向工程的研究与应用.pdf_第3页
硕士论文-基于面向对象技术的软件逆向工程的研究与应用.pdf_第4页
硕士论文-基于面向对象技术的软件逆向工程的研究与应用.pdf_第5页
免费预览已结束,剩余69页可下载查看

硕士论文-基于面向对象技术的软件逆向工程的研究与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国石油大学(华东) 硕士学位论文 基于面向对象技术的软件逆向工程的研究与应用 姓名:郭辉 申请学位级别:硕士 专业:计算机应用技术 指导教师:段友祥;张贵才 20060401 基于面向对象技术的软件逆向工程的研究与_ 应用 鄂辉( 计算机庶用技术) 指导教师:段友祥教授,张贵才教授 摘要 当前,随着大量传统软件需要商蕊向对象平台上移植,基予面向对 象技术的逆向工程研究成为关注的热点。这个方面的研究可以选择不同 匏输入源懿源代码、数攥模式窝雾瑟袭攀等。本文童要是对以赛露表单 为输入源的基于面向对象的遂向工獠方法进行研究,提出了一个逆向工 程方法模擞。这个模型摒弃了传统的自底向上和自顶向下的逆向正程策 略,采用7 羁步求精戆繁痿,宠分考虑了领域知识农系统理解中的终震。 模型包括两层:高层和低层,对于商艨的理解采用静态对象模型对域模 型进行表示,利用这种袭示法更有利于建立高层对象与低层对象之间的 浃射关系;对于抵层斡器覆表萃戆努糖采震1 ,改逡豹器o r e 秀法,裂 用u m l 的炎图和序列网对抽取的结聚进行表示,问时,针对i f o r e 方 法只对单个液单进行研究的不足,引入了一种用例抽取方法u a m ,实 瑰默系统戆器瑟孛麴取攒系统戆弱铡,劳攫搀蘼缮裂戆震铡建纛起每令 用例的序列图。最后,针对一个酸纯愿裂系统对本文所提出的方法进行 应用和验 难,基本实现了系统类图、用例图和序列图的抽取。 关键字:甏囊踺象,遂国王程,弱步求耱,i f o r e 方法,u a m 方法 r e s e a r c ha n d a p p l i c a t i o no fs o f t w a r er e v e r s e e n g i n e e r i n g b a s e do n0 b j e e t - o r i e n t e dt e c h n o l o g y g u oh u i ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f e s s o rd u a n y o u - x i a n g ,p r o f e s s o rz h a n gg u i - c a i a b s t r a c t a tp r e s e n t , al o to fc o n v e n t i o n a ls o f i :w a s y s t e m sn e e db em i g r a 僦lt o o b j e o t - o r i e n t e dp l a t f o r m s ,s ot h es t u d yo fr e v e r s ee n g i n e e r i n gb a s e do n o b j e o t - o r i e n t e dt e c h n o l o g yi sa t t e n d e d m a n yi n p u t $ o u r c 宅ss u c ha ss o u r o c p r o g r m m d a t a b a s es c h e m aa n ds c l f e e nf o r m sc a nb es e l e c t e di nt h e 矗e l d t h i sp a p e rf o c u s e so nt h em e t h o do fr e v u w s ee n g i n e e r i n gt h a tu t i l i z es c t e e n f o r m sa so r i g i ni n p u ts o u r c e ,a n dp r o p o s e sar e v e r s ee n g i n e e r i n gm o d e l t h e m o d e lw h i c hi n c l u d e st w ol e v e l s :h i g h - l e v e la n dl o w - l e v e la b a n d o n s t r a d i t i o n a lb o t t o m - u pa n dt o p - d o w nm e t h o d ,a n da d o p t ss y n c h r o n i z e d r e f i n e m e n tr e c - e r s ee n g i n e e r i n gm e t h o d , b e c a u s ei tf u l l yc o n s i d e r st h e a d v a n t a g e so fd o m a i nk n o w l e d g et os y s t e mc o m p r e h e n s i o n h i g h - l e v e l m o d e la d o p t ss t a t i co b j o c tm o d e lt or e p r e s e n td o m a i nm o d e li no r d e rt o b u i l dr e f l e c t i o nr e l a t i o n s h i pb e t w e e nh i g h - l e v e lo b j e c ta n dl o w - l e v e lo b j e c t c o n v e n i e n t l y l o w - l e v e lm o d e li n t r o d u c e sa ni m p r o v e di f o r em e t h o d ,a n d u s e su m lc l a s sd i a g r a ma n ds e q u e n c ed i a g r a mt or e p r e s e n ta b s t r a c t e d r e s u l t s 撼b e c a u s eo ft h el i m i t a t i o nt h a tw o r em e t h o do n l yp a y s a t t e n t i o nt os i n 酉ef o r m , au s ec a s ea b s t r a c t i o nm e t h o du a mb yw h i c hu s e c a s e sc a nb ea b s 虹a c t e df r o ms y s t e mi n t e r f a c ei si n t r o d u c e d t h e n , s e q u e n c e d i a g r a mc o r r e s p o n d i n gt oe a c hu s ec a s ei sb u i l t f i n a l l y , a na c i d - f r a c t u r i n g s y s t e mi si n t r o d u c e dt ov a l i d a t ea b o v e m e n t i o n e dm o d e l t h r o u g ha p p l y i n g t h em e t h o d , c l a s sd i a g r a m s 、u s ee a s ed i a g r m ma n ds e q u e n c ed i a g r a m sa r c a b s t r a c t e d k e yw o r d s :o b j e c t - o r i e n t e d ,r e v e r s e 豇培i n e e r i n g ,s y n i h r o n 砌r e f i n e m e n t , i f o r em e t h o d , u a mm e t h o d 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取 得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论 文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得中国 石油大学或其它教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示 了谢意。 签名: 月砑日 关于论文使用授权的说明 本人完全了解中国石油大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件及电子版,允许论文被查阅和借阅;学 校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手 段保存论文。 ( 保密论文在解密后应遵守此规定) 学生签名: 导师签名: 中国石油大学( 华东) 硕士论文第1 章前言 第1 章前言 1 1 课题的提出、目的和意义 传统的软件工程主要关注新软件的分析与设计,但随着软件系统的 规模和复杂度的与日俱增,软件生命周期越来越长,软件开发的很大一 部分工作集中于维护和改造现有的软件系统。软件维护已成为软件工程 界面临的重要课题之一,而正确和全面的理解遗留系统是软件进行维护 的前提“1 。但是,大部分遗留系统已经运行了许多年,尽管它们过去对 企业发挥过很大的作用,但由于当时使用的一些信息技术和平台比较落 后,遗留系统的理解和维护面临着各式各样的问题。首先,遗留系统可 能设计文档已经丢失,甚至只有可执行文件而没有其它的任何信息,因 此,对系统知识的缺乏必然导致理解和维护的困难;其次,系统的维护 是相当复杂和昂贵的,特别是对于那些功能分为多个管理组件的系统来 说,维护更是相当困难的。为了解决上述问题,逆向工程技术被提出。 逆向工程的目标是理解一个软件系统以便于更容易的进行增强功能、更 正、增加文档、再设计或者用其它的程序设计语言再编码。 当前,软件发展中面向对象技术的优势已经被人们所广泛接受,大 多数软件管理人员赞同移植到面向对象平台是在动态的软件市场保持 竞争力的重要方法。面向对象技术的优势体现在满足商业过程的建模技 术、开放的系统、复用软件组件、减少遗留系统规模以及图形用户界面 的设计与实现等方面”1 。因此,研究从传统的遗留系统中抽取出面向对 象模型的逆向工程方法,可以为进一步的向面向对象平台的移植奠定良 好的基础。 1 2 国内外研究现状 目前,逆向工程技术的重要性已经引起重视,得到了国内外学术界 中国白_ 油大学( 华东) 硕士论文第l 章前言 的广泛认同。在学术界,面向逆向工程领域的国际会议w c r e 、i w p c 和p a s t e 每年举行一次。卡内基梅隆大学软件工程研究所成立了专门 的再工程中心,致力于逆向工程的研究。 国内外对逆向工程的研究主要停留在代码的层次上,原因是对于研 究人员来说,代码逆向工程在最初的印象上更能激发起他们的兴趣。从 基于面向对象技术角度看,代码逆向工程研究按照源代码的不同分为两 个方面即面向过程软件的逆向工程和面向对象软件的逆向工程。对于面 向过程软件的逆向工程,采用不同的方法实现从代码中抽取出对象以及 它们之间的关系n “。”。最重要的是o o k u lv s u b r a m a n i a m 和e r i ej b y r n e 通过对前人大量方法总结的基础上,提出了一个逆向工程的策略模 型,进而提出了9 个阶段的对象模型发现过程阱。对于面向对象软件的逆 向工程,按照抽取的设计知识的抽象层次即生成结果的可理解程度,它 的研究可分为4 个层次:对象间的实际关系抽取、设计模式的识别、面向 对象程序的度量和系统结构与域模型的抽象“”“2 ”。其中第一个层次即 对象间的实际关系抽取是研究的热点,并开发出许多工具。可以实现对 象或类之问的静态关系抽取的工具有r o s e 、t o g e t h e r 、u m l s t u d i o 、 i d e o g r a m i e u m l 、c o d e l o g i c 等,它们都采用u m l 类图表示“”。对于动态 关系抽取模型通常用u m l 的协作图、状态图等来表示。 最近十年,随着大量数据集中的信息系统需要维护,数据逆向工程 引起了研究人员的广泛关注。这方面的研究主要集中在数据库逆向工程 方面,研究方向是从层次模型、网状模型和关系模型抽取e r 模型“”】。 数据库逆向工程所得到的概念模型通常是数据模型,反映了系统的静念 特性。但是对于一个系统的理解来说,仅仅只有静态特性是远远不够的, 还必须要得到动态特性。而采用以界面表单为输入源的逆向工程研究具 有更丰富的语义,通过这种方法可以得到系统概念模型的静态特性和动 中国石油大学( 华东) 硕士论文第1 章前言 态特性,因此这方面的研究也越来越引起人们的重视。当前对这个领域 的研究还比较少,文献【1 8 】通过界面表单得到了b r 模型;文献【1 9 】通过 界面表单实现了数据库应用系统静态特性和动态特性的提取,静态特性 使用e r 模型和面向对象模型表示,动态特性使用表单内行为关联构造的 表单方法调用图和不同表单间行为关联构造的表单网络来表示;韩国的 两位研究人员提出了一种f o r e 方法,静态特性使用面向对象模型表示, 动态特性使用表单操作脚本来表示;国内东南大学的徐易、刘亚军和高 建国等也在这个领域作了一定的研究工作,通过f d ! 方法抽取出了面向 对象模型表示的概念数据模型1 。 总的来看,逆向工程的研究主要集中在代码逆向工程和数据逆向工 程的数据库逆向工程方面,对界面表单逆向工程的方法研究还处于起步 阶段。 1 3 研究方法与技术路线 根据基于面向对象技术的逆向工程的研究现状,可看到基于界面表 单的逆向工程研究在系统理解方面的巨大优势。因此,本文不是以传统 的输入源比如源代码、数据库等进行逆向工程研究,而是对以界面表单 为输入源的逆向工程方法进行研究。很多要使用逆向工程的系统已经运 行多年,很多文档已经丢失。但是不管他们缺什么,执行程序总会存在, 运行窗口总是可见的。所以从这一点上,选择界面表单输入源有更大的 市场需求和技术上的可行性嘲。 对于界面表单逆向工程方法的研究,传统的方法通常采用的是自底 向上或自顶向下的策略,这些策略并没有考虑高层抽象在系统理解中的 作用。因而本文的研究采用了同步求精的策略,把领域知识应用到系统 理解当中。对于低层的界面表单的分析采用了改进的i f o r e 方法,利 3 中国石油大学( 华东) 硕士论文第1 章前言 用u m l 的类图和序列图对抽取的结果进行表示,同时针对i f o r e 方法 只对单个界面表单进行研究的不足,引入了一种用例抽取方法u a m , 实现从系统的界面中抽取出系统的用例。然后,根据所得到的用例建立 起每个用例的序列图。 1 4 论文的主体思路和组织结构 本文在对逆向工程的基础理论和相对成熟的基于面向对象技术的 代码逆向工程和数据库逆向工程方法研究的基础上,结合已有的界面表 单逆向工程方法,提出了一个基于面向对象技术的界面表单逆向工程方 法模型。这个模型分为低层和高层,在低层对于界面表单进行分析,采 用不同的方法抽取出u m l 的类图、用例图和序列图表示的面向对象概 念模型。在高层,使用静态对象模型来表示域模型。低层和高层通过同 步求精的过程进一步融合,建立对应关系 论文的组织结构如下: 第一章,前言。阐述课题研究的背景、目的和意义,介绍国内外研 究发展现状,提出研究方法并制定技术路线。 第二章,逆向工程综述。介绍了逆向工程的概念、目标和规范活动, 然后对逆向工程的研究策略进行了分析,最后提出了对当前逆向工程的 分类标准。 第三章,面向对象技术和建模。首先对面向对象的方法进行了综述, 然后重点介绍了面向对象的建模技术u m l 及其在逆向工程中的作用。 第四章,面向对象的界面表单逆向工程研究。这一章是本论文的重 点,首先介绍了界面表单的基本概念、特点和分析层次,对传统的f o r e 方法进行改进,在此基础上提出了一种新的界面表单逆向工程方法 i f o r e 。然后,引入了一种用例抽取算法,实现对系统用例的抽取。 4 中国i i 油大学( 华东) 硕士论文第1 章前言 第五章,界面表单逆向工程方法的应用。首先根据所提出的同步求 精策略模型,在高层针对所研究的酸压系统的域模型进行表示。然后, 在低层对系统的界面表单进行分析,通过i f o r e 方法得到系统的对象 以及它们之间的关系,并用u m l 类图加以表示;通过用例抽取方法 u a m 得到用例图表示的系统用例,同时针对每个用例建立序列图。 第六章,总结。总结论文的工作以及研究的创新点,指出还存在的 问题和今后进一步的研究方向。 中国石油大学( 华东) 硕士论文第2 章逆向j 稃综述 第2 章逆向工程综述 2 1 逆向工程概念、目标和规范活动 2 1 1 逆向工程概念 逆向工程在硬件领域作为一种标准实践应用已有很长时间,其起源 于为了商业或者军事利益而对硬件进行的分析。软件领域的逆向工程迄 今为止还没有标准的定义,一般将软件逆向工程定义为包含抽取和抽象 两个步骤的过程:第一步分析目标系统,标识目标系统的组件以及它们 之间的相互关系;第二步创建不同形式或更高抽象层次的系统表示1 , s c o t tr “ l i l l e ) , 将这两个步骤细分为建模、抽取和抽象三个步骤嘲: 建模:采用概念建模技术构造应用程序的领域模型。 抽取:利用适当的抽取机制从目标系统中收集原始数据。 抽象:对目标系统进行抽象,以辅助系统理解并允许浏览、分析 和表示抽象结果。 2 1 2 逆向工程目标 软件系统逆向工程的首要目的是增加系统在维护和新丌发时的总的 可理解性。总结起来具体要完成下列任务: 1 、处理复杂性:软件系统越来越复杂,人工方法己经很难有效维护、理 解,研究逆向工程技术和c a s e - f 具辅助控制软件系统的复杂性是软件成 功的关键。 2 、自动生成系统的其它视图:图形表示可以大大促进理解。自动由人工 制品比如源代码、数据库等生成数据流图、控制流图、类图、实体关系 图等是软件逆向工程的基础部分。 3 、映射应用程序领域和问题域:计算机程序表示了应用程序领域中的 问题。但是,程序通常不包含问题的提示,逆向工程的任务之一是重构 6 中国石油大学( 华东) 硕士论文第2 章逆向t 稃综述 应用程序领域到问题域的映射。 4 、映射具体和抽象级别:软件开发过程是从高层抽象到详细设计再到 具体实现。逆向工程则反向运作,从具体细节创建抽象表示。 5 、重新发现高层结构:程序是具有良好定义的高层结构的载体。但是, 因时问流失和维护行为,这些高层结构可能已经丢失。逆向工程的任务 之一是在程序中检测高层结构。 6 、发现程序语法和语义之间丢失的链接:计算机程序是形式化的,具 有定义良好的语法和语义。在形式化中,语法正确的程序能够决定输入 所对应的输出。但是,有的系统可能已经丢失了原来的语义,而且有的 语言,如面向对象语言,并没有良好的形式化基础。逆向工程要从语法 中发现程序语义。 7 、恢复丢失的设计知识:在软件代码的不断修改中,有许多业务规则被 加入而没有反映在文档中,这部分知识可以通过逆向工程来恢复。此外 还有一些知识,如反映代码质量的一些度量数据只有通过逆向工程才可 以发现。 8 、检测边缘效应:软件修改或加入的部分可能会带入新的问题,而对原 来的代码运行有一定的影响,这种影响无法在正向工程中反映出来。 9 、为正向工程做准备:软件再工程是为了以新的形式重构已存在的软件 系统而进行的检测、分析、更替以及随后的对新形式的实现,它的一般 模型如图2 1 所示。可以看出,逆向工程抽象出的最高层概念世界是正向 工程的起始阶段,逆向工程结果的好坏直接关系到正向工程的实施。 2 1 3 逆向工程规范活动 软件逆向工程并不改变目标系统,它只是一个分析检查的过程, 而不是一个修改的过程。软件逆向工程通过标识系统组件以及发现这些 组件之间的关系。涉及的对象可分为三类陋1 : 7 中国石油大学( 华东) 硕士论文第2 章逆向工稃综述 数据:数据包括系统源程序、源代码注释、需求分析、分析文档、 设计文档、用户手册以及观测到的系统的外部行为等。 知识:所有内容的总和,包括数据和从数据中推导出的关系与规 则。 信息:相互交织的交流知识,这些信息包括所有的数据和知识, 以及软件工作人员的各种非正式的思路和建议。 薯器回 兰名 甲 重新描述 酴苫 结构设汗 重新设计 降厨熟 罩罂, 重新编码 翻黼x # 瓢 功能,性能对比 现存系统目标系统 图2 - i 软件再j :稃的一般模型 基于这三类对象,s c o t t r t i l l e y 等人给出了软件逆向工程的三个规 范活动:数据收集、知识组织和信息浏览。 1 、数据收集 原始数据是构造和浏览高层抽象的基础,因而数据收集是软件逆向 工程的一项基本活动汹“一。数据收集时,应该尽量遵循下列规则: ( 1 ) 采用成熟的技术:数据收集所采用的技术包括静态分析、动 态分析和获取非正式数据等,其中最流行的是分析程序源代码,构造带 有语法单位及其依赖关系的抽象语法树,在编译领域中,语法分析和交 8 中国石油大学( 华东) 硕士论文第2 章逆国了稃综述 叉索引等技术已经很成熟,采用基于编译的成熟技术,可以得列预期的 绩栗,霞绞集静数据冀舅鬟准确黧胃纛。 ( 2 ) 利用多种数据:遗产系统肖四种数据来源:系统源代码: 包括数据结构、规则控依4 进程、报表格式以及计算机的编码指冷;系 统行为:帮系统霞产聚餐到戆系统穗簸帮经缝;系统文程;魏搀需求 分析、分析文档、设计文档、用户手册和源代码淀释;系统的设计者 和维护者。系统的多种数据从不同的方面刻划了系统对象及其关系,从 恧为受深入详细瑾薅系统提侯了基镄。弱溺系统深我码绫努酌其缝数 据,能够熙好的辅助软件工程人员理解那些难以理解的系统。 ( 3 ) 过滤数据;为理解大型系统所收集的数据量可能是隧大的, 以至子越懑了人 籍吸收理解豹能力。入髓要理瓣系统,首先必缀l 殁收其 中的数据,而系统理解的关键技术之一在于清楚了解什么和忽略什么, 数据过滤怒从丰富的数摄源中抽取所选择的对象及其关系,西褥,在辅 助系统理耱中起着重要俸雳。 2 、知识组织 对成功瓣系统瑾解褥害,所收集熬数据必须耀适当的数据模型保存 起来,以便实现有效鹦存储和检索,辅助对系统缀件及其相互关系的分 析,并反映用户对系统特性的了解程度。数据模型捕捉了系统的本质属 性及其关系,它应该霹默有效的支持知识组织,嚣她对数据模黧骞下列 要求翻1 : ( 1 ) 知识的组织是面向人的而不是面向计算机的:传统的数据模 型,懿层次模型、网络模型移关系模型,都是钛逶予诤算捉操嚣戆角度 上建模组级数据的。丽软件逆商工程的建模则要求以满足入们的理解为 出发点来捕捉系统组件及其相互关系,它强调知识组织,而不怒数掘组 织,知识缀绞是按照系绕实嚣及其谣义关系建攘弱。瑟自对象鹊数据模 9 中国石油大学( 华东) 硕士论文第2 章逆向j 稃综述 型所刻画的系统组件及其相互关系是面向人的,而不是面向计算机的, 其抽象机制能够帮助软件工程人员有效的组织目标系统的知识。 ( 2 ) 要能够支持领域分析:当前的软件逆向工程技术主要以程序 分析技术捕捉的程序结构为基础,但是程序结构自身并不足以反映程序 所应用的问题域。领域分析可视为解决这个问题的有效途径之一。领域 分析是通过标识、组织和表示领域元素及其组成结构来揭示它们在问题 域中的联系。因此数据模型应该按照领域组织目标系统的知识,识别系 统中的标准组件,从而为软件逆向工程提供有效的辅助支持作用。 ( 3 ) 要具有可扩展性:对大型系统而言,软件逆向工程产生的数 据是巨大而复杂的,为了实现有效的存储、检索和分析,就必须使用可 扩展的软件逆向工程数据库来存储软件逆向工程所得到的知识。可扩展 的软件逆向工程数据库存储所有的数据和知识,并支持对系统的增量分 析,所以它能够提高系统理解的效率,特别在大型系统的理解中。 3 、信息浏览 因为大多数程序理解的活动都是在信息浏览时候进行的,因而信息 浏览可能是软件逆向工程三个规范活动中最重要的一个。信息浏览通过 遍历存储着目标系统各种信息的软件逆向工程数据库,按照指定的杯准 来分析和过滤信息,并以多种机制表达所得到的信息,辅助程序理解中 的假设一验证的迭代工程。 ( 1 ) 遍历:对大型系统而言,软件逆向工程所产生的信息结构并 不是线性的,而是一个相互交织的多维信息网。网中的链接代表了软件 逆向工程所产生的组件之间的层次关系、继承关系、数掘流、控制流和 其它关系。遍历采用定向和高级模式匹配等机制,辅助人们浏览软件逆 向工程知识组织阶段所产生的多维信息结构。 ( 2 ) 分析:分析多维信息结构是程序理解的关键,分析从原始数 1 0 中蕾石瀵大学( 华东) 顿士论文第2 章逆商| l i 警综述 据中推导弗抽取那些并不显式存在的信息,并产生关于系统的深层视 图。荛了键秘露户麸多秀瑟瑾舞系统,霹戳翻鬟缡疆浯耋筏翻瓣分援方 法进行编程,并允许用户根据特定的侄务开发特定的分析方法“”。 ( 3 ) 表达:表达怒以可视化方戏表示分析的缡果,它在采用的认 躲蒙臻鏊懿圭,截建绥秘住程霾来表现分辑结栗,戮达嚣一嚣了然熬效 果。 2 。2 逆向工程策略 2 2 。1 自底向上策路 自底向上策略是对源代码进行分析的策略,它从源代码开始,生成 文档描述, 奄建程序豹藤层捶象。朝扶逐行理簿臻序代码牙始,透过发 现相似豹横式( 称为块 ,进行模式豹聚合,并烈避一步抽蒙成为能够 用来识别熙高抽象层的新模式。 2 。2 。2 皇瑗囱下策隆 自顶向下策略是指构造从应用域到实现域的缺射,首先分析应用域 生成假设,然后通过检森程序验证这贱假设。自顶向下策略能熙好的适 应蠢标割鼯懿程彦理瓣 1 m i n s u p p ,那么p 3 和f o c 凰幼砂将被储存毛y :p t l i s t 中,否则p 3 将被忽略。如果s u p p o r t ( p 3 ) = s u p p o r t ( p 1 ) 或者s u p p o r t ( p 3 ) = s u p p o r t ( p 2 ) ,那么p 1 或p 2 被标记为非最大模式。当没有候选模式产生时, 那么2 f f :p t l i s t 中的将是所要的结果模式。 这个子阶段的伪代码见附录a 2 。 3 7 中国石油大学 圪。5 4 0 2 * + b 式( 5 8 ) 式( 5 - 5 ) 窝( 5 - 6 ) 串熬嚣子字毅与辫黧洼藏属经对象笈嚣魏援对 应,可以在这个对象中加入方法来计算a 和b 。因此,在附加油藏属性 对象中加入方法计算漏失公式中参数( ) 和计算渗遴率公式中参数( ) 。 中国石油大学( 华东) 硕士论文第5 章界面表单逆向丁稃方法应川 国国国 ; iii i 图5 6 基于岩性的油藏参数界面表单序列图 比较图5 - 4 和图5 7 ,可以看到这两个界面表单切片后的对象具有 相同的力学岩石属性对象。除了在5 2 3 节对象结构建模阶段所确定的 对象关系外,按照对象关系确定标准,标准a 1 可以确定其它油藏属性 对象与热传送参数对象之间有关联关系;标准a 2 可以确定热传送参数 对象与温度深度关系表对象之间有关联关系;标准b 1 可以确定选择流 体对象和热流体属性对象具有泛化关系。上述结果使用u m l 类图表示, 如图5 8 。 中国石油大学( 华东) 硕士论文 第5 章界面表单逆向i :稃方法麻h j 热传送参数 表面流体温度 表面支撑剂温度 表面氨气温度 表面二氧化碳温度 表面岩石温度 裂缝中心的油藏温度 井筒热传送放大系数 裂缝热传送放大系数 力学岩五属性 岩石类型 闭合应力梯度 应力a 系数 应力b 系数 杨氏模量 柏松比 裂缝强度 合成层影响 图5 7 热传送参数界面表单切片后的对象 图5 - 8 集成后的类图表示 本节是在我们提出的界面表单逆向工程方法模型的低层采用 i f o r e 方法应用于一个酸化压裂系统。通过i f o r e 方法的5 个阶段, 采用u m l 的类图对抽取出的系统对象和对象之b j 的关系加以表示,采 用u m l 的序列图对抽取的表单内对象行为进行表示。 甲占 中国石油大学( 华东) 硕七论文第5 章界面表单逆向i = 稃方法应用 5 3 表单对象与域模型对象对应关系 通过对象模型集成阶段得到的所有系统界面表单对象,建立与域模 型对象之间的对应关系,从而验证抽取的表单对象的合理性,同时加深 对遗留系统的理解。域模型中包含的对象可以来自于多个界面表单。通 过进一步的分析,可以得到域模型对象中的热传送模型对象包括热传送 模型参数对象、离岸油井对象、流体热力学属性对象和力学岩石属性; 域模型对象中的井简模型对象包括油管对象、套管对象、射孔间隔对象、 井筒段的摩擦参数对象;域模型对象中的漏失模型对象包括造壁系数对 象和其它流体损失属性对象;域模型对象中的酸压模型对象包括酸成分 和属性对象、传导性参数对象。 5 4 恢复系统用例和表单问对象行为序列图 5 4 1 系统用例抽取 在这一节中把用例抽取方法u a m 应用于研究的酸化压裂系统中。 根据l e n d i 过程,按照界面表单的标题名进行界面分类,得到这个系 统的字母表集为a 产 l 2 1 6 ,其中分别代表压裂设计界面、压裂分析 界面、压裂模型选项界面、井筒配置界面、热传送模型界面、基于岩性 的油藏参数界面、热力学岩石属性界面、力学岩石参数界面、流体选择 界面、编辑查看流体数据界面、支撑剂选择界面、编辑查看支撑剂库 界面、处理选择界面、压裂设计控制界面、处理进度界面、模拟控制界 面;收集系统与执行压裂设计与分析任务用户之间的交互追踪记录,得 到了一个追踪序列集s = s 。,s : 。其中s l _ 1 345 ,7 ,6 ,8 ,6 ,9 ,1 0 ,l l ,1 3 ,1 4 ,1 5 , s 严( 2 ,3 , 4 ,6 ,7 691 0 ,1 1 ,1 2 ,1 5 ,1 6 ) ,s 序列对应压裂设计任务,s z 序列对应 压裂分析任务。 使用i p m 算法,设定c = 2 21 。由于系统的追踪序列比较长,涉 5 l 中国石油大学( 华东) 硕士论文第5 章界谣寝单逆向工程方法应用 及的界面比较多,因此得到的过程图袭非常大,不邋合完全列出。我们 旅鼹与4 ,3 3 萤孛瘊夯绥豹震镶撞取实铡稳嚣静步骤,霹鞋霉蜀焱爱瀵 足条件的模式,如表5 3 所示。 袭5 - 3 从s 中得到的需求模式 揍式p受翰9 砖d 描| b 辩妇毋 l6 - 1 1 1 520 4 70 7 4 2 9 - i i - 1 5205 50 8 7 3暑再谗l o20 7 5l9 4 毒善如5 - 擘1 粕1 1 20 6 1l7 l 1 5 检查耩褥蘩憨每一今模式,查看遮楚模式是部分还是完全与一令奏 正的用户任务所符合。结果是表5 3 中黑体的两个模式 3 ,4 , 7 ,6 ,9 ,i o 和 3 , 4 ,6 , 9 ,1 0 , 1 1 ,1 5 ) 与用户任务相对应。 其审,第一令模式表零选择压裂漉薅,禹爨,这令翔鲷戆文本壤述魏 图5 - 9 ,用例图如图5 1 0 。 用倒;选择蹑裂流体 参与者;系统蠲户 事件流;l 、选择压裂模型,包括鞠或2 d 裂缝模程。 2 、设置井筒中钻孔,套管、油管和射孔的参 数。 3 、输入岩石的热力学参数。 4 、设萋油藏参数。 s 、寝摇设置 l 孽参数建摆滤钵。 6 、对选择的流体编辑、修改。 圈5 - 9 用例选择压裂流体的文本描述 ! 里垒鎏鲞篓! 兰查! 堡生造奎 兰! 兰墨筵塞苎垄塑至堡查堕翌望 系统尾声 图5 。l o 用例选择压裂流体的用例圈 第二个模式表示设计处理进度用例,这个用例的文本描述如图 5 1 l ,爨铡圈强国5 1 2 。 用例:设计处理进度 参与者:系统用户 事件流:1 、选择压裂模型,包括3 d 或2 d 裂缝模型。 2 、设置并篱中钻孔、套管、油管和射孔的参 数。 3 、输入基于岩性的油藏参数。 4 、系统根据设置的参数选择流体。 5 、埘选择的流体进行编辑、修改。 6 ,选择支撑刺。 ! ! 鬟蓬垂鍪鳖蕉鬟遘窒耋! 图5 1 1 用例设计处理进度的文本描述 系统嗣p 图5 1 2 用例设计处理j 度的用例幽 5 4 2 序列图的表示 在这节孛,要辩痤予上苓掰麴玫豹毒令鬻铡产生一个滓翻蚕。下 面以选择压裂流体用例为例按照4 3 4 节中介绍的步骤建立与之对应的 序列图,如图5 1 3 所示。 天 天 中国石油大学( 华东) 硕士论文第5 章界蔼袭单逆向工程方法应用 关点燮竺辈 :t * # 4 * : 赫垭t 生盈i i j t 自揪l i m 毗1 1 五t t 黼l 越n 。,二 ”? 9 4 “ = ”缸一 t * t t ! 图5 1 3 耀铡选择鹾袈流体的序列图 本章把我们所提出的基于面向对象技术的界面袭单逆向工稷方法 应用于一个酸化压裂系统中。首先,对酸化压裂技术和所研究的酸压系 统送蠢了充分懿了解,焱舞层建立了系统靛壤摸登。然嚣,在低蒺进行 系统界面表单分析。把i f o r e 方法应用于系统中,褥到了u m l 炎图表 示的系统对象和对象之触关系以及u m l 序列图袭示的表单内对象行 为;在袄射袭孛建立了獭敬密翡对象与域模鍪对象之闽豹对应关系;把 用例抽取方法u a m 应用于系统中,得到了系统的用例并建立了用例图, 针对每个用铡得到了相应的序列图。 中国石油大学( 华东) 硕士论文第6 章结论 第6 章结论 6 1 论文总结 随着面向对象技术的发展,大量遗留系统面临着向面向对象平台上 移植的问题。因此,基于面向对象技术的逆向工程方法被提出来解决这 个问题。本文在对传统的代码逆向工程和数掘库逆向工程方法进行总结 的基础上,对基于面向对象技术的界面表单逆向工程方法进行了研究。 论文已完成的主要内容如下: l 、对基于面向对象技术的代码逆向工程和数据库逆向工程进行研 究,总结了这两个方面逆向工程的方法,为进行界面表单逆向工程的研 究提供了思路。 2 、对界面表单的概念、特点和分析层次进行了研究,分析了进行 界面表单逆向工程需要满足的条件,提出了一种基于界面表单的逆向工 程方法模型,这个模型包括以下几个方面内容: ( 1 ) 研究了代码逆向工程的同步求精策略,并把它应用于所提出 的界面表单逆向工程方法模型中。 ( 2 ) 对传统的f o r e 方法进行了研究,针对其不足提出了一种改 进的方法i f o r e 。在i f o r e 方法中提出了基于界面表单的对象关系确 定标准,采用u m l 的类图和序列图对不同阶段产生的结果进行表示。 ( 3 ) 对用例抽取方法u a m 进行研究,通过这种方法可实现从界 面表单中抽取出系统的用例。 3 、把提出的逆向工程方法模型应用于一个酸化压裂系统中,检验 方法的可行性和有效性。 本文的创新点主要包括三个方面: l 、把代码逆向工程中的同步求精策略应用于基于界面表单的逆向 中国石油大学( 华东) 硕士论文第6 章结论 工程研究中,在此基础上提出了一个方法模型。 2 、怼传统戆f o r e 方法透孬致遴,挺毒7 一令薪瓣方法i f o r e 。 这种方法可以实现对象荚系的确定,并采用u m l 的类图、序列图对表 单对象及关系和表单内澍象行为进行袭示。 3 、崧援鑫戆方法攘瀣孛弓l 入了一耱爰铡接载方法u a m ,彰实瑷系 统用例的抽取,进而建崴与每个用例对应的序列翻。这个序列图裘示了 表单问对象的行为,可弥补i f o r e 方法只对表单内对象行为进行表示 豹不足。 6 2 进一步的工作 在研究过程中,电予融阕程水警掰限,本文鲍研究不可避兔的存在 一些不足_ 乏处,需要迸一步的完善和深入。主要袭现在以下凡个方面: ( 1 ) 在改进的i f o r e 方法的表单用法分析阶段需要更进一步的实 瑰掩获袭攀知谖的鸯动纯。 ( 2 ) 需要进一步豹实现从界面袭单中自动捕获应用系统的过程逻 辑。 ( 3 ) 露步求精策噻裹层熬域模熬表示法还甏爨进一多的宠落,簌 而更好的蜜现与低层逆向工程结栗的融合。 ( 4 ) 本文所引入的用例抽取方法u a m 仅仪适用于具有犬摄界面 表摹茨成热系统,黠予必莛毒少量赛露豹系统是不逶矮夔,因戴下一步 还需要针对这样的系统邋行方法改进。 在这熙恳请各位专家和同学批评和指导。 ! 垦互塑盔堂! 竺查! 堡堡塞 查耋皇塾 参考文献 【1 】周立萍,陈平逆向工程发展现状研究计算机工程与设计,2 0 0 4 年 1 0 月 2 】a d el u c i a , o a d i l u e e a , a r f a s o l i n oe ta 1 m i g r a t i n g l e g a c y s y s t e m st o w a r d so b j e c t - o r i e n t e dp l a t f o r m s i e e e c o m p u t e rs o c i e t y p r e s s ,1 9 9 7 【3 】s s l i u , n w i l d e i d e n t i f y i n go b j e c t s i nac o n v e n t i o n a l p r o c e d u r a l l a n g u a g e :a ne x a m p l eo fd a md e s i g nr e c o v e r y i n p r o c e e d i n g so ft h e c o n f e r e n c eo ns o f t w a r em a i n t e n a n c e , n o v e m b e r1 9 9 0 【4 】p e l i v a d a s ,t j o h n s o n an e wa p p r o a c ht of i n d i n go b j e c t si np r o g r a m s t e c h n i c a lr e p o r ts e r c - t r - 6 3 一f ,u n i v e r s i t yo f f l o r i d a , j a n u a r y1 9 9 3 【5 】p n e w e o m b r e e n g i n e e r i n gp r o c e d u r a li n t oo b j e c t - o r i e n t e ds y s t e m s i n 3 t hw o r k i n gc o n f e r e n c eo nr e v e r s e e n g i n e e r i n g ,t o r o n t o ,c a n a d a , j u l y1 9 9 5 6 】h m s n e e d ,e n y a r y e x t r a c t i n go b j e c t - o r i e n t e ds p e c i f i c a t i o n sf r o m p r o c e d u r a l l yo r i e n t e dp r o g r a m s s e c o n dw o r k i n gc o n f e r e n c eo nr e v e r s e e n g i n e e r i n g ,p a g e s2 1 7 - 2 2 6 【- qc l o n g ,w t t s a l c l a s sa n do b j e c te x t r a c t i o nf r o mi m p e r a t i v e c o d e j o u r n a lo f o b j e c t - o r i e n t e dp r o g r a m m i n g ,m a r1 9 9 3 ,6 ( 1 ) :5 8 6 9 【8 】b a c h c e ,d l c a r v e r ag r e e d ya p p r o a c ht oo b j e c ti d e n t i f i c a t i o ni n i m p e r a t i v ec o d e i n3 t hw o r k s h o po np r o g r a mc o m p r e h e n s i o n , w a s h i n g t o nd c , n o v e m b e r1 9 9 4 【9 】g o k u lv s u b r a m a n i a m ,e r i cj b y m e d e r i v i n ga no b j e c tm o d e lf r o m l e g a c y f o r t r a nc o d e 1 9 9 6 i n t e r n a t i o n a lc o n f e r e n c eo ns o f t w a r e m a i n t e n a n c e0 c s m 9 6 ) , n o v e m b e r1 9 9 6 中国石油大学( 华东) 硕士论文参考文献 【1 0 】d e r e kr a y s i d e y , s t e v eg e u s se ta 1 t h ee f f e c to fc a l lg r a p hc o n s t r u c t i o n a l g o r i t h m sf o ro b j e c t - o r i e n t e dp r o g r a m so na u t o m a t i cc l u s t e r i n g t h e8 t h i e e ew o r k s h o p0 1 1p r o g r a m c o m p r e h e n s i o n , l i n e f i c k , i r e l a n d ,2 0 0 0 【11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论