B第2章 PowerDesigner基础

更新时间:2024-04-12 12:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第2章 PowerDesigner软件分析建模的基本概念

PowerDesigner的首席架构师王晓昀,于1989年在法国SDP公司研制出的名为AMC*Designor1.0数据库建模工具,获得了良好的经济和社会效益。1991年产品定名为S-Designor,并在美国开始销售。1995年Powersoft公司收购了SDP公司,同年Sybase收购了Powersoft,此后该产品更名为PowerDesigner。

PowerDesigner经历了两个发展阶段。第一阶段从1989年到1996年,版本从1.0发展到6.0,其主要目标是应用实体-联系(Entity-Relationship,简称E-R)理论解决数据建模问题;第二阶段从1996年至今,版本从6.0发展到15.0,其主要目标是完成业务流程建模、数据建模、应用程序建模和代码生成等工作。目前,PowerDesigner几乎能够完成软件分析建模的全部工作,但在代码生成和集成开发环境(Integrated Develop Environment,简称IDE)的支持方面尚需进一步完善。

2.1 PowerDesigner概况

长期以来,软件开发过程缺乏规划,并且没有详细的文档,这给软件的维护工作带来很多困难。为了降低软件维护的难度,提高软件质量,使分析人员、开发人员、测试人员、数据库管理人员、用户之间能够通过设计文档进行有效的沟通,许多计算机软件厂商都在研制计算机辅助软件工程(Computer Aided Software Engineering,简称CASE)平台,用来完成软件的分析建模工作。如Sybase、IBM、CA和Microsoft等,其中Sybase公司的PowerDesigner就是最优秀的CASE平台之一,使用这个平台可以更好地完成软件的分析建模工作,为设计更优秀的软件产品提供了保证。

2.1.1软件分析建模需要安装的软件

1.安装PowerDesigner12.5

打开PowerDesigner12.5安装盘,双击Setup.exe文件,根据提示完成安装。 2.安装Microsoft SQL Server2000

利用PowerDesigner进行软件分析建模,需要一种DBMS作支持。本书以在Microsoft Windows XP操作系统上安装Microsoft SQL Server 2000标准版为例,读者也可安装其它种类的DBMS,如Sybase Adaptive Server Anywhere 、Oracle、IBM DB/2等,不论采用哪种DBMS都能达到掌握PowerDesigner的目的。 3.安装Microsoft Analysis Services

利用PowerDesigner建立物理数据模型的多维图时,应根据设计者的需要安装一种OLAP产品作支持,这些产品有Sybase AS IQ,Microsoft SQL Server Analysis Service等,本书在Microsoft Windows XP操作系统上安装了Microsoft SQL Server Analysis Service,读者也可以安装其它OLAP产品。

32

4.安装Microsoft Office 2003

PowerDesigner建立的需求模型可以与Microsoft Office2003中的Word交换信息,物理数据模型可以生成到Microsoft Office2003中的Access中,因此,需要安装Microsoft Office Word 2003与Microsoft Office Access 2003。

2.1.2PowerDesigner能够完成的分析建模工作

利用PowerDesigner可以建立八类模型,即业务流程模型、概念数据模型、自由模型、信息流模型、面向对象模型、物理数据模型、需求模型、XML模型。它们的英文全称、中文名和英文缩写如图2-1所示。

业务流程模型(BPM) 概念数据模型(CDM)

自由模型(FEM) 信息流模型(ILM) 面向对象模型(OOM) 物理数据模型(PDM) 需求模型(RQM) XML模型(XSM) 图2-1 PowerDesigner八类模型的中英文名称对照 在上述模型中,OOM的类图、PDM、XSM、BPM可以生成相关代码;此外,软件开发人员编写的代码也可生成相关的模型。掌握这些模型是学好软件分析建模的关键。图2-2描述了这些模型与其代码的生成关系。CDM、ILM、RQM和FEM不能生成代码。

C#、VB.NET、Java、J2EE、PowerBuilder、XML、WebServices、WSDL代码 OOM中的类图

生成 Database SQL Script(DLL)或通过ODBC生成数据库 PDM

XML DTD、XML Schema代码 XSM

ebXML、BPEL4WS代码 BPM

图2-2 四类模型与其代码的生成关系

2.1.3PowerDesigner启动时的界面

安装PowerDesigner后,单击开始>程序>Sybase>PowerDesigner12>PowerDesigner启动系

统,如图2-3所示,它由标题栏、菜单条、工具栏、浏览器窗口和输出窗口五部分组成。

浏览器窗口用来管理本地和企业知识库中的模型,包括本地浏览器窗口(Local)和企业知识库浏览器窗口(Repository)两个子页。Local页上显示本地建立的各种模型;Repository页上显示企业知识库中的模型。注意,只有PowerDesigner与企业知识库连接后,这个页面才能正确显示企业知识库中的模型。

输出窗口包括General、Check Model、Generation和Reverse四个子页。General页上显示建模过程中的通用信息,Check Model页上显示检查模型过程中的信息,Generation页上显

33

示模型生成过程中的信息,Reverse页上显示逆向工程中的信息。

图2-3 PowerDesigner初次启动时的界面

2.1.4PowerDesigner新建模型的步骤

PowerDesigner新建模型的步骤如下:

⑴选择File>New菜单或单击工具栏中的New工具,打开如图2-4所示窗口。

图2-4 新建模型的New窗口

⑵从窗口左侧的Model type窗格中选择一种新建模型的类型,如Business Process Model。根据所选模型类型的不同,窗口右侧显示不同的内容。

⑶在窗口右侧的Model name框中填写模型名称,并选择适当选项。例如,要建立BPM,则在Process language框中选择一种业务流程语言;要建立PDM,则在DBMS框中选择一种数据库管理系统;要建立OOM,则在Object language框中选择一种面向对象语言;要建立XSM,则在XML language框中选择一种XML语言。

⑷建立BPM、OOM或PDM时,在First Diagram框中选择相应的图形类型。在浏览器窗口中右击模型,从弹出的菜单中选择New>图形类型,可以在模型中增加新的图形。

⑸单击“确定”按钮,浏览器窗口会显示新建的模型,如图2-5所示。图形窗口用来设计或显示模型的图形,使用工具选项板,在图形窗口可完成大部分的建模工作。打开不同的模型,相应的图形窗口和工具选项板也会不同。

34

图2-5 新建一个模型的工作环境

⑹单击Save或Save All工具保存模型。每个模型保存在一个有特定扩展名的文件中。保存模型时,系统自动产生一个备份文件,如果主文件损坏,则可以把备份文件的扩展名修改为主文件的扩展名,即可打开模型。

2.1.5模型类型的图标及扩展名

在浏览器窗口,每个模型前都会出现表示模型类型的图标,PowerDesigner各类模型的图标如表2-1所示。

表2-1 PowerDesigner各类模型的图标

图标 模型的英文名称 Business Process Model Conceptual Data Model Free Model Information Liquidity Model Multi-Model Report Object-Oriented Model Physical Data Model Requirements Model XML Model 模型的中文含义 业务流程模型 概念数据模型 自由模型 信息流模型 多模型报告 面向对象模型 物理数据模型 需求模型 XML模型 文件扩展名 .bpm .cdm .fem .ilm .mmr .oom .pdm .rqm .xsm 备份文件扩展名 .bpb .cdb .feb .ilb .bmr .oob .pdb .rqb .xsb 2.1.6PowerDesigner的工具选项板

根据打开模型的不同,会出现不同的工具选项板。打开BPM、CDM、PDM、OOM、ILM、XSM、FEM等七种模型时的工具选项板如图2-6所示,RQM没有工具选项板。其中,工具选项板上、下部的工具完全相同,中间的工具根据模型的不同而不同。

35

图2-6 各种模型的工具选项板

工具选项板上部工具的作用如下:Pointer选择一个模型对象;Grabber移动全局模型图形;Zoom In放大图形;Zoom Out缩小图形;Open Diagram打开模型中一个包(Package)中的图形;Properties打开图形对象的特性窗口;Cut删除或隐藏图形对象;Package在图形窗口新建一个包,即新建一个文件夹。

工具选项板下部的12个工具的作用如下:File产生文本文件;Note产生文本框;Link/Extended Dependency在两个模型对象之间建立连接或扩展依赖;Title产生标题框;Text产生文本;Line画直线;Arc画弧线;Rectangle画矩形;Ellipse画椭圆;Rounded Rectangle画圆角矩形;Polyline画折线;Polygon画不规则的封闭形状。

2.1.7PowerDesigner模型对象的特性窗口

打开模型对象特性窗口有以下几种方法:⑴双击图形窗口的一个模型对象;⑵单击工具选项板上的Properties工具,然后单击图形窗口的任何一个模型对象;⑶右击图形窗口的一个模型对象,从弹出的菜单中选择Properties;⑷右击浏览器窗口的一个模型对象,从弹出的菜单中选择Properties。

图2-7是BPM模型中Process对象的特性窗口。不同的模型对象其特性窗口的内容也不尽相同,但都包含许多特性页,如General、Notes、Rules等。在特性窗口的左下角有<>按钮。单击<>按钮,窗口的特性页会增加。单击“帮助”按钮可以获取联机帮助。

图2-7 模型对象的特性窗口

36

2.1.8PowerDesigner模型对象的列表窗口

使用Model>各种对象菜单,打开的模型对象的列表窗口如图2-8所示。列表窗口能够显示所选类型的模型对象,对象特性以列表的方式显示。选择其中一行,双击选中行前的右向箭头,可以打开该对象的特性窗口。单击Help按钮可以获取联机帮助。 图2-8 模型对象列表窗

2.1.9PowerDesigner检查模型的相关窗口

采用下列方法打开如图2-9所示的检查模型参数窗口。⑴右击图形窗口空白处,从弹出的菜单中选择Check Model;⑵使用Tools>Check Model菜单;⑶右击浏览器窗口的一个模型,从弹出的菜单中选择Check Model。

图2-9 检查模型参数窗口

选择检查项目之前的复选框,单击“确定”按钮,打开如图2-10所示的结果列表窗口,在Check Model子页上显示检查模型的结果。包括错误和警告两种结果。

图2-10 检查模型结果列表窗口

使用Edit>Find Objects菜单或右击图形窗口空白处,从弹出的菜单中选择Edit>Find Objects,打开如图2-11所示的查找对象(Find Objects)窗口。

37

图2-11 查找对象窗口

选择并填写合适的查找条件,然后单击Find Now按钮,打开图2-12所示的结果列表窗口。在Find子页上显示与查找条件相匹配的对象及其特性。 图2-12 查找结果列表窗口中的对象

2.2 PowerDesigner的公共资源

使用PowerDesigner建立的每个模型都基于一个元模型(MetaModel),元模型是描述模型的模型。没有元模型就无法建立新模型,元模型是新模型的底层。修改元模型会直接影响基于它的模型。从继承的角度看,元模型是模型的父模型,模型采用继承的方式得到元模型的所有特性。

到底多个模型共享一个元模型,还是每个模型单独拥有一个元模型?例如,新建立一个BPM时,可以看到Share the process language definition和Copy the process language definition in model单选按钮,如图2-13所示。选择Share…表示新建的BPM共享系统预定义的元模型;选择Copy…表示把系统预定义的元模型复制一份到新建的模型中。这样Copy方式建立的模型文件要比Share方式建立的模型文件大一些。

图2-13 共享或复制元模型选项窗口

当有特别需求时,需要新建一个独立的元模型。新建模型时,通过选择Copy…把新模型与元模型结合起来。元模型存放在PowerDesigner的Resource Files目录中,根据元模型的不同分类,分别存放在不同的子目录中,一个文件代表一个元模型。表2-2是每个子目录中存放的元模型。

38

使用Tools>Resource菜单可以对元模型的定义进行修改。元模型是PowerDesigner的一个重要概念,正确使用元模型可以增加模型的弹性。通常,并不需要修改元模型文件,若需要修改,则建议新增一个元模型,在新建模型时选择Copy…,这样可以避免更改常用的元模型。若不慎更改了,最简单的解救办法是从其它机器上拷贝一个元模型文件。

表2-2 每个子目录存放的元模型及其说明

子目录 Conversion Table DBMS Extended Model Definition HTML Report Style Sheets Object Languages Process Languages Report Languages Report Templates RTF Report Templates XML Languages Settings SmartWinForm WinForm JSF(Java Server Faces) 说明 存放转换码对照表的元模型,转换码是指较长字串的一个简短代码。如,输入ACCT,PowerDesigner将帮助转换成Accounting 存放各种DBMS的各个版本的元模型 存放PowerDesigner各类模型的各种语言扩展模型定义的元模型 存放HTML格式报告套用的样式文件。通过修改HTML报告样式单,可以定制自己的报告样式,如,修改公司的Logo等 存放模型所用对象语言对应的元模型 存放模型所用流程语言对应的元模型 存放模型报告所用语言对应的元模型。如,国内公司一般选择Traditional Chinese 存放各种模型提供的模型报告模板对应的元模型。每种模型都有std(standart)、list和full三类元模型 存放RTF格式报告模板对应的元模型 存放XML模型三种不同模式对应的元模型 对象、表和视图、触发器和存储过程、用户和用户组的设置所对应的元模型 存放智能化窗口公用的图标 存放普通窗口公用的图标 Java的标准编程接口及标签库元模型 2.3模型间的生成和跟踪关系

在软件分析建模过程中,会产生多种类型的模型。这些模型之间可以相互转换,并可生成相关的代码。另外,需求模型可以通过其它模型实现,其它模型与需求模型之间形成跟踪关系。

2.3.1模型、外部系统间的关系

图2-14描述了模型、外部系统间的关系。方框表示模型,实线箭头、虚线箭头表示模型、外部系统间的生成或逆向工程。虚线表示模型或外部系统间的关联。

从图中可以看出,FEM是一个独立的模型,ILM表达PDM、CDM、BPM、OOM、XML之间的映射关系。PDM可以生成数据库,数据库可以通过逆向工程生成PDM。OOM可以生成对象语言程序,对象语言程序可以通过逆向工程生成OOM。BPM可以生成业务流程代码,生成业务流程代码可以通过逆向工程生成BPM。另外,PDM、CDM、BPM、OOM、XML之间可以相互生成。

39

图2-14 模型、外部系统间的关系

2.3.2各种模型与需求模型间的跟踪关系

在图2-15中,用实线箭头表示各种模型与需求模型(RQM)间的跟踪关系;用水印箭头表示模型间的生成;用水印虚线箭头表示模型与外部系统的生成和逆向工程;用虚线表示模型间的关联。

图2-15 各种模型与需求模型间的跟踪关系

2.4模型对象的快捷方式

在各种模型图形中,均能建立模型对象的快捷方式(Shortcut)。快捷方式只是引用目标对象(Target Object)的一个图形符号。一个目标对象可以建立多个快捷方式,一个快捷方式也可以建立多个新的快捷方式。如果快捷方式与目标对象处于同一个模型的不同包中,则称其为内部快捷方式(Internal Shortcut);如果快捷方式与目标对象处于不同的模型中,则称其为外部快捷方式(External Shortcut)。无论内部快捷方式还是外部快捷方式,在其图形符号的左下角都会出现符号。

建立内部快捷方式的方法与建立外部快捷方式的步骤基本相同。例如,在CDM中建立Person外部快捷方式的步骤如下:⑴新建一个CDM1模型,并产生一个Person实体。⑵右击Person实体的图形符号,从弹出的菜单中选择Edit>Copy,或使用工具栏上的Copy工具复制这个实体。⑶新建一个CDM2模型,右击图形窗口的空白处,从弹出的菜单中选择Edit>Paste as Shortcut,这样在CDM2中就产生了CDM1中Person的一个外部快捷方式,并在这个外部

40

快捷方式的图形符号的左下角出现符号。新建的外部快捷方式还可以与其它实体建立联系,如图2-16所示。

图2-16 外部快捷方式示例

2.4.1快捷方式的目标对象

多数模型对象都能产生快捷方式,但也有一些对象不支持快捷方式或仅支持内部快捷方式,表2-3列出了不支持快捷方式或仅支持内部快捷方式的模型对象。

表2-3 不支持快捷方式或仅支持内部快捷方式的模型对象

模型 OOM BPM XSM RQM 不支持快捷方式的模型对象 仅支持内部快捷方式的模型对象 Start、End、Decision、Synchronization、Junction point、Transition、Message State、Interaction、Fragment、Interaction、Reference Start、End、Decision、Synchronization、Resource flow、Service Flow、Correlation、Variable provider、Service interface、Operation - Traceability link、User allocation Import、Include、Redefine、Annotation - 2.4.2产生快捷方式的方法

通过拷贝(Copy)和粘贴(Paste)或拖拽(Drag and Drop)都能产生模型对象的快捷方式。 1.通过拷贝和粘贴产生快捷方式

通过拷贝和粘贴产生快捷方式的步骤如下:

⑴在浏览器或图形窗口中选择一个目标对象,并同时按下Ctrl+C键或选择Edit>Copy。 ⑵打开一个希望产生快捷方式的包的图形窗口。

⑶选择Edit>Paste as Shortcut,或在包的图形窗口空白处单击鼠标右键,从弹出的菜单中选择Edit>Paste as Shortcut。 2.通过拖拽产生快捷方式

在浏览器或图形窗口选择一个目标对象,在按下Ctrl+Shift的同时将该对象拖拽到目标模型的不同包中,快捷方式的图形符号就会出现在打开的图形窗口中。

41

2.5模型对象的复制品

对象的复制品(Replica)是源对象的一个复件,它可以与源对象完全相同,也可以在某些特性上与源对象不同。

例如,在一个PDM中,要求Client表包含ClientNO、ClientName、ClientAddr等列,而在另一个PDM中,要求Client表只包含ClientNo和ClientName列。这时,应使用Client表的复制品,而不能使用Client表的快捷方式。

产生源对象的复制品时,先产生一个与源对象完全相同的复制品,缺省情况下,修改源对象的某些特性时,复制品随源对象的变化而自动更新。源对象与复制品之间的同步是通过复制(Replication)维持的,修改复制特性能使复制品与源对象不完全同步。虽然复制在浏览器与图形窗口中不可视,但通过Model>Replication菜单可以在打开的窗口中修改其特性。

2.5.1复制品的源对象

多数模型对象都能产生复制品,复制品也可作为源对象产生新的复制品。表2-4列出了各类模型中能够产生复制品的源对象。

表2-4 各类模型中能够产生复制品的源对象

模型图名称 CDM PDM Physical Diagram PDM Multidimensional Diagram OOM Class Diagram OOM Use Case Diagram OOM Sequence Diagram OOM Activity Diagram OOM Component Diagram OOM Object Diagram OOM Deployment Diagram OOM Collaboration Diagram OOM Statechart Diagram BPM Business Process Diagram XSM XSD Diagram XSM DTD Diagram RQM All modules Entity、Data Item Table、View、User、Role、Group、Abstract data type、Test data profile、Storage、Tablespace、Procedure、Trigger template、Trigger template Item、Join index、Sequence、Database package、Synonym Cube、Dimension、Fact、Data source Class、Interface Use case、Actor Object、Actor Object state、Organization unit、Object、Activity Component Object Component instance、Node Object、Actor Event、State Organization unit、Resource、Message format、Data、Service provider、Event、Data transformation、Variable、Correlation、Process、Correlation key Attribute group、Attribute、Element、Simple type、Complex type、Group、Notation、Import、Include、Redefine Entity、Attribute group、Attribute、Element、Group、Notation Term、User、Group、Replication File、Business Rule、Domain、Data Source 能够产生复制品的源对象 42

2.5.2产生复制品的方法

通过复制对象窗口或拖拽的方法都能为源对象产生复制品。

使用Edit>Replicate Objects菜单,或右击图形窗口的空白处,从弹出的菜单中选择Edit>Replicate Objects,打开如图2-17所示的复制对象窗口;选择对象前面的复选框;最后单击OK,则所选对象的复制品出现在浏览器和图形窗口。

图2-17 复制对象对话窗口

在浏览器或图形窗口中,按下Alt+Shift键的同时拖拽模型对象,就会在释放位置产生该对象的复制品,拖拽期间鼠标显示为符号。例如,表Table1_1包含Column_1和Column_2两个列,在浏览器窗口选择Column_1,按下Alt+Shift的同时把它拖拽到Table_2上,这时,在Table_2表中就会产生Column_1的复制品,如图2-18所示。

图2-18 产生子对象复制品的方法 2.5.3修改复制特性

复制特性决定了复制品与源对象的特性哪些同步,哪些不同步。修改复制特性的方法如下:双击图形窗口的一个复制品,打开该复制品的特性窗口,单击Version Info页,从Replicated from组框中选择Replication Properties按钮,打开复制特性窗口,单击Delete Replication按钮,可以删除对象间的复制关系;或选择Model>Replications,打开复制列表窗口,双击一个复制前面的右向箭头,就可以打开复制特性窗口,如图2-19所示。

复制特性窗口包括General、Attributes、Collections和Sub-Replications四个子页。General页显示复制的通用特性;Attributes页显示单一复制特性的清单,选择特性前的复选框,表示源对象与复制品的这个特性必须同步,反之则表示源对象与复制品的这个特性可以不同步;Collections页上显示集合性特性的清单,选择特性前的复选框,表示源对象与复制品的这个特性必须同步,反之则表示源对象与复制品的这个特性可以不同步;Sub-Replications页上显

43

示该复制包含的子复制(如,PDM中一个Table对象中的Column复制),双击其中的一个子复制就可以打开子复制的特性窗口。 图2-19 复制的特性窗口

2.6模型的比较与合并

比较(Compare)两个同类模型或两个同类资源文件,可以发现它们的异同点。两个同类模型或两个同类资源文件可以合并(Merge)。

2.6.1比较模型

比较模型的方法如下:打开一个模型,使用Tools>Compare Models菜单,打开Select Models to Compare窗口,如图2-20所示。Model2中显示当前打开的模型,在Model1中选择当前工作区中要与Model2比较的一个模型。单击Options按钮可以设定比较选项。

图2-20 选择比较的模型窗口

单击OK按钮,打开Compare Models窗口,如图2-21所示。窗口上部的两个窗格显示Model1和Model2中的各个对象,下部的窗格显示窗口上部选定对象特性的差异。双击窗口上部窗格中的对象或右击对象,从弹出的菜单中选择Properties,打开该对象的特性窗口。可以同时打开多个对象的特性窗口,供比较使用。

比较模型窗口能够检测到两个模型之间存在的四类不同:⑴产生(Creation),当一个模型中产生了一个新对象,则这个对象显示为蓝色;⑵删除(Deletion),当一个模型中删除了一个对象,则这个对象显示为灰色;⑶修改(Modification),当修改了对象的特性时,这个对象图标的右下角显示一个红色惊叹号;⑷移动(Move),当对象被移动到不同的位置时,在对象图标右下角显示一个绿色箭头。

44

图2-21 比较模型窗口

2.6.2合并模型

合并模型的方法如下:打开一个模型,使用Tools>Merge Models菜单,打开如图2-22所示窗口。To框中显示当前工作区中打开的模型,From框中可以选择一个当前工作区中要与To框中模型进行合并的模型。注意,若要合并两个PDM,则两个PDM必须具有相同的DBMS;若要合并两个OOM,则两个OOM必须具有相同的对象语言;若要合并两个BPM,则两个BPM必须具有相同的业务流程语言。单击Option按钮,可以设定合并选项。 图2-22 选择合并的模型窗口

单击OK按钮,打开如图2-23所示窗口。窗口上部的两个窗格显示From框和To框中模型的各个对象,并标明对象间存在的差异,窗口下部的窗格显示窗口上部选定对象的特性存在的差异。双击窗口上部窗格中的对象,打开该对象的特性窗口。右击窗口上部窗格中的对象,从弹出的菜单中选择Properties也可以打开该对象的特性窗口。注意,可以同时打开多个对象的特性窗口,供比较模型使用。 图2-23 合并模型窗口

45

选择右窗格对象前的复选框,表示按照左窗格中对象的特性在右窗格的模型中增加(+)、删除(-)、替换(=)对象的特性。单击OK按钮,执行从From框模型到To框模型的合并。

2.7模型的影响分析

当改变或删除模型中的对象时,使用影响分析(Impact Analysis)功能可以了解这些操作对当前或其它模型产生的影响。影响分析主要用于如下情况:⑴改变RQM中的需求产生的影响;⑵删除对象产生的影响;⑶固化(Consolidation)模型产生的影响;⑷改变主键列数据类型产生的影响;⑸改变类操作的Signature产生的影响。另外,使用分析(Analyze)、过滤(Filter)、打印(Print)、保存(Save)等功能可以进一步帮助设计者完成影响分析工作。

启动影响分析有如下几种方法:⑴右击浏览器窗口中的一个对象,从弹出的菜单中选择Impact Analysis;⑵在图形窗口右击一个对象的图形符号,从弹出的菜单中选择Edit>Impact Analysis;⑶打开一个对象的特性窗口,选择Dependencies页,单击Impact Analysis按钮;⑷当删除一个对象时,在Confirm Deletion对话窗口单击Impact button按钮。

影响分析窗口可以显示该对象所影响到的全部对象,包括关联对象、外部快捷方式和复制品等,如图2-24所示。窗口上部包含的五个工具的作用见表2-5。

图2-24 影响分析窗口

表2-5 影响分析窗口工具的作用

图标 含义 Object Properties Add objects to be analyzed Edit Default Propagation Rules Reset Extract Dependencies 作用 打开影响项目对象的特性窗口 在影响窗口中增加新的影响分析对象 编辑缺省传播规则 重新显示影响项目 从企业知识库中提取与影响对象相关的影响项目 每一个影响项目后面的方括弧中显示一个事件(Event),说明这个对象受到的影响。右击影响项目,选择Change Propagation Collections可以改变影响的传播范围;选择Change Event Description可以增减或定义影响项目的事件;选择Change Event to [Delete]可以把影响对象的事件修改为Delete;选择Change Event to [Change]可以把影响对象的事件修改为Change。

46

2.7.1产生用户定义事件的方法

当分析特定事件的结果时,需要产生用户定义事件。例如,设计者能够在Domain类上产生一个名为ModifyDataType的事件,然后再为Domain的每一个可能受到影响的集合(Collection)定义一个新的传播规则。步骤如下:

⑴在影响分析窗口,右击一个影响项目,从弹出的菜单中选择Change Event Description,打开Event Description窗口,并在User-defined Events框中输入ModifyDataType,如图2-25所示。注意,若要同时定义几个用户定义事件,则框中用户定义事件的名称之间用分号隔开。

图2-25 事件描述窗口

⑵单击OK按钮,返回到影响分析窗口。由于在缺省的传播集合中没有匹配的事件,这个影响项目显示为一个减号(-),如图2-26所示。 图2-26 影响项目为空

⑶单击工具,打开Propagation Rules Definition窗口,如图2-27所示。在该窗口定义一个名为ModifyDataType的事件,并选择这个事件的影响集合(Collection),同时,选择或定义一个触发事件(Triggered Even)。选择E(Enable)复选框,表示这个事件有效;选择L(Replace link object by extremity)复选框,表示若对象是一个连接,则隐藏连接,并显示连接的终端对象;选择R(Recursive) 复选框,表示用单独列表显示递归集合。 图2-27 传播规则定义窗口

⑷单击OK按钮,返回影响分析窗口。带有用户定义的集合显示在影响分析窗口,如图2-28所示。

47

图2-28 用户定义的集合显示在影响分析窗口

2.7.2从企业知识库中提取模型的交叉依赖

一个模型生成另一个模型或产生一个对象的外部快捷方式时,两个模型的对象之间就产生了交叉依赖。如果在工作区中打开两个目标模型,则在影响分析时,系统自动显示这些依赖;如果模型没有在工作区中打开,但被固化(Consolidate)在企业知识库中,则在对象特性窗口的Dependencies页上单击工具,就可以从企业知识库中提取依赖。

在影响分析窗口,如果是从企业知识库中提取的对象,则在对象前面显示一个带红点的图标。例如,Model1中的Sale表在Model2中作为一个外部快捷方式,这个快捷方式还带有Customer和Shop两个子表。

如果在工作区中打开Model2,这时打开Model1中Sale表的影响分析窗口,则显示如图2-29所示的影响分析窗口。

图2-29 目标模型打开时显示的影响对象

如果在工作区中关闭Model2,并且Model2已经固化(Consolidate)在企业知识库中,这时打开Model1中Sale表的影响分析窗口,单击工具,则显示如图2-30所示的影响分析窗口,可以看到Shop和Customer对象的前面带有一个红点图标。

图2-30 目标模型关闭并固化到企业知识库中显示的影响对象

2.7.3改变影响传播的集合

改变影响传播集合的步骤如下:

⑴右击一个影响项目,从弹出的菜单中选择Change Propagation Collections,打开如图2-31所示窗口。

⑵选择S(Select)复选框,表示增加一个集合。

⑶单击工具,打开Propagation Rules Definition窗口,定义传播规则。

⑷单击OK按钮,返回影响分析窗口,这时新定义的集合出现在影响项目的下方。

48

图2-31 对象传播集合窗口

2.8模型对象的映射

模型对象的映射(Object Mapping)是指不同模型中对象之间建立的对应关系。它既能反映数据转移和变换的结构,也能反映对象之间简单的对应关系。在映射编辑器(Mapping Editor)中或在对象特性窗口的Mapping页上,都能建立映射。

2.8.1模型对象映射的基本知识

PowerDesigner模型间的映射包括:⑴从CDM到CDM或OOM的映射,⑵从PDM到PDM的映射,⑶从OOM到CDM或PDM的映射,⑷从XSM到PDM、OOM或XSM的映射。表2-6列出了各类模型中能够产生映射的对象及其子对象。

表2-6 各类模型中能够产生映射的对象及其子对象

模 型 Entity CDM Inheritance Association/relationship Data item Table View PDM Dimension Fact Cube Reference OOM XSM Class Element Complex type 对 象 Entity attribute Inheritance attribute Association attribute N/A Table column View column Attribute Measure Measure N/A Class attribute、operation、association Element attribute Complex type attribute 子对象

49

1.在ILM中定义模型对象的映射

使用信息流模型 (Information Liquidity Model,简称ILM)能够建立CDM、PDM、OOM和XSM等模型对象之间的映射关系。右击模型间的连线,启动映射编辑器(Mapping Editor)窗口,能够进一步定义模型对象之间的映射关系,如图2-32所示。

图2-32 启动映射编辑器进一步定义映射关系

2.在ILM中定义复制处理的映射

在ILM中,右击复制处理(ReplicationProcess),从弹出的菜单中选择Mapping Editor,能够进一步定义RepServer、Mobilink等复制处理的映射,如图2-33所示。

图2-33 定义复制处理的映射

3.对象自动映射的概念

当使用Tools>Generate Conceptual Data Model、Generate Physical Data Model、Generate Object-Oriented Model、Generate XML Model菜单命令执行内部模型生成时,打开Generation Options窗口,在Detail页上选择Mapping复选框,则可在源模型和目标模型的对象间自动建立映射关系。在编辑目标模型对象过程中可以修改对象间的映射关系。 4.OOM对象的映射

从OOM到CDM和PDM之间的映射,反映了OOM对象与CDM和PDM对象之间的映射关系。表2-7列出了这些对象之间的映射关系。

表2-7 OOM对象与CDM和PDM对象之间的映射关系

OOM对象 Class Class attribute Operation Association Entity Entity attribute - Association、Relationship CDM对象 Table Table column 与表关联的SELECT或UPDATE语句 Reference、View Reference、Table或View PDM对象 使用面向对象语言描述的对象代码与关系型数据库使用的代码存在较大差异,因此,在从OOM生成PDM或从PDM生成OOM时,需要修改对象代码,使其适应相关的语言。通过对象映射可以绕过两个模型之间的错误匹配。图2-34描述了OOM类与PDM表之间的映射关系,并把PDM对象生成到关系型数据库中,同时把OOM对象生成到应用系统中。

50

图2-34 OOM与PDM间的映射关系

5.PDM对象间的映射

从PDM到PDM的映射,反映了Relational to Relational和Relational to Multidimensional两种类型的映射。其中,Relational to Relational的映射表达物理对象之间的映射;Relational to Multidimensional表达物理对象与多维对象之间的映射。

⑴Relational to Relational映射

在从OLTP数据库中提取数据,经变换后装载到数据仓库/数据集市的过程中,需要在两个数据库的PDM对象之间建立Relational to Relational的映射,如图2-35所示。一旦建立了这种映射关系,则可以生成提取脚本,并可以生成可执行的SQL脚本,这样就能从OLTP数据库中提取数据,并经变换后,把它装载到数据仓库/数据集市的数据库中。OLTP中的PDM对象Table、Column对应数据仓库/数据集市中的PDM对象Table、Column。 图2-35 Relational to Relational的映射

⑵Relational to Multidimensional映射

在使用数据仓库/数据集市装载OLAP的过程中,需要在数据仓库/数据集市PDM与OLAP多维PDM间建立映射。一旦建立了这种映射关系,就可以生成立方体数据的文本文件,通过该文本文件能够在OLAP数据库中产生数据,如图2-36所示。

注意,使用Tools>Multidimensional>Rebuild Cube菜单可以在PDM物理图形与多维图形之间自动建立对象之间的映射关系。

51

图2-36 Relational to Multidimensional的映射

6.XSM对象的映射

表2-8列出了XSM对象到PDM、OOM和XSM对象之间的映射关系。

表2-8 XSM对象到PDM、OOM和XSM对象之间的映射关系

XSM对象 Element Element Attribute Complex type Complex Type Attribute PDM对象 Table、View、Table Column、 View Column Column、View Column Abstract Data Type Abstract Data Type Attribute OOM对象 Class、Class Attribute Class Attribute Class Class Attribute XSM对象 Element、Complex Type、 Element Attribute Element Attribute、Element Complex Type、Element Complex Type Attribute、 Element Attribute 7.CDM对象的映射

表2-9列出了CDM对象到CDM和OOM对象之间的映射关系。

表2-9 CDM对象到CDM和OOM对象之间的映射关系

CDM对象 Entity Entity Attribute Association/Relationship Association Attribute Inheritance Inheritance Attribute CDM对象 Entity、Association、Inheritance Entity Attribute、Association Attribute、Inheritance Attribute Entity、Association、Inheritance、Relationship Association Attribute、Entity Attribute、Inheritance Attribute Entity、Association、Inheritance Inheritance Attribute、Entity Attribute、Association Attribute OOM对象 Class Class Attribute Association Association Attribute Class Class Attribute 2.8.2启动映射编辑器的方法

映射编辑器(Mapping Editor)用图形化的方法建立对象之间的映射关系,在建立映射前,首先应该为源模型建立一个数据源(Data Source)。启动映射编辑器的步骤如下:

⑴打开一个OOM、PDM、CDM或XSM,选择Tools>Mapping Editor菜单。如果没有使用Model>Data Source菜单建立数据源,则首先打开如图2-37所示的窗口,在Data source框中填写数据源名,在Access type框中选择Read/Write、Read only、Write only之一;如果已使用Model>Data Source菜单建立了数据源,则直接打开映射编辑器窗口。

52

图2-37 产生数据源向导窗口

⑵单击“下一步”,打开如图2-38所示窗口,选择一个或多个模型前面的复选框。

图2-38 数据源模型选择窗口

⑶单击“下一步”,打开如图2-39所示窗口,选择Create default mapping复选框,表示当前模型中的对象与所选模型中的对象之间自动产生缺省的映射。

图2-39 数据源选项窗口

⑷单击“完成”,打开如图2-40所示的映射编辑器窗口。如果模型间产生了缺省的映射,则显示在影射编辑器窗口。注意,单击窗口左下角的Play Demo按钮,启动一个视频,演示建立映射的过程。

图2-40 映射编辑器窗口

53

2.8.3映射编辑器界面

映射编辑器窗口划分为源窗格(Source Pane)、目标窗格(Target Pane)和映射窗格(Mapping Pane)三部分。在源窗格和目标窗格之间有一个左向和一个右向箭头,单击左向箭头,则左边成为目标窗格;单击右向箭头,则右边成为目标窗格。

缺省情况下,源窗格位于窗口的左边,背景为灰色,源模型包含的对象显示在该窗格中,双击其中的对象或使用右键菜单中的Properties能够打开该对象的特性窗口。目标窗格位于窗口的右边,背景为白色,目标模型包含的对象显示在该窗格中,双击其中的对象或使用右键菜单中的Properties能够打开该对象的特性窗口。

映射窗格位于窗口的下部,用来显示目标窗格中所选对象的映射特性列表,并带有不同的特性子页,用来显示映射的相关代码,其代码根据映射的改变自动更新。

在目标模型对象与源模型对象之间产生映射时,映射对象之间出现一条不可编辑的连接线,箭头代表数据转移的方向。当连接线的两端都出现箭头时,表示既能从源模型中把数据提取到目标模型中,同时也能从目标模型中把数据提取到源模型中。

2.8.4在映射编辑器窗口产生映射的方法

在映射编辑器窗口,产生映射有如下几种方法:⑴在源窗格或目标窗格中选择一个对象,把它拖拽到目标窗格或源窗格的一个对象上。⑵在源窗格和目标窗格中各选择一个对象,单击目标窗格上部的Create Mapping工具。⑶在源窗格和目标窗格中各选择一个对象,在映射窗格中选择Create Mapping工具。⑷在源窗格和目标窗格中各选择一个对象,从选中对象的右键菜单中选择Create Mapping。⑸右击源窗格中的数据源,从弹出的菜单中选择Generate Default Mappings,系统会自动产生两个模型之间的缺省映射。

2.8.5 修改映射语法的方法

在映射窗格中选择一个映射,单击窗口下部右上角的Properties按钮,打开该映射的特性窗口,如图2-41所示。

图2-41 映射的特性窗口

54

单击Mapped to后面的Edit按钮,打开映射语法编辑窗口,如图2-42所示。在窗口左上角窗格中选择一个对象类型,在窗口右上角窗格中双击对象,则该对象的代码被复制到窗口下部的脚本区域中,还可以使用窗口中部的工具对脚本进行编辑。单击OK按钮。

图2-42 映射语法编辑窗口

2.8.6从对象特性窗口创建映射的方法

在CDM、PDM、OOM或XSM模型的图形窗口,双击一个对象的图形符号,打开该对

象的特性窗口,单击Mapping页,显示如图2-43所示窗口,在该页上可以为该对象定义映射。使用窗口上部的Create Mapping工具可以产生一个映射;使用Delete Current Mapping工具可以删除当前的一个映射;使用Properties工具可以打开当前映射的特性窗口;使用Launch Mapping Editor工具可以启动映射编辑器窗口。

图2-43 对象特性窗口的Mapping页

2.9模型间生成的连接

在模型相互生成的过程中,模型对象之间会产生一定的连接关系,图2-44描述了可以相

互生成的模型。使用生成连接视图(Generation Link Viewer)功能可以查看模型对象之间存在的连接关系。注意,进行模型生成时,在生成选项窗口的Details页上必须选择Save Generation Dependencies复选框,才能在模型中保存这种连接关系。

55

图2-44 可以相互生成的模型

在工作区中打开一个模型后,使用Tools>Generation Links>Origin Model能够观察由哪个模型生成了当前模型,这时,当前模型为目标模型;使用Tools>Generation Links>Derived Model能够观察当前模型生成了哪些模型,这时,当前模型为源模型。

使用Tools>Generation Links>Origin Model菜单打开生成连接视图窗口,其中,左边Source窗格中显示生成当前模型的源模型,右边Target窗格中显示打开的当前模型(即目标模型)。在Target窗格中选择一个对象时,在窗口下部的Generation Link窗格中显示生成的连接。如图2-45所示。

图2-45 生成模型与源模型的连接窗口

使用Tools>Generation Links>Derived Model菜单打开生成连接视图窗口,其中左边Source窗格中显示打开的当前模型(即源模型),右边Target窗格中显示当前模型生成的目标模型。在Source中选择一个对象时,在窗口下部的Generation Link窗格中显示生成的连接。如图2-46所示。 图2-46 源模型与生成模型的连接窗口

56

本文来源:https://www.bwwdw.com/article/9mzp.html

Top