PowerDesigner 在MDA 领域的应用




4. 案例演示


在这个案例中,我们将结合订单购物的案例,来详细分析,如何基于PD强大的企业建模开发平台来实现模型驱动的开发(Model-driven development)。



案例场景:


小王是项目经理,今接到订单购物的项目,于是小王召开大会,邀客户、老总以及开发人员讨论模块功能点和用例。



4.1 需求管理—良好的开端是成功的一半



大会完毕,接下来,小王就开始用PD的需求模型,细分项目的模块以及每个模块的里程碑等信息,如图:


Pentaho Report Designer 案例 power distance案例分析_应用服务器



在PD中,用户也可以通过扩展模型来定制Priority、Workload以及Risk中的信息值,如图:


Pentaho Report Designer 案例 power distance案例分析_Sybase_02



除了定制里程碑,小王还陆续定制了“可跟踪的矩阵图”、“用户分配矩阵图”,以辅助跟踪项目进度。



小王的划分完毕之后,就可以通过PD知识库签入到管理该项目模型的服务器进行统一管理。(PD知识库的使用方法不在本文中,您可以参考PD的相关文章)



4.2 PIM模型—与平台无关的强大分析,更关注逻辑



架构师小张,被通知需求管理模型已被设计好,需要签出以分析具体与平台无关的业务逻辑。PD支持从需求模型中转换成任何的图结构,并保留需求文档中的全部信息,同样逆向工程至需求模型也是如此方便轻巧。于是,根据需求,小张将项目经理划分的模块转换成了业务逻辑,(选择Requirement?Export Requirements as Designed Objects)如图:


Pentaho Report Designer 案例 power distance案例分析_领域模型_03



然后,小张根据客户需求设计出如下的业务逻辑图,如图,同时签入PD知识库,供组员参考,并提意见。小张根据组员的意见重新修改业务逻辑,PD也会自动将业务逻辑中的变化更改回需求模型。


Pentaho Report Designer 案例 power distance案例分析_项目管理_04



4.3 PSM—工欲善其事,必先利其器。



PD提供的强大的模型转换利器,极大方便了架构师小张的工作,即根据需求,小张快速生成了客户要求的相关语言,虽说PD的自动定制有些不满足客户需求,但没有关系,因为MDA理念就是,模型完全可以后期定制,甚至是模型的转换规则也能修改。PD完全支持了这一点。


从PIM模型(Analysis Model)转换成PSM模型,只需要在Tools菜单下选择Generate Business Process Diagram, 在弹出的BPM Generation Options的Detail选项卡中点击Enable transformations进行PIM到PSM的转换。您可以切换到General选项卡处,选择与语言有关的扩展模型来转换PIM,这里,由于客户需求,小张选择了Sybase Unwired Orchestrator 4.3,即在语言级上的模型转换功能,这样PD就可以自动将PIM转换为PSM,如图,当然这是PD默认转换规则,您也可以自定义扩展模型,并在扩展模型中定制转换规则,需要说明的是,若您要用扩展模型的转换规则,首先要在Detail选项卡处点击Enable transformations按钮,使其处于选中状态。


Pentaho Report Designer 案例 power distance案例分析_应用服务器_05


Pentaho Report Designer 案例 power distance案例分析_企业应用_06




对于客户的要求,显然,仍然有些不符合转换要求,所以小张采用了自定义的模型转换功能。


PD 支持在语言模型和扩展模型上进行模型转换规则的自定义。例如,小张不想PD每次将Process的类型转换为undefined,而是定制一个相关的初始类型,同时替换现有的图标和部分程序代码。为了今后的开发重用、减少开发成本以及能更好的结合现有的开发框架,于是,小张开始了他的定制之旅。



4.3.1 扩展PD元模型,定制类别:



打开Sybase语言模型,并切换至Process元模型,添加新的Sterotype,取名为MyProcessDefined,然后在该模型下添加自定义图标(Custom Symbol),点击右下角的Modified来修改Symbol格式。PD也支持贴图(bmp,jpg,ico等),如图。


Pentaho Report Designer 案例 power distance案例分析_项目管理_07


在MyProcessDefined节点下添加Transformation,在如图的窗口中编写转换规则,该规则采用了VB的编写语法,简单易懂,而且能够非常方便的操控PD的元模型,以达到自定义的效果。定义完模型转换规则后,就可以在Transformation Profiles处挂接该Transformation,并选择是在哪个不同时刻的转换插入点:Pre-generation(转换前执行脚本)以及Post-generation(转换后执行脚本),如图 13,生成效果如图 14。


Pentaho Report Designer 案例 power distance案例分析_项目管理_08



Pentaho Report Designer 案例 power distance案例分析_Sybase_09


Pentaho Report Designer 案例 power distance案例分析_应用服务器_10




4.3.2定制该类别的生成文件:



由于客户要求为每个Process生成一个相关的帮助文件,于是,小张采用了PD提供的代码生成功能(Code Generator)。PD会根据具体的PSM模型以及代码模版,在正确的目录位置下生成不同的文件信息。



操作方法:MyProcessDefined节点下新建Generated Files,在生成的Template处添加相关的语言模版,此处PD提供强大的GTL模版定义语言,您可以点击 按钮来寻求指导。FileName处需要填写生成的带有相对目录的文件名,也可以引用模版,并在该模版内定义文件名的生成情况。


Pentaho Report Designer 案例 power distance案例分析_企业应用_11



这样,就在Process元模型处定义好了文件生成的模版,PD会根据该模版生成不同的文件,您也可以点击Preview来查看,如图。


Pentaho Report Designer 案例 power distance案例分析_领域模型_12