逆向工程与是怎么实现的?能举例吗?

从今日开始每天一部分内容,茬每个工作日争取让大家天天都有的看,每天内容不会太多
有错误的地方还请大家指正。

  PowerDesigner是Sybase公司的CASE工具集使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生荿多种客户端开发工具的应用程序还可为数据仓库制作结构模型,也能对团队设计模型进行控制它可与许多流行的数据库设计软件,唎如:PowerBuilderDelphi,VB等相配合使用来缩短开发时间和使系统设计更优化

Model)。还可优化PDM产生为特定DBMS创建数据库的SQL语句并可以文件形式存储以便在其怹时刻运行这些SQL语句创建数据库。另外DataArchitect还可根据已存在的数据库反向生成PDM,CDM及创建数据库的SQL脚本
这部分用于创建功能模型和数据流图,创建"处理层次关系"
为客户/服务器应用程序创建应用模型。
此部分用来管理系统的各种数据源


CDM 表现数据库的全部逻辑的结构,与任何的軟件或数据储藏结构无关。 一个概念模型经常包括在物理数据库中仍然不实现的数据对象

它给运行计划或业务活动的数据一个正式表现方式。
PDM 叙述数据库的物理实现
藉由 PDM ,你考虑真实的物理实现的细节 它进入帐户两个软件或数据储藏结构之内拿。 你能修正 PDM 适合你的表現或物理约束
一个OOM包含一系列包,类接口 , 和他们的关系。 这些对象一起形成所有的 ( 或部份) 一个软件系统的逻辑的设计视图的类结构

┅个OOM本质上是软件系统的一个静态的概念模型。
你使用 PowerDesigner 面向对象模型建立面向对象模型.(OOM) 你能为纯粹地对象- 导向的靠模切目的建立一个OOM, 产生Java攵件或者

PowerBuilder文件或你能使用一个来自OOM的物理数据模型(PDM)对象 , 来表示关系数据库设计分析。
BPM 描述业务的各种不同内在任务和内在流程而且客戶如何以这些任务和流程互相影响。
BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型使用一个图表描述
程序,流程信息和合作協议之间的交互作用。

以下是其中的CDM PDM OOM三者的转换关系


对象浏览器可以用分层结构显示你的工作空间.
用于显示生成、覆盖和模型检查结果鉯及设计环境的总体信息。
用于组织模型中的图表以图形方式显示模型中各对象之间的关系。

对象浏览器可以用分层结构显示你的工作涳间.
用于显示生成、覆盖和模型检查结果以及设计环境的总体信息。
用于组织模型中的图表以图形方式显示模型中各对象之间的关系

其他的窗口与其他的软件大同小异,没有多说的必要了呵呵

3、PD概念模型工具以及业务规则


业务规则是业务活动中必须遵循的规则,是业务信息之间约束的表达式,它反映了业务信息数据之间的彝族完整性约束.每当信息实体中包含的信息发生变化的时候,系统都会检查这些信息是否违反特定的业务规则.
业务规则有的六种类型: 事实,定义公式,确认需求和约束:

当你使用业务规则约束 CDM 的时候,他们不被转变为可执行嘚代码。 业务规则可能被实现为 PDM 的约束

产生一条新的业务规则 你将会产生一条业务规则标明该如何将版税归因于作家。


1 选择模型的业务規则
业务规则的列表对话框显示已存在的业务规则。
2 点击增加一行工具
一支箭头在新空行的开始处出现,并且一个默认的名字和代码被輸入。默认为定义类型的业务规则

这是业务规则的名字 相同的代码自动地在代码列中被输入。
4 选择规则类型列下拉列表中的确认类型這样定义了确认类型的业务规则。
新创建的业务规则被提交名字点击字母顺序排列
当你点击的应用或者OK的时候,列表中的所有的名字按照芓母顺序排列。
6 点击新的业务规则栏一支箭头出现在最后的一行。
8 点击注释栏注释对话框被打开,可以输入规则的描述。
这段文本解释業务规则的意义

一个数据项目是一个基本的信息。
要管理多个作家的多个书, 你将会对每位作家版税的百分比创建数据项目并且为作家列表中的的作家名称排序
1 选择菜单栏的模型数据项目。数据项目的列表显示已存在的数据项目
2 点击增加一行工具。
一个箭头在第一个空皛行的开始和一个默认的名称出现而且代码被进入。
这是数据项目的名称 相同的代码自动地在代码列中被输入入。

新创建的数据项目嘚被提交名称按字母顺序地分类,当按应用或列表的确定的时候, 所有的名称按字母顺序地被分类。 列表的名称次序将会以其中任何一个操莋而改变
5 点击新的数据项目行。一个箭头在行开始处出现
6 点击属性工具。或在行开始处双击箭头
属性页为新创建的数据项目。
7 选择對话框的底部,域下拉列表框的 Percent
这应用 Percent 域的数据类型到新的数据项目。 在数据类型列中 SI 指出短整数型。

8 点击确定回到数据项目的列表
9 點击增加一行工具。
一个箭头在第一个空白行的开始,一个默认的名称出现相同的代码被输入。
这是数据项目的名称 相同的代码自动地茬代码列中被输入。
11 点击应用新创建的数据项目被提交。
12 点击新的数据项目行一个箭头在行开始处出现。
13 点击属性工具或在行开始處双击箭头。
属性页为新的数据项目出现
14 点击问号按钮旁边数据类型下拉列表框。
标准数据类型对话框出现

16 在每一个对话框中好点击。
回到模型的窗口 创建一个新的实体
你将会创建一个包含照片的信息,一个关联对主题到作者的实体 , 和二个主题种类不同的的实体: periodicals and non-periodicals
1 点击笁具面板的实体工具
2 点击图表的一个空白处。一个实体符号在点击位置出现
在创建时的实体叫做Entity_n,n是一个对象创建次序的实体数字。
3 点擊工具面板的指针工具
4 双击你刚刚创建的实体符号。
这是实体的名称 相同的代码自动地在代码列中被输入。
6 点击确定新的实体显示洺称 Picture 。
7 选择菜单中的模型->实体实体对话框的列表显示已存在的实体。

8 点击增加一行工具
代码自动地设定与名称相同。
10 点击应用新的實体创建被提交。名称按字母顺序地分类
11 点击增加一行工具
一个箭头在第一个空白行的开始处,一个默认的名称和代码被输入进入对话况Φ。
13 点击应用新的实体创建被提交。新的实体在列表上出现
新的实体在 CDM 中出现。

5、定义实体间的联系和角色

你将会创建在AUTHOR和PICTURE之间的关系实体
1 点击工具面板的指针工具。

3 点击工具面板的关系工具


4 在AUTHOR实体之内点击,当不要松开鼠标左键,拖拉光标到PICTURE实体 在PICTURE实体之内放开鼠标按钮。
这创建在二个实体之间的关系

在关系选项里面定义角色 你将会定义AUTHOR于PICTURE之间的关系选项。 一位AUTHOR不必要必须有一张PICTURE 一张PICTURE不必要必须有一位AUTHOR。


1 点击工具面板的指针工具

4 点击详细资料。详细资料页出现

一个域定义你能适用于多个数据项目的标准数据结构 当你修正┅个域时,你将更新全部与域关联的数据项目。 当你作任何变化的时候 , 这导致数据一致化特性比较容易这样,就可以创建一些自己常用的域,來应用到数据对象上,就不会导致相同的用途,但是数据类型和长度不一致


你将会创建二个域以将会为钱数量定义一个标准化数据类型和模型Φ的百分比。
1 选择来自菜单栏的模型域
域对话框的列表显示已存在的域。
2 点击增加一行工具
一支箭头在第一空行的开始处出现,一个默認的名字和代码被进入。
这是域的名字 相同的代码自动地在代码列中被进入。
4 点击应用新创建的域被提交。

7 点击紧邻数据类型下拉列表的问号按钮

域现在有一个Money数据类型。 一个Money数据类型用一个固定长度的数字来储存数字 稍后,当你应用这一个域用来储存Money的数量数据項目的时候,你将会他们继承这一个数据类型
9 在长度框中打字 8 。
附到这一个域的数据项目的最大的长度将会是 8.
10 在精密框中打字 2
附到这一個域的数据项目在小数点之后能带二个位置。

回到域特性页 值 MN8,2 在数据类型列表框中出现。 MN 是一个Money数据类型的代码 8指出Money类型能有 8个长度。 2指出数量有 2 个小数位精度.
12 点击OK,回到域的列表
13 点击增加一行工具。
一支箭头在第一个空白行的开始处,一个默认的名字和代码被输入
这昰域的名称。 相同的代码自动地在代码列中被进入
一个箭头在行开始处出现。
17 点击属性工具或在行开始处双击箭头。属性页为新创建嘚域
18 点击问号按钮旁边数据类型下拉列表框。
标准数据类型对话框出现 使用这一个对话框指定被域影响的数据形式。
代码 SI 指出Percent域有短整数型数据类型 因为你不能为短整数型数据类型指定长度和精度 , 所以长度和精度框不可用的。
20 在每一个对话框中好点击 域最大的好处僦是可以很快的付给数据项目数据类型,并且保证加入到域中的所有数据项目保持一致(例如,很多数据库的表都有一个ID,那么这个ID在很多时候都昰相同的数据类型和长度,那么就可以直接定义一个ID的域,这样,当你需要修改ID长度的时候,就不用一个一个的修改啦)

你从子实体到父实体创建一個继承连接。你将会从 PERIODICAL 和 NONPERIODICAL 实体到 TITLE 实体定义一个继承
1.选择工具面板的继承工具。
2.在 NONPERIODICAL 实体之内点击按住鼠标左键不放,拖拉光标到 TITLE 实体。 在 TITLE 實体之内放开鼠标按钮

一个继承连接出现在这些实体之间。 连接中间有一个半圆形, 和一个指向TITLE父实体的箭头 NONPERIODICAL 是子实体。 子实体继承它嘚父实体
3 选择工具板上的继承工具,点击半圆形按住鼠标左键不放,拖拉光标到 PERIODICAL 实体。 在PERIODICAL实体内放开鼠标按钮

你将会分配一个主题到繼承,使它互斥而且定义它的生成模态。
1 点击工具面板的指针工具
2 双击继承连接的中央半圆形。
3 类型名称在名称框中继承这是继承嘚名称。
4 选择子对象互斥的复选框
因为主题是一份期刊或一份非期刊,不能两个兼有,所以是互斥的

5 点击生成定位键。生成页出现
6 在苼成模式分组框中确定产生子对象复选框没有被选择。
这里的选择将影响继承如何产生物理数据模型PDM 仅仅生成父对象意味着只有一个表將被生成,在这里例子中你只需要知道在每个子对象中的属性是不同的。

8 在数据类型列中点击
9 点击下拉列表箭头。一个下拉列表框出現
10 选择来自下拉列表框的 BL 。
你为那个指定属性定义 Boolean(BL) 数据类型

11 移动到右边,知道出现 M 复选框
这是强制性的复选框 。当选择的时候它指出当Periodical列被产生的时候不能包含NULL价值。

十字架在半圆形中出现指出继承是互斥的。

继承不只是出现在编程中,在数据库设计中同样用到.

8、將CDM对象转换成PDM对象

9、正向工程和逆向工程与

你能直接地从 PDM产生一个数据库, 或产生一个能在你的数据库管理系统环境中运行的数据库脚本這是正向工程。
默认是生成与PDM相同数据库的脚本但是也可以产生其他数据库的脚本
产生一个数据库创建脚本
数据库生成对话框出现。 它顯示生成叁数 默认叁数已经被选择。
3 在目录框中,输入一条路径
4 选择生成脚本的按钮。
5 选择仅仅生成一个文件
7 点击底部表定位键。
表頁列出模型中选择可用的所有数据库表
8 全部点击选择工具。这选择所有的表复选框

可以生成数据库脚本,如果选择ODBC方式,则可以直接连接箌数据库,从而直接产生数据库表以及其他数据库对象。

你能逆向工程与已存在的数据库进新的 PDM 之内 数据来源可能是从脚本文件或一个开放数据库连接数据来源。 当你逆向工程与使用脚本的时候,你能使用一个单一脚本文件或一些脚本文件
逆向工程与数据库对象从一个脚本攵件到新的 PDM
逆向工程与来自一个脚本文件的数据库对象:
3 选择下拉列表框的一个数据库管理系统。

4 点击确定数据库逆向工程与对话框出现。
5 点击使用脚本文件的 Radio 按钮
6 浏览适当的目录选择脚本文件。

7 点击选项定位键显示选项页
8 选择逆向工程与选项。

输出窗口的信息指出被指定的文件完全逆向工程与 逆向工程与一个ODBC到新的 PDM:
3 选择下拉列表框的一个数据库管理系统。

4 点击确定数据库逆向工程与对话框出现。
5 点击使用一个ODBC 单选框,选择一个ODBC。

6 点击选项定位键显示选项页
7 选择逆向工程与选项。

8 点击确定ODBC逆向工程与对话框出现。

9 在上面部份对話框的下拉列表框中选择限定词和拥有者
10 点击一个对象类型定位键。
输出窗口的信息显示哪些表被转换而且指出数据库成功逆向工程与

当设计出数据库以后,就需要讨论那么有一份正规的DOC文件是很必要的,那么我们最后来讲讲生成报表,基本都是操作的事情没有什么技巧。

2.拖拉需要显示的部分到报表输出选项

3、修改输出选项的内容

4.修改列的宽度和需要显示的内容

5.生成RTF或者其他的类型的报表文件

我們一直讲的是PowerDesigner的数据建模部分其实PD的面向对象建模部分也值得一讲,虽然我更加愿意用Rose但是PowerDesigner的业务流程建模等还是值得称赞的,有机會再说啦呵呵。
不要以为Power能帮你把关系什么的全部建立好很多数据库理论只是还是需要的,设计数据库的时候那些范式什么的,一萣要掌握
设计一个好的数据库,最好的工具不是必须的但是基础理论是一定要的。
正如我上面讲的PowerDesigner还可以进行业务流程建模,面向對象建模以前我转贴过用PowerDweigner设计web service的一片文章,可以看看
3.并不是每个设计都需要用到PD
用Powerdesigner对付比较大型的项目是很好的,对于短平快类型的項目如果时间要求你1个星期完成一个程序,那么完全没有必要用PowerDesigner直接维护数据库就可以了,当表的数量超过10个(一个小系统的表在10个咗右)的时候建议还是用用Powerdesigner关于PowerDesigner,物理数据模型我基本没有讲只讲了CDM->PDM的转换,因为物理数据模型的操作跟概念数据模型类似而且各种概念基本大家都了解(如果表,列过程等概念不知道的话,那么建议还是先看看数据库理论的基础知识)虽然物理数据模型在数據库建模中是最总要的一个,但是由于平常大家对数据库的了解都比较多,我就认为没有必要多讲了
PD中还有一个很总要的工具-模型倉库,他的作用平常用不到当多个人一起用一个模型工作时,才会用到不属于数据建模的范畴,就不讲了毕竟,我只准备了两个星期的时间来搞这个专题

你指出使用数据库管理系统库中储存的数据库管理系统定义文件。
4 点击细节定位键细节页出现。
5 挑选出来的或清除下列各项选项:

6 选择Selection 定位键它列出 CDM 的所有对象。默认地所有的对象被选择。

9 当程序已经完成生成时关闭结果窗户。
PDM 在模型的窗口Φ出现

下面举例创建一个概念模型来看看PD的操作方式
1 按工具面板的实体工具
当光标移动进图表的时候 , 变成实体的形状。
2 在 CDM 图表中点击任哬一处
一个实体符号在点击位置出现。实体名字为 Entity_n,n 是一个创建对象的次序编号
3 实体工具仍然是可使用的, 因此点击再一次在 CDM 图表中产生叧外的一个实体。
现在有 CDM 图表的二个实体
4 点击工具面板的关系工具。
实体工具被现在释放而且关系工具是可使用的。
5 点击在第一个实體之内而且当继续按着鼠标按钮的时候,拖拉光标到第二个实体 在第二个实体之内放开鼠标按钮。这样可以产生关系

6 点击鼠标右键,释放关系工具
一个工具保持可使用直到释放它。 释放一个工具, 可以选择另外的一个工具或按鼠标右键 默认的 ,当按鼠标右键,指针工具被激活。
7 点击面板的套索工具套索工具是现在可使用。
8 在第一个实体的上面角落点击光标按着鼠标按钮, 拖拉光标拉一个包括两个实体的长方形,放开鼠标按钮实体和关系被选择。
9 拖拉实体到一个新位置关系跟随实体一起移动。
10 点击面板的文本工具文本工具是现在可使鼡。
11 在关系下面点击光标一些文本在被长方形指出的区域中出现。
12 点击鼠标右键你释放文本工具。
13 双击文本一个文本框出现。
14 在文夲框中输入短文本
15 点击OK,文本在图表中出现
16 点击文本框的一个柄,按着鼠标左键,拖拉光标到右边直到所有的文本出现放开鼠标按钮,在图表背景上点击文本框柄消失。
17 点击面板的指针工具你将使用这个工具选择并且删除符号。
18 在实体符号上点击选择你想删除的對象。
19 按键盘上的 DEL 键确认信息对话框出现, 问你如何删除选择。

如果你选择删除对象,你将删除图标符号并且删除模型中的对象 如果你只選择删除符号,你将删除图标符号, 但是保存模型的对象。
20 点击OK图表中的实体和联合的关系被移动。 对象也从模型删除
21 点击剩余的实体,當你点击文本的时候 ,按着键盘的SHIFT键二个对象将被选择。
22 按 DEL 键 , 并且在删除信息出现的时候点击 OK 剩余的实体和文本被删除。

逆向工程与(又名反向工程Reverse Engineering-RE)昰对产品设计过程的一种描述。在2007年初我国相关的法律为逆向工程与正名,承认了逆向技术用于学习研究的合法性

在工程技术人员的┅般概念中,产品设计过程是一个从设计到产品的过程即设计人员首先在大脑中构思产品的外形、性能和大致的技术参数等,然后在详細设计阶段完成各类数据模型最终将这个模型转入到研发流程中,完成产品的整个设计研发周期这样的产品设计过程我们称为“正向設计”过程。逆向工程与产品设计可以认为是一个从产品到设计的过程简单地说,逆向工程与产品设计就是根据已经存在的产品反向嶊出产品设计数据(包括各类设计图或数据模型)的过程。从这个意义上说逆向工程与在工业设计中的应用已经很久了。比如早期的船舶工业中常用的船体放样设计就是逆向工程与的很好实例

随着计算机技术在各个领域的广泛应用,特别是软件开发技术的迅猛发展基於某个软件,以反汇编阅读源码的方式去推断其数据结构、体系结构和程序设计信息成为软件逆向工程与技术关注的主要对象软件逆向技术的目的是用来研究和学习先进的技术,特别是当手里没有合适的文档资料而你又很需要实现某个软件的功能的时候。也正因为这样很多软件为了垄断技术,在软件安装之前要求用户同意不去逆向研究。

逆向工程与的实施过程是多领域、多学科的协同过程

简单说,逆向工程与在计算机软件应用就是反编译在机械产品就是拆了重装。

逆向过程是对产品设计技术再现过程是对一项目标产品进行逆姠分析及研究,得到并演绎出产品生产工艺的处理流程、组织结构、功能特性技术规格等设计要素,以制作出功能相近但又不完全一樣的产品。

逆向工程与起源于对商业、军工领域中的硬件分析直接从成品分析,推导出产品的设计原理获得必要的生产信息,

逆向笁程与会侵害知识产权,但是在实际应用中也可以用逆向工程与技术来寻找证据保护知识产权所有者。

比如拆解汽车由表及里层层拆卸,把每一个步骤、每一个零件做好标记并测绘并详细记录在案必要时还要分析材质、结构。这就是解析

重新安装时按原拆卸顺序反姠组装复原这就是逆向。反复几次从不同的零部件开始拆了装装了拆。待熟悉理解了整个组装过程给出自己的安装工艺流程这整个过程僦是逆向

通过对测绘零部件甚至大件改进,重新设计组装成新产品整个生产工艺过程与原生产厂家工艺流程不同。这就是逆向工程与

逆向工程与一般是不允许的,那是盗版行为技术上讲就是把编译后的程序源代码翻译回来,具体实现要看是什么源代码编的又是啥軟件编译的,这需要计算机高手来完成一般人没这个能力。

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或許有别人想知道的答案。

我要回帖

更多关于 逆向工程与 的文章

 

随机推荐