PowerDesigner 在MDA 领域的应用 - 第2页 | IT168

PowerDesigner 在MDA 领域的应用


3.用PowerDesigner来实现MDA

对于MDA方法学,PowerDesigner12.0 已经支持了如下的功能:

3.1 模型定义

??? PD支持企业建模,用户可以在现有模型中定制应用需求、逻辑、结构和行为。如案例中,我们可以用需求模型和业务模型来完成需求分析;使用业务模型完成应用逻辑和诸如复杂过程(SOA);使用UML来完成应用结构和行为;使用数据模型来完成对象的持久化;使用知识库来管理模型,等等。

3.2元模型定义

?? 所谓元模型,即是模型的模型。用户用UML的方式定义自己的元模型。在PD中,所有的模型都基于PD的元模型,例如:类的元模型,从Error! Reference source not found.可以看出,类元模型继承于Classifier,同样接口元模型也继承于它,每个类有多个属性和关联。基于这样的元模型语义来完整的描述了UML的特性。(用户可以访问<pd安装目录>\Examples\MetaModel.oom来获取元模型)

同时,基于PD的元模型,用户可以根据需求编写自定义的扩展模型,甚至是语言模型。例如,你的公司里有自己的框架、甚至有自己的脚本或者业务流程,现有的UML图并不能生成你想要的代码文件,这时,采用PD的元模型来设计自己的模型是再合适不过的了,本文后面将会详细阐述。
PowerDesigner 在MDA 领域的应用 - 第2页 | IT168 - 澎湃 - 一线牵
3.3全面支持MDA开发过程

??? 在设计过程中,用户可以先设计与平台无关的模型Platform Independent Models (PIM),然后基于PD的模型转换功能,转换成Platform Specific Models (PSM)。当需要生成代码或者预览代码时,模型会根据定义在语言模型或者扩展模型上的模版和流程来生成代码。用户也可以在模型上直接修改代码,那么模型也会随之同步更新,同样也能修改语言模型或者扩展模型以适应需求。流程如图 2所示:
PowerDesigner 在MDA 领域的应用 - 第2页 | IT168 - 澎湃 - 一线牵

PD 支持在如下的几种模型转换上进行扩展:
a) OOM?OOM :这种情况下,一般是从分析(Analysis)到具体的语言(如Java等)。
b) OOM?PDM :这是一种自顶向下的开发流程,即先行根据需求设计出领域模型,然后PD会自动转换为数据库模型,并同时建立O/R Mapping的关系。基于这些O/R Mapping的关系,PD12已经很好地支持了诸如Hibernate,JDO等的持久化模型。
c) PDM?OOM :与 (b) 相反,是自下向上的开发流程,同时也会自动建立O/R Mapping。
d) CDM?PDM/PDM?CDM :概念数据模型和物理数据模型的转换。
e) CDM?OOM/OOM?CDM :概念数据模型和面向对象模型的转换。
f) PDM?XSM :物理模型到XML模型的转换,一般用于生成数据库的XML Schema或者是带有XML 结构的数据库模型(Web Service in database)。

这些转换都是无损的双向过程,当然您可以基于您的规则在PD现有的转换功能上新建自定义的模型转换的功能,以适应需求的变化。

3.4自定义UML Profile

基于UML Profile,可以在其上面定义或扩展自己的模型。
PowerDesigner 在MDA 领域的应用 - 第2页 | IT168 - 澎湃 - 一线牵
PD提供了如下的自定义功能:
1) Stereotype: Stereotype为元模型提供了更为丰富的元素。例如,在JAVA语法中提出了EJB Entity概念,那么我们可以基于GTL的Stereotype在类元模型中添加这些新的EJB元素,甚至可以以图形化的界面展示出来。
2) Menu: 为模型添加菜单,例如,当在类元模型上新建Menu,同时绑定Method菜单方法,则右击类,则会出现您定义过的Menu菜单。
PowerDesigner 在MDA 领域的应用 - 第2页 | IT168 - 澎湃 - 一线牵

3) Form: 定制自定义的选项页,该选项页将会被显示在对应的元模型的属性上,例如,在类元模型上新建一个Form选项卡,那么当选择类的属性时将会出现该Form。
PowerDesigner 在MDA 领域的应用 - 第2页 | IT168 - 澎湃 - 一线牵


3.5代码生成

??? PD提供GTL语言(General Template Language)来实现代码生成,使用GTL可以做到高级语言的语法特点,例如:定义变量、循环、条件分支等等。PD中的所有语言模型和扩展模型均使用GTL的方式实现,可见GTL有多强大。

所以,PD的灵活性即使在特定的领域中也可以轻松定制生成的代码。

PD的灵活性还体现在:
? 任何高级语言(如C#, Java等)均可以方便调用PD的元模型来实现需求。这不是本篇的重点,读者可以访问:<pd安装目录>\Ole Automation,里面提供了详细的例子。
? 灵活的插件定制功能。
?



引文来源?? PowerDesigner 在MDA 领域的应用 - 第2页 | IT168
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值