真正进入编码开发阶段后,将加入大量设计时不涉及的类和方法,如果将这些非骨架性的东西Reverse到CASE工具中,反而会使原来清晰的设计变得雾里花,水中月。所以即使编码时,需要对原分析模型进行调整,一般也是手工去调整设计模型,而不是通过逆向工程去同步,毕竟分析设计是骨架性的,而编码是血肉性的,两者有属性上的区别。如果真的需要频繁进行的代码和UML转换,最好使用类似于Together一样的工具,它嵌入到IDE中,使代码和模型转换方便快捷。
◆文档导出功能
PowerDesigner对文档导出提供了精细的控制,你不但可以对文档所包含的内容项进行设置,还可以对内容项的格式进行设置。如导出的表结构是否包括名称、数据类型、备注等项目,这些项目在表栏中的宽度占比,颜色,字号等等,不一而足。
PowerDesinger 12.0 还新增了一个多模型文档整合导出的Milti-Model Report模型,允许你以多个模型作为输入生成为统一文档,实现模型设计按阶段分开,文档又统一整合的目的。
由于PowerDesigner文档导出的设置非常精细,所以要设置好一个文档导出模式实非不易。有鉴于此,PowerDesinger提供了三种常用的导出模板,用户也可以自己定义模板。通过模板可以迅速完成设计模型文档的导出工作。
而Rose没有导出模板的概念,更不能对导出项和格式进行设置,你只能按Rose的系统内置的方式进行模型文档的发布。
◆代码导出
在导出设计模型的代码时,PowerDesigner提供了精细的控制,不但可以进行对象级别,还可以进行代码级别的控制(如是否要生成字段备注的代码,外键代码在表体代码内声明还是在表体外部声明等),而Rose没有提供代码导出的控制,也只能按其系统内部设置的方式导出代码。
图5:数据库模型导出设置(PD)
◆生成测试数据
PowerDesigner可为数据表生成批量的测试数据,而且你还可以制定测试数据的生成规则。这个功能给初期项目的开发测试带来很大的便利。Rose中没有提供类似的功能。
六、易用性上的比较
6.1、元素显示属性调整
Rose调整元素的显示属性(如类图的显示样式,方法入参是否显示等内容)的设置时,新设置仅对新创建的元素起作用,如需调整已有元素的显示属性,只得在设计Diagram中,逐一通过右键的方式一个个调整,做法有点刀耕火种的味道。 PowerDesigner在这点上显得很人性化,在调整完元素显示设置后,PowerDesigner弹出一个窗口,提供三个应用新设置的选择:
图6:元素显示设置调整后应用范围(PD)
其一,应用到所有元素;其二,应用到当前选择的元素,其三,应用到新创建的元素。此外,PowerDesigner对每一类元素(如类图,序列图,表图,引用等)的构成项(如表名,字段名,主键列,索引列等)均可以提供单独的显示属性设置,比Rose的控制要精细很多。
6.2、Undo操作
Rose的Undo操作只能回退一步,有时甚至连一步都不能回退,假设你不小心删除了一个精心设计的模型元素,如果不及时Undo,就只得重头再来了。Rose不给设计者后悔的机会,这种一厢情愿的呆瓜式设计有时真让人捶胸跺足,所以你在删除或调整元素时,往往得战战兢兢,如履薄冰。相比之下,PowerDesigner则显得宽宏大量,允许你Undo几十步,自动地进行工作场景的回溯,所以在PowerDesigner下工作,会比较轻松自如,因为你不用为误操作而付出代价。
6.3、查询功能
PowerDesigner的查询功能比较强大,可以按模型类型,元素类型限定查询范围;还可以使用复合条件进行精确搜索。
图7:高级搜索窗口(PD)
相关文档:
Rose与PowerDesigner:两款建模工具的对比(一)
Rose与PowerDesigner:两款建模工具的对比(二)
Rose与PowerDesigner:两款建模工具的对比(四)
Rose与PowerDesigner:两款建模工具的对比(五)
Rose与PowerDesigner:两款建模工具的对比(六)