3.PowerDesigner 应用实例
3.1客户订单处理子系统需求定义
建立需求模型的目的是定义系统边界,使系统开发人员能够更清楚地了解系统需求,同时为计划迭代的技术内容提供基础,为估算开发系统所需成本和时间提供基础。 PowerDesigner提供了有效的需求建模,保证更准确的项目结果,并通过建立设计和需求的关联保证更好的可追踪性。图3给出的是客户订单处理子系统中的部分需求模型,PowerDesigner通过层次结构显示了该系统的主要功能。用户可以通过属性对话框(如图3所示),进行详细的需求描述。同时,为了进一步分析该子系统的业务需求,结构及机制,发现企业中当前存在的问题并确定改进的可能性,可以进行业务流程分析。图4给出了该子系统的最上层的企业业务模型表示。在PowerDesigner中,不仅支持业务过程建模,而且也提供了业务流程仿真,业务流程经过配置,可以导入Simul8中进行仿真,帮助用户对业务过程进行量化的评价。

由于该企业原来已经有若干Legacy子系统,包括CRM,ERP以及订单管理系统,因此,该企业提出基于XML的Web Service的集成,同时为了有效响应市场的变化,必须建立决策支持子系统,如库存趋势分析或客户响应分析等,提高企业资源的合理分配及其敏捷性。

3.2 概念数据模型 (CDM) 建模
概念数据数据模型(CDM)设计是建模过程的关键阶段,此阶段把现实世界中需要保存的信息抽象成信息世界中的实体(Entity)和关系(Relationship),产生实体关系图(E/R Diagram)。这一阶段可以为高质量的应用提供坚实的基础。建立概念数据模型(CDM)是一项综合性的工作。通常在一个清晰的、包括全部业务过程描述的应用需求的基础上,由具有业务领域知识的专家和数据模型专家共同合作,把这些原始数据转化成数据流程图和概念数据模型。
PowerDesigner并不限制CDM的建模过程,用户可以(1)从数据项开始,“自底向上”地从最小的数据单位开始向上构造,当收集到足够的信息时进行归纳,把数据项分组放入不同的实体中,然后归纳产生域;(2)从感兴趣的对象开始,即实体开始,然后指定它们的属性。当收集到足够信息时,进行归纳产生域;图4的CDM就是根据上面的系统需求分析中的从实体选择出发,如在图3的需求模型以及图4业务过程模型中,可以抽取Customer, Order, Product等实体,逐渐完善各实体的属性,并建立它们之间的关系。(3)也可以“自顶向下”,从域开始,使用这种方法,在收集开发数据模型前,必须有某些业务问题所需要的预备知识,以此对数据进行标准化。
PowerDesigner支持非常复杂的概念模型建模,包括中间实体(Association Entity),标识符(Identifier),检验约束(包括数据项或实体属性的取值范围及有效性规则),实体继承,复杂关系定义,如:一对多,多对一及多对多以及反身(Reflexive)与依赖关系等(见图5)。

这里需要特别指出,PowerDesigner引入了业务规则。定义了6种业务规则的类型:定义型(Definition),事实型(Fact),有效型(Validation),公式型(Formula),需求型(Requirement)和限制型(Constraint)。这些规则能够定义实体、联系的状态、数据一致性及业务表达式。在CDM转换成PDM的过程中,概念级定义的业务规则直接转换成物理级的业务规则。在PDM 中,实现业务规则需要使用特定的RDBMS 的代码(例如,触发器或存储过程)。上述功能大大增强了数据库系统的分析建模能力。
3.3 物理数据模型(PDM)建模
CDM反映了业务领域中信息之间的关系,它不依赖于物理实现。只有重要的业务信息才出现在CDM 中。PDM定义了模型的物理实现细节。例如,所选RDBMS的数据类型特征、索引定义、视图定义、存储过程定义、触发器定义等。PowerDesigner支持CDM和PDM之间的双向工程。图6是由图5所示的CDM模型自动生成的PDM模型,CDM中的实体,实体属性,标识符,联系,甚至继承关系等都将自动转换为PDM中的表,列,主键或外键,参照完整性等。用户可以通过属性对话框,修改PDM模型并反向生成并合并(Merge)原来的CDM模型。
PDM建模除了最基本的数据库建模(如表,列,主键/外键以及关系定义)的支持,还支持触发器(Trigger)和存储过程或函数的建立与优化,并建立它们与业务规则的关系。用户可以针对选择的RDBMS,进行数据库的优化设计。并且经过PDM的模型校验后,设置生成属性(自12.0后,为了提高用户设置的复用性,这些设置可以保存在模型内/外),可以生成SQL脚本,直至通过ODBC直接生成到最终的DBMS中。当然PowerDesigner还支持由DBMS的逆向生成PDM模型,即用户可以选择DBMS中现有的表,生成它们的PDM模型。整个过程都是可以迭代进行,不断完善用户的物理数据库模型。

在完成PDM建模以后,用户可以根据需求,如本书中的实例中要求基于XML的Web Service的集成,因此需要生成相应的XML模型。PowerDesigner可以根据用户的选择(如选择所需的表等)生成相应的XML模型,并提供了进一步编辑与修改环境。图7是本书实例对应的XML模型及其属性对话框。