`

Powerdesigner Profile,实现个性化的设置

 
阅读更多

 

 

Powerdesigner是我最喜欢的建模软件,其功能最全,易用性最好,使用感受最舒服。可扩展性也非常好。

Powerdesigner对MDA的支持很灵活。其实,MDA工具所要做的事情,就是UML模型与代码间的双向转换:从模型可以生成代码;从代码可以生成模型。这里面有两个关键点:
1、模型生成的代码不能是垃圾代码,要正确,还要符合我们所指定的编码规范——尤其是注释。
2、从代码到模型再到代码时,原始代码中的所有内容应当充分保留。不应发生注释或方法体丢失。

我根据特定的编码规范,通过二次定制powerdeisgner的java 5语言成功实现了上述MDA特性。

在 powerdesigner中,编程语言完全是一个定制项。其全部特征信息都记在一个后缀名为xol的xml文件中。比如java5的定制文件是 Powerdesigner 12/Resource Files/Object Languages/java5-j2ee14.xol

专家级牛人可以通过修改这类文件达到任何目录。对于我来说,xol文件太长,有太多的cdata,不好搞,还是通过powerdesigner中的“edit current langauge"来修改比较好。

在powerdesigner中点击language->edit current language,就会出现语言特性编辑界面。要编辑它比较容易,下面就几个关键特性举例说明。

1、每个java文件最头部的声明性注释。位于文件最顶部,在package和import语句的前面。

2、类注释,也就是javadoc注释,位于类声明之前,import语句之后。Powerdesigner直接支持它。

 

我们的@version内容不是一行代号,而是一个revision history。所以有必要调整输入框:在上图中将Data Type由String改为Text。这样就可以在一个弹出的多行文本编辑框中编辑缺省值。如下图所示。

 

如果定制模板,可以引用变量,如%@author%, %Model.Author%, %CurrentDate%等,但上面缺省值编辑中不能引用变量。此外,Powerdesigner对于日期的格式化只是简单的输入缺省格式。

这样在类和接口的属性窗口中,java doc version就不再是一个单行文本编辑框了。

 

3、最后输入的javadoc注释格式有点不符规范。可修改如下。

这样,最后输出的结果就很漂亮了。

上面的@pdOid是可以删掉的,因害怕影响逆向工程的同步,我没有动它。

 

4、上面收尾的"*/"没有换行,可以在BaseObject.javaDocComment中修改。

 

5、Javadoc要求每个包有个package.html。

 6、我们不用EJB了,把多余的EJB原型(Stereotype)全部删掉。类和接口下也有,都可以删掉。

 

Powerdesigner生成java代码的定制虽然强大,但也有不足。比如在模型中给类添加了一些属性,然后让其自动 生成setter方法。这些setter方法中的参数是以"new"会前缀的,想把"new"改成"p"基本上做不到。究其原因,是这个方法的声明来自自 动生成脚本,我们无从定制。

 

 

Powerdesigner的逆向工程功能也很棒!不过要注意两个设置。一是保留@pdOid注释。二是确认是否删除代码中不存在的类、方法和属性。如下图所示。

上面的Deletion缺省是不选中的。就是说不删除模型中存在,但代码中不存在的类,属性和方法及方法中的参数。对于类来说删不删各有所好。对于属性和方法来说有点不合理。对于方法中的参数来说就是个灾难性的错误。

比如,模型中的有个方法someMethod(String parameter),在源代码中、参数的类型由String改成int: someMethod(int parameter),保持名称不变。如果不选Deletion,最终结果会是:SomeMethod(String parameter, int parameter2)。 

@pdOid是专为逆向工程服务的。有了它,Powerdesigner就以它为唯一标识来识别类,属性和方法。即使在类、属性或方法的名称发生变化的情况下,它仍能正确逆向的更新模型。

在没有@pdOid时,如果发生类名的变化,Powerdesigner会新增一个类,并删去旧类(当选中Deletion时)。引用这个类的时序图或类图将发生类丢失的现象。

 

除了定制生成代码的模板外,Powerdesigner也支持自定义逆向工程——从java 代码到OOM模型。如下图所示。

但是,我们并不能扩展Powerdesigner内内置的逆向工程,只能自己做一个全新的。这样做的工作量就太大了。

Powerdesigner已有的逆向工程在注释的转换上存在较大的问题:只支持有限的注释声明。比如Java5中的泛型参数的注释@param 就不支持,Powerdesigner会认为不存在这个参数,而忽略这个注释。

这个功能的缺失直接破坏了正向->逆向->再正向的循环——当你再正向时,原来辛辛苦苦写的注释有一部分丢失了。



Powerdesigner 是个让人想爱又想恨的软件。它的缺点和优点一样突出:首先就是价格超贵,不是一般的公司能承受的,更别提个人了:( 其次它总是会在重要功能上出现几个麻 烦的bug。比如12.1版本,序列图中居然无法从调用方法列表中选取方法。这个bug在12.5中已经解决。我使用的是试用版。
最后还有一个问题就是对java5的新特性的支持还不到位。泛型的注释在转换过程中会丢失

分享到:
评论

相关推荐

    软件分析建模与PowerDesigner实现.part1.rar

    本书系统地介绍了业务建模、数据建模和应用程序建模的方法和过程,通过PowerDesigner的实现,使读者全面掌握软件分析建模的思想,是软件工程师学习软件分析、建模的入门教材。PowerDesigner 12.5集中体现了软件分析...

    软件分析建模与PowerDesigner实现

    《软件分析建模与PowerDesigner实现》一书深入探讨了软件开发过程中的一项关键技术——分析建模,并聚焦于使用PowerDesigner这一强大的建模工具来实现这一过程。在软件工程领域,分析建模是理解系统需求、组织信息和...

    PowerDesigner 15 实现 版本控制功能

    "PowerDesigner 15 实现 版本控制功能" 指的是在使用PowerDesigner 15这款强大的数据库设计工具时,如何启用和利用其内置的版本控制功能。PowerDesigner是一个用于物理和逻辑数据建模、数据分析、数据库设计和逆向...

    powerdesigner连接oracle 数据源设置

    标题中的“powerdesigner连接oracle 数据源设置”指的是在PowerDesigner工具中配置Oracle数据库作为数据源的过程。PowerDesigner是一款强大的数据库设计与管理工具,它允许用户进行概念数据模型(CDM)、逻辑数据...

    powerdesigner为表设置表空间

    ### PowerDesigner 15 中为 Oracle 表指定表空间的操作指南 #### 一、PowerDesigner 简介 PowerDesigner 是一款由 Sybase 公司(后被 SAP 收购)开发的数据建模工具,广泛应用于数据库设计和管理领域。它提供了...

    PowerDesigner 常用设置大全

    ### PowerDesigner 常用设置大全 #### 设置1:取消Name与Code的联动 在进行数据库设计时,可能会遇到Name与Code同步更改的情况,这对于维护数据模型并不方便。要取消这种联动,首先需要熟悉几个常用的菜单,包括...

    软件分析建模与PowerDesigner实现.rar.part2

    本书系统地介绍了业务建模、数据建模和应用程序建模的方法和过程,通过PowerDesigner的实现,使读者全面掌握软件分析建模的思想,是软件工程师学习软件分析、建模的入门教材。PowerDesigner 12.5集中体现了软件分析...

    PowerDesigner使用教程(中文)

    用户可以根据需求调整PowerDesigner的工作环境,例如设置快捷键、自定义模板等。 ### 9. 企业架构 PowerDesigner不仅支持数据建模,还能进行业务流程建模和系统架构设计,是企业级架构师的重要工具。 ### 10. 学习...

    将word表格导入到powerdesigner快速实现创建pdm.docx

    将 Word 表格导入 PowerDesigner 实现快速创建 PDM 在 PowerDesigner 中,快速创建 PDM 是一个非常重要的步骤,而将 Word 表格导入 PowerDesigner 正是实现快速创建 PDM 的一个关键步骤。通过使用 VBScript 脚本,...

    powerdesigner

    powerdesigner

    PowerDesigner的数据库设计与实现 PowerDesigner数据库建模技术

    通过PowerDesigner,我们可以直观地拖放实体,设置属性,定义关系,并自动生成关系图,简化了设计过程。 接着,逻辑模型设计通常涉及到将CDM转换为特定数据库管理系统的逻辑结构,如SQL Server或Oracle的DDL语句。...

    PowerDesigner16. 7

    总的来说,PowerDesigner 16.7是一款强大的数据库设计工具,它集成了多种建模方法,适用于从需求分析到数据库实现的全过程。通过理解和掌握这款工具,IT专业人士能够更高效地进行数据库设计和管理,提升工作效率。

    PowerDesigner

    备份可以通过复制整个PowerDesigner安装目录来实现,这样即使出现问题,也能轻松恢复。 在使用PowerDesigner时,有以下几个核心知识点: 1. **概念数据模型(CDM)**:CDM是PowerDesigner的核心,用于描述业务实体和...

    PowerDesigner实现数据库模型设计.docx

    ### PowerDesigner实现数据库模型设计 #### 一、概念数据模型(CDM) **概念:** 概念数据模型(Conceptual Data Model, CDM)是数据库设计过程中最初阶段的关键组成部分。它主要用于描述系统的整体概念结构,包括...

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    ### PowerDesigner 创建 Oracle 数据库表并设置主键自动增长 #### 一、PowerDesigner与Oracle数据库集成概述 PowerDesigner是一款强大的数据库设计工具,它能够帮助开发者进行数据建模、概念设计以及物理数据库的...

Global site tag (gtag.js) - Google Analytics