转自:Sybase 公司PowerDesigner上海研发中心 张晓光,王晓昀
1. 简介
提高软件质量,缩短开发周期, 并且使软件更能够适应业务需求的变化,以提高投资回报率,是每个企业所面临的、需要解决的关键问题。软件建模一直被认为是提高与有效控制软件质量的解决之道。近些年来为大家关注的主要是数据设计模型、对象模型、和业务流程模型。由于历史原因,面向数据架构,开发以及业务分析的建模工作总是被单独购买,彼此之间没有集成或共享信息。但是,企业不断需要更集成的建模套件,即集成化企业级建模工具,来支持在共享环境下,企业整个架构的不同方面的全面建模。
目前各主要的建模工具厂商如Sybse PowerDesigner, IBM Rational Rose, Computer Associates的ERWin等都在加强各自建模工具的融合与集成。PowerDesigner经过近20年的发展,已经在原有的数据建模的基础上,形成一套完整的集成化企业级建模解决方案(如图1所示),
融合了几种标准建模技术:传统数据库建模、使用 UML 的应用程序建模和业务流程建模。而且支持主流应用程序开发平台(如 Java J2EE、Microsoft .NET、Web Services 和 PowerBuilder,Eclipse等)以及流程执行语言(如 ebXML 和 BPEL4WS)。业务或系统分析人员,设计人员,数据库管理员DBA和开发人员都可以对其裁剪,以满足他们的特定的需要。
本文首先介绍PowerDesigner12对企业级建模支持所提供的各个模型及其之间的关系。并通过典型实例-客户订单处理子系统展示PowerDesigner12在以数据为中心的企业应用分析开发这个生命周期的全面建模的支持。
2. 企业级建模 = PowerDesigner
Sybase PowerDesigner是Gartner评出的2004年全球排名第一的数据库建模工具。PowerDesigner灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,并支持最新的RDBMS引擎以及数据库中的Web services和XML等功能,而且不要求严格遵循一个特定的方法学。PowerDesigner提供了直观的符号表示使数据库的创建更加容易,同时能更加简单地向非技术人员展示数据库和应用的设计。目前PowerDesigner支持60多种数据库及其不同版本,主要的数据仓库以及数据分析工具 (OLAP)等
PowerDesigner是一个功能强大而使用方便的工具集,为新一代数据库应用的建模提供了全面的支持。具体地,PowerDesigner提供:
1. 需求分析模型(Requirements Model—RQM)
2. 企业业务流程模型(Business Process Model—BPM)
3. 概念数据模型(Conceptual Data Model—CDM)
4. 物理数据模型(Physical Data Model—PDM)
5. 对象模型(Object Oriented Model-OOM)
6. 信息流动模型(Information Liquidity Model—ILM)
7. XML 模型(XML Model)
8. O/R 映射支持(如Hibernate,JDO等)
并提供了强大的模型间生成、链接和同步技术(具体地转换关系见图2),比如由CDM可以生成PDM,PDM可以生成OOM,OOM可以生成
应用程序的代码,并可以从应用程序代码(如C#, Java等)生成类图(双向工程)等。并提供了冲突分析(impact analysis),有效地评价各个模型修改带来的冲击,从而得到更好的敏捷性和可预测性。这样,用户可以根据需求分析模型(RQM),从面向对象分析设计(OOM)开始,依次建立用例图,时序图及类图,由类图转化为CDM以及PDM;或者从结构化分析开始,依次产生流程分析模型(BPM), CDM,PDM并转化为类图等。为了支持企业团队的开发管理,PowerDesigner更进一步,建立了所有模型的统一共享环境,一套元数据库 (metadata repository),为企业级应用的分析、设计与开发提供了一个企业建模、UML和数据建模等三种建模的集成化的工作环境。
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模型及其属性对话框。
3.4 数据仓库(Data warehouse)建模
数据仓库的作用在于从企业的应用系统中获取信息并转换到一个新的数据库,通过对新库中的历史信息和面向主题的信息进行分析,为决策提供支持。以本书的客户订单处理子系统为例,企业需要作出如下典型决策,如哪些产品最有利可图?哪些客户会为我们带来最大利益?哪些环节需要花费很高的费用?哪些市场活动运行得最好,为什么?我们有可能会失去哪些客户等等。图8是PowerDesigner建立的本书实例
相关的一个典型数据仓库,表示订单立方体(Cube)包含客户,产品,区域以及门店等维度(Dimension),在ORDER刻面(Fact)定义了不同的评价(measures)来进行订单分析。通过这样的数据仓库,用户可以查看某个区域的某个产品的订单情况,也可查看每天的订单变化趋势等等。
PowerDesigner不但是业界知名的数据库设计工具,也是数据仓库模型设计工具。支持多种数据仓库模型,包括星型模式(Star)和雪花模式(Snowflake)。这是同行业中最优秀、最灵活的开发工具,可用来设计一个关系的或OLAP(联机分析处理)的软件仓库。
PowerDesigner在数据仓库设计工具市场中占有最大份额。它能从已有的数据库进行反向工程,从运行系统中将现存的数据结构抽取出来形成数据模型,使设计变得简单。
3.5 面向对象模型(OOM)建模
除了数据库建模,采用标准建模语言UML,对企业应用系统从需求,分析与设计,实施等不同阶段的全面建模,也是目前的主流方式。 PowerDesigner支持UML1.3的所有模型从PowerDesigner11.0开始就全面支持UML2.0。
在PowerDesigner中用户可以采用典型的面向对象分析方法,如用例驱动的软件分析与开发,即由需求模型出发,建立用例图,类图及其顺序图,进而组件与部件图。同时,PowerDesigner是一个集成环境,各个模型之间可以快捷的模型同步与管理。特别地,本书实例是数据驱动的企业应用,因此,OOM可以有PDM来自动生成(如图9)。
(特别需要指出,OOM和PDM地关系等价于模型级的O/R映射关系,可以很直接地支持现有比较流行地O/R 映射地框架,如Hibernate, JDO等,在1.8节中提到Hibernate代码生成的支持。)用户在此基础上,对OOM修改,进一步定义系统的动态行为特性,如通过顺序图,活动图等。图10是订单处理子系统中的典型顺序图。当然用户在进行OOM建模的过程中,会加深对应用系统的理解,通常会对先前的PDM甚至CDM进行优化,可以利用PowerDesigner的双向工程,在重新生成并合并已有模型。
3.6 信息流模型(ILM)建模
在企业应用的分析与开发整个过程中,会有大量的模型产生,这些模型之间都存在相应的关系。PowerDesigner创新地提出信息流模型(ILM),并通过非常直观的映射编辑器来表达模型之间的信息流动关系,大大方便了企业级建模的管理能力。图11是订单处理子系统的典型信息流模型以及信息流动关系的定义,这里表示的是PDM和OOM之间的一个信息映射关系。
3.7 程序生成的支持
在建模的基础上,PowerDesigner可以生成应用程序代码(如C#, Java等),当然也可以反向由应用程序更新相应的模型如类图(双向工程)。因此用户可以选择建模或代码优先的不同的软件开发过程。
特别地,PowerDesigner由于其内置的模型映射关系(包括O/R mapping即PDM和OOM之间的映射关系),可以很直接支持目前比较流行的ORM mapping框架,如Hibernate,JDO的支持。图12是典型的Hibernate的映射文件的代码预览。不仅如此,PowerDesigner提供了UI界面生成的支持,如现在比较流行的JSF(Java Server Faces)支持,真正实现了以数据为中心应用程序的完整的建模与开发环境。
3.8 团队开发的支持
企业级应用的开发通常都是有一个庞大的团队来完成,而且在整个软件开发过程中的不同阶段,会产生庞大的分析与设计模型,必须提供一个理想的团队开发解决方案,允许多个建模成员在一个相同的模型上同时工作,这个和传统的软件代码版本管理如CVS,ClearCase有相似之处,不同的是模型的管理粒度,如支持类图甚至类及其属性的版本管理等。PowerDesigner基于RDBMS提供了所有模型的统一共享环境,一套元数据库(metadata repository),成为企业知识库,
图13给出了一个典型实例,具体包括:
• 元模型管理—能在一个位置上存储、管理和版本化PowerDesigner模型,以及其他类型的文档,同时全面的权限管理模型,能控制用户对模型的访问和可视化。
• 跨模型的冲突分析—知识库能为跨企业的冲突分析提供和维护完整的存储和跨模型的依赖关系。
• 软件资产管理—查找和重用跨越所有模型和项目的对象。
• 安全—基于角色的安全机制,同时伴有记录日志的功能。
4 .总结
PowerDesigner提供了一整套可以灵活组合了数据建模、UML和业务处理建模技术的集成环境,支持产品生命周期的所有阶段。
PowerDesigner利用基于可靠方法、真正的两级(概念上和物理上)关系数据库建模,设计并生成数据库,还支持数据仓库建模技术。同时,PowerDesigner使用标准的UML技术完成面向对象的设计和分析。PowerDesigner不仅加速了分析、设计与开发的全过程,也向最终用户提供了管理和访问项目的信息的一个有效的结构,真正地提供了一个“一站式”建模与设计解决方案,最大限度地增强IT企业的生产效率和迅速适应变化的能力。