逆向工程原理和方_第1页
逆向工程原理和方_第2页
逆向工程原理和方_第3页
逆向工程原理和方_第4页
逆向工程原理和方_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、逆向工程原理和方法逆向工程的内涵与意义 逆向工程又称作反求工程、反向工程。广义的逆向工程包括形状(几何)反求、工艺反求和材料反求等诸多方面,是一个复杂的系统工程。目前,有关逆向工程的研究主要集中在形状反求方面。 形状反求:是指用一定的测量手段对实物是式模型进行测量。根据测量数据采用三维几何建模方法重构实物CAD模型过程,是一个从样品生产成成品数字化信息模型,并在此基础上进行产品设计开发及加工制造全过程。 逆向工程可分为:数据获取、数据预处理、数据分块与曲面重构、CAD模型构造、快速原型。 数据获取根据测量方式可以分为:接触式和非接触式两大类。应用领域发展趋势 1)在飞机、汽车、家用电器等产品的

2、开发中。 2)由于工艺、美观、使用效果等方面的原意,人们经常要对已有的构件做局部修改。 3)在缺乏二维设计图样或原始设计参数,需要把实物转化为CAD模型。 4)某些大型设备经常因为某一零件的损坏而停止运行,通过逆向工程手段,可以快速生产这些零件,从而提高设备的利用率。 5)一些特殊领域,如艺术品、文物复制。 6)借助工业CT技术,逆向工程不仅可以生产物体的外部形状,而且可以快速发现物体的内部缺陷。发展趋势 以下几方面技术的反战值得期待: 1)发展面向反向工程的专用测量系统,使之能高速、高精度的实现实物数字化,并能根据样件几何形状和后续应用选择测量方式及路径,能进行路径规划和自动测量。 2)研究

3、适应不同的测量方法和后续用途的离散数据预处理技术。 3)拟合曲面应能控制曲面的光顾性和进行光滑拼接。 4)有效的特征识别和考虑约束的模型重建以及复杂组合曲面的识别和重建方法。 5)发展基于集成的逆向工程技术,包括测量技术、基于特征和集成的模型重建技术,基于网络的协同设计和数字化制造技术等。 研究现状研究现状软件逆向工程的研究已经有10多年的历史了。在国外,软件逆向工程是作为对软件维护的一部分出现的,主要是通过逆向工程理解程序,对系统进行维护、迁移和进化遗产系统。目前,逆向工程技术的重要性已经引起重视,得到了国内外学术界和商业界的广泛认同。在学术界,面向逆向工程领域的国际会议WCRE、IWPC和

4、PASTE每年举行一次。卡内基梅隆大学软件工程研究所成立了专门的再工程中心,致力于逆向工程的研究。IBM研究中心(IBMResearch)设立了“软件工程中关注点的多维分解”研究项目,研究工作已经进行了多年。逆向工程技术发展至今,已经研制开发出许多工具,下面介绍一些典型的国内外逆向工程工具。RationalRose/RoseRealTimeRoseArehitect RoeeRoeeRealTime(RoseI)提供的逆向工程工具,可以从多种程序设计语言源程序中自动产生静态设计模型,但目前只能逆向产生类图。RoseArchitect是USC(UniversityofSouthernCalifo

5、rnia)与Rational合作开发的一种可视化工具,用于对UML类图中的实体进行基于规则的等价合并,以突出地呈现系统的软件体系结构成份Rigi Rigi是一个可扩展、可裁剪的逆向工程环境。用半自动的工具从软件表示中提取数据信息,将信息存入低层库中,系统被抽象为子系统的分层结构。主要由3部分构成:支持CC+、COBOL等语言的程序静态信息解析器用于存储从源代码提取的信息的程序静态信息库以及展示和操纵程序静态信息的交互式窗口图形编辑器。Rigi可以与一种支持面向对象动态建模的环境S晓D协同使用,分别得出目标系统源程序的静态信息和动态信息。MicrosoftVisio2002 有三个不同版本:标准

6、版提供图表解决方案,帮助业务专业人员共享他们日常处理的信息并加以可视化;专业版增加了新的功能,帮助技术专业人员对现有创意、信息和系统加以可视化,并建立新创意、信息和系统的原型;企业版带有企业网络工具附件,IT专业人员可以获得高级网络图表和文档能力。Sniff+ Sniff+不是一个单纯的逆向工程工具,而是一个开放的、可扩展、伸缩的CC+程序设计环境,具有逆向工程能力。Sniff+提供了一个有效丽轻便的环境,用户界面友好。Sniff+适用于不能完全解析的半成品软件系统,在产生可打印的视图和浏览半成品系统等方面也具有特色。Imagix4D 一个CC+程序的静态理解工具,它可以提供多层次的视图,以表

7、示从高层设计到实现的细节、类和函数的依赖关系等。Imagix4D以三维图形的形式展示关键信息,使得用户的注意力集中在回答特定问题的视图上。Irmnagix4D提供了产生大量视图的能力以及从源代码生成文档的能力。它提供的交互式询问功能对迅速理解程序很有帮助。MORALEISVis EDCS(EvolutionaryDesignofComplexSoftware,复杂软件的进化式设计)类课题。课题中与逆向工MORALE(MissionOrientedArchitecturalkgacyEvolution)是DARPA资助的一个程有直接关系的是ISVis(InteractionScenarioVis

8、ualize)工具。这种工具的功能包括:读入源程序文件,解析后产生静态信息文件;利用源代码、静态信息文件以及用户提供的相关的信息,产生获取动态信息所需的代码;执行插入上述代码后的目标系统,产生动态事件跟踪信息,并自动转变成剧情;用户通过所产生的剧情视图进行交互式分析August-II August-II是一个数据逆向工程工具。该工具以COBOL记录格式或DB2数据定义等各种各样的数据资源为输入,产生概念数据模型,使用户能够理解当前的环境并转向新的数据技术。其输出能用作许多不同软件包如CASE工具和商业数据库管理系统的输入RefineC一种可扩展的、交互式反转C程序的工作平台,它提供了应用程序设

9、计接口,以支持用户建立具有自己风格的源程序分析工具。在许多国内外文献中对Refine/C程序解析器评价很高,并认为它具有良好的可扩展性。国内的逆向工程工具主要有青鸟程序理解系统JBPAS(JadeBirdProgramAnalysisSystem),是青鸟型系统的组成部分。JBPAS是由一个C+分析器前端和一组分析工具组成的程序理解系统。该系统针对C+语言,采用增量分析技术对程序源代码进行静态分析;用EER(EnhancedEntityRehtionship)为C+程序建立概念模型并抽取程序信息,将信息保存在数据库中;按照不同的用户需求组织程序信息,辅助用户理解C+程序;逆向生成源程序的CK)

10、D(Object-OrientedDesign)文档和Rose文档。该系统中的面向对象测试支持工具(Object-OrientedTestingSupporter)能够利用插装技术跟踪程序的运行,以辅助测试用例的生成。主要步骤和分析方法主要步骤和分析方法 由逆向工程定义可知:软件逆向工程的任务包括分析系统、抽象系统和展现系统,从而实现协助用户理解系统的目的。分析系统是指分析系统的结构及运行过程,但不管目标系统面向何种应用领域,分析系统不外乎是分析系统的静态信息和动态信息。目标系统面对不同的应用领域,要实现抽象目标系统的任务,需要领域知识和专家的经验。展现系统最好的方式是使系统可视化。现有的逆向

11、工程分析方法主要有以下4种词法分析和语法分析 该方法主要是对程序源码进行分析,得到程序信息的多种有用表示,其中最常用的就是交叉引用列表。通过语法分析可以得到两类表示:分析树(parsetree)、抽象语法树AST(abstractsyntaxtree),其中AST是更复杂的程序分析工具基础,包含了和程序的实际内容相关的细节。图形化方法 图形化方法包括控制流分析、数据流分析以及程序依赖图。控制流分析是在确定程序语法结构之后进行。数据流分析关注于解决程序中从定义到使用的过程的相关的问题,比控制流分析要复杂得多。程序依赖图是数据流分析的进一步改进,比数据流分析更复杂。在程序依赖图中,控制流和数据流依赖放在一起处理,程序依赖图还具有这样的结构特性:一个程序依赖图描述了一个控制依赖的区域。程序切片 切片技术来源于数据流分析方法,已经成为很多程序理解工具的基础。一个程序切片是由程序中的一些语句和判定表达式组成的集合。这些语句和判定

温馨提示

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

评论

0/150

提交评论