统一建建模模语言(UML)是一种由对象管理组织(OMG)创立的帮助开发人员对软件系统进行特定化、可视化和文档化的模型。UML定义了十二种类型的图例,分成三类:四种图形代表静态的应用结构;五种代表动态的行为;三种代表组织和管理应用的模式。行为类型包括用例图、顺序图、活动图、协作图以及状态图。这些行为图经常被用来给业务流程建模。业务流程建模符号(BPMN)定义了一种图形化的符号用于给业务流程建模,从这一点上与UML的行为图是相关和类似的。尽管如此,BPMN和UML在业务流程建模方法上有着明显的不同。
首先,UML是将业界多种图形的最好实践集合在一起而发展起来的,这是它的优点,但也是它的缺点。由于它是一种杂集,它从来没有考虑设计成一种可以一起工作的方式,因而没有规定它定义的这十二种类型的图形之间的联合性问题。
因此,开发人员只能用UML来给他们的应用系统的某一部分建模,而其它部分则超出了UML规范的范围之外,属于用实现级层来描述,而不是建模层。相反地BPMN定义了单一类型,但提供了同属于基于可执行过程元模型的多种视图。因而,BPMN只定义了一层——过程建模层,却可以输出可执行BPML语言,这种语言部署在业务流程管理系统上可以立即执行。
第二,UML是以一种面向对象的方式来给应用系统建模,而BPMN是以面向流程的方式给应用系统建模。虽然UML定义的十二种图形是等同的,但在UML最佳的实践中往往倾向于优先使用第一类图形即所谓的结构图,它包括类图,对象图,组件图和部署图。由此而产生的结果便是:由UML定义的业务流程不可避免地倾向于必须事先定义好商业对象然后才能进行事务过程这一狭隘的做法。这也许可以解释UML为什么在真实的业务流程中没有被商业人员广泛采纳的原因。
BPMN采用了一种几乎完全相反的方式来给流程建模,它提倡这样一种方式:首先对控制流和消息流建模,对象只是在流程建模中隐含地定义。这样做并没有防止显性地定义附加的商业对象,或者集成已经存在的通过商业服务而暴露的商业对象,但由于大部分商业对象模型在核心流程模型中只是部分地被隐含地定义,总体开发过程相当简单,并以戏剧性地简单方式来更改以应用到现有的过程当中。
第三,UML的主要目标是系统架构师和软件工程师,而BPMN的目标是商业分析师,系统架构师和软件工程师。一方面,UML已经发展为一种使软件开发过程流水作业的方法,从架构设计到应用实现——这些任务都是由技术人员承担。在另一方面,BPMN发展了一种贯穿整个商业过程的开发过程流水作业方法,从流程设计到流程部署,前一个任务是由商业人员承担,而第二个任务是由技术人员承担。
最后,UML并没有定义任何可执行的元数据模型来帮助业务流程建模,而且,这样一种可执行元数据模型必须使用模型驱动框架(MDA)来定义。与此相反,BPMN是建立在流程执行元数据模型语言BPML之上的,遵守着设计驱动框架(DDA)因而建立一种完全可执行过程并不需要任何附加的步骤。
综上所述,BPMN在业务流程建模方面比UML更胜一筹,有望成为业务流程建模的新标准。