使用PowerDesigner 建立企业知识库实现版本控制
企业级应用的开发通常由一个团队来完成,在整个软件开发过程中的不同阶段,会产生若干庞大复杂的分析与设计模型,团队人员的增加和软件版本的频繁更新需要一个支持团队成员协同工作的理想的团队开发解决方案。传统的配置管理软件如CVS,Rational ClearCase,Visuual Source Safe等较多侧重于软件代码的版本控制和过程控制,配置和使用较为复杂,并且与模型设计工具分离,开发人员需要在不同工具之间切换,同时对模型的管理粒度较大,通常为模型级别。
PowerDesigner是一套完整的企业建模解决方案,融合了几种标准建模技术:传统数据库建模、使用 UML 的应用程序建模和业务流程建模,并提供了对企业业务流程模型(Business Process Model-BPM),概念数据模型(Conceptual Data Model-CDM),物理数据模型(Physical Data Model-PDM),对象模型(Object Oriented Model-OOM) 等8种模型的支持。为了有效管理企业应用全生命周期的建模过程及建模过程中产生的模型和文档, PowerDesigner从10.0版本开始提供了一种配置简单,易于使用的企业知识库--Repository。Repository在储存和管理建模和设计过程中的信息方面,融合面向对象概念,高度细化版本控制的粒度,支持广泛的设计模型和文件类型,为开发团队提供了一个整合的设计建模和版本控制环境,大大提高了团队的开发效率。Repository提供的对象查找功能,使用户可以跟踪模型变化,了解变更原因,通过PowerDesigner的信息流模型(Information Liquidity Model)获悉变更对整个项目相关模型的影响。在此基础上用户可以生成相应的项目报告(Report),包括模型信息,历史变更信息及模型关联信息等。
PowerDesigner的知识库的主要体现是其自带的Repository。Repositor通常用一个关系数据库管理系统(RDBMS)来存储表和数据信息。Repository提供多种角色支持和全面的权限控制,更高效方便的保证了团队内部的资源共享,数据一致性和完整性。Repository的系统结构如图1所示。
其功能特点具体包括:
1. 模型管理--在同一位置存储和版本化PowerDesigner模型及其他类型文档。用户可以在客户端可以访问服务器端数据库,合并/提交(Consolidation)和提取(Extract)文件,以保持数据的完整性和一致性。
2. 安全--基于角色的安全机制,全面的权限管理。数据库管理员或团队负责人能控制用户对模型的访问和可视化区域。同时提供记录访问日志的功能。
3. 跨模型的冲突分析--Repository能为跨模型的冲突分析提供并维护完整的存储和完整的模型间的依赖关系。
4. 软件资产管理--查找和重用跨越模型和项目的对象。
图 1 Repository系统结构
PowerDesigner的企业知识库可管理软件分析与开发过程中的各种模型,如需求分析模型(如图3 中的Order Fulfillment RQM),业务过程模型(如图3中的OrderFulfillment BPM)等,甚至是图片和其他任意格式的文档(如Word)。
使用Repository进行版本控制的基本工作流程如图2所示。
图 2 使用Repository实现版本控制的基本工作流程
要创建Repository,首先要定义Repository,具体做法如下:
第一步:选择菜单项RepositoryàRepository Definitions
图3
第二步:点击菜单栏上的Add a Row按钮,添加一个新的Repository定义。输入Repository Name (test1),Repository User(admin),
图四
并点击Data Souce Name单元格末尾的按钮,设置ODBC数据源,指定存储Repository的数据库(如下图所示)。
图五
第三步:设置完毕可以双击新增加的Repository所在行,测试数据库连接。如果提示连接成功则可以进入下一步初始化Repository。
图 6
由图五开始,
图七
单击configure之后,会弹出此如下对话框
图八
下一步对话框
下一步:
下一步:
建立完毕。
测试连接成功后,可以进行第一次Repository连接。
第一步:选择菜单项RepositoryàConnect
第二步:分别输入登陆Repository和数据库的用户名和密码,点击OK
第三步:当看到"Repository is not installed to database..."的提示信息时,点击OK确认安装Repository到数据库。之后PowerDesigner会自动创建必需的表和数据等到指定数据库。需要注意的是,第一次连接Repository时,无论登陆用户是谁,系统都会默认以ADMIN登陆,目的是为了有足够的权限在数据库中创建所需的表和数据,。
到此,初始化结束,用户可以连接到Repository进行后续的设置或操作。相关的用户信息,配置信息,版本信息和数据信息都将存储到对应的表中。
Repository提供的用户权限如表1所示。
表 1 权限定义
权限 |
描述 |
连接(Connect) |
用户可连接到Repository |
冻结版本(Freeze Versions) |
用户可冻结文件版本 |
锁定版本(Lock Versions) |
用户可锁定文件版本 |
管理分支 (Manage Branches) |
用户可创建,修改和删除分支 |
管理配置 (Manage Configurations) |
用户可创建,修改和删除配置 |
管理文件 (Manage All Documents) |
用户可创建,合并,提取,解锁,解冻,定义许可和删除任意文件版本version |
管理用户 (Manage Users) |
用户可创建,修改和删除用户和群组,可授权给用户和群组和将用户或组加入某个群组 |
管理知识库(Manage Repository) |
用户可以升级Repository和删除的数据库 |
上述权限可以组合使用来创建不同权限等级的用户,表2列出了一种典型的角色和权限设置。
表 2 典型角色设置
角色 |
权限 |
数据库管理员(Database Administrator) |
管理知识库,管理用户 |
数据管理员 (Data Administrator) |
连接,管理文件 |
团队负责人(Team Leader) |
连接,锁定版本,冻结版本,管理分支,管理配置 |
开发/设计人员 (Designer) |
连接,锁定版本,冻结版本, |
在设置用户之前,系统需要以ADMIN连接到Repository。
选择菜单项RepositoryàUsers,添加新的用户(如Iris)。
群组是有共同权限的用户的集合。选择菜单项RepositoryàGroups可添加新的群组(如Designers)。
双击某一用户(群组)进入PropertiesàRights可设置用户(群组)权限。
要将某一用户/群组(如Iris)加入一指定群组(如Designers),可双击该用户(群组)进入PropertiesàGroups(Parent Groups),添加指定群组到列表中即可。也可在指定群组的Group PropertiesàMembers中添加该用户/群组。
设置用户和群组之后的用户群组关系和权限设置如图5所示。
图 5 用户和群组设置
要将项目加入Repository实现版本控制,用户可选择目标项目(如UML2 Orders Analysis)按右键,选择Consolidate进行提交,如图6所示。这里用户可以选择是新加模型(New)还是更新(Update)Repository内当前版本的模型。当项目第一次加入Repository的时候,默认为New。设置完毕之后,点击OK。
注:用户可以在PowerDesigner的ToolsàGeneral Options的Repository节点设置一些通用选项,例如指定时间间隔自动刷新Repository,设置是否自动连接Repository和默认设置冻结新提交的版本使后续提交的版本自动递增等。
图 6 将项目提交到Repository
Repository会根据用户设置更新已有版本或添加新版本。当更新Repository版本的时候,如果本地文件和Repository内文件不同,系统会弹出窗口显示文件之间的冲突,用户可以手动选择/放弃冲突来合并版本。Repository Brower中的树形结构会列出该项目包含的各级子目录和对象。如图7所示。
图 7 Repository Brower
当用户需要恢复旧有文件版本时,可以执行提取操作。
选择现有项目,按右键选择Update from repository,选择要提取的项目名称和版本,点击OK,模型就会从Repository拷贝到本地。如图8所示。
图 8 从Repository提取项目
用户也可以从Repository Brower界面选择要提取的项目,按右键选择Extract也可完成同样操作。当完成更新操作之后,用户必须将项目提交。
PowerDesigner的Repository提供了两种方式实现版本的对比。
一种是在Workspace的Local界面中选择目标文件,按右键选择Compare with Repository;另一种是在Repository Brower界面选择目标文件,按右键选择Compare。版本对比的设置界面如图9所示。
图 9 版本对比设置窗口
选择要对比的版本,点击OK,对比结果如图10所示。大家可以看到,两种方式均会以非常细化的图形界面向用户展示两个版本或用户本地文件和Repository版本之间的差异,特别的对于模型类文件,例如面向对象模型OOM,可以细化到面向对象的类和属性,或数据表的列。在该窗口,用户可以设置显示模式,如显示所有对象(Show All Objects)或只显示所有改变(Show All Changes)等。
图 10 对比结果1
在Repository Brower中选择目标模型,按右键选择Find Objects,可进行对象查找。界面如图11所示。用户可以根据名称&定位,本地日期,Repository日期和高级进行不同刻面的查找。设置完成点击Find Now按钮可以查询到目标对象。
图 11 Find Objects界面
Repository提供了版本管理功能,包含管理分支(Manage Branches),管理配置(Manage Configurations)和对象查询等功能来跟踪、记录项目变更和重用已有对象,以更好的支持团队成员高效率的并发工作。结合Repository在版本管理和维护,项目协调,提高产品质量,保障软件安全性和降低风险方面的杰出表现,PowerDesigner将继续在企业建模方面为用户提供更加强有力的支持。除了上述现有功能之外,企业还可以利用PowerDesigner的二次开发功能,个性化产品功能以满足自身需求。