业务流程与软件架构的结合

  本文讨论如何在UML(统一建模语言)中集成BPMN业务模型和软件模型? 从而能实现软件架构元素连接和跟踪到业务流程。

软件工程的主要挑战在于理解实际的业务需求并正确实施它们;图形模型可能是改善业务和软件团队之间通信的最佳方式,并且可以清楚地定义组织现在的位置和目标。

软件工程师创建的技术和复杂模型比业务经理或分析师创建的模型更多。此外,他们使用不同的建模标准 - 软件工程师经常应用UML,而业务分析师更喜欢BPMN。虽然这两个建模标准没有定义互连其模型元素的方法,但是需要得到从业者的明确认可,并需要得到几个建模工具的支持。

我们将展示如何基于下面的案例研究将业务流程模型连接到软件架构元素。

业务流程定义和自动化

业务流程的初始定义通常不表示如何执行特定任务 - 可以手动完成,使用软件系统或以完全自动化的方式完成,下面是准备发票 修改发票和接受支付的流程:

 

业务流程的精炼版本包括指定任务类型的标记。在下图中,使用了三种特定的BPMN任务类型 - 用户任务(人使用软件系统执行任务),发送任务(信息发送给另一个参与者)和服务任务(系统在没有用户参与的情况下机器自己执行任务) )。所有这些标记都表示特定的自动化,这需要由软件体系结构中定义的软件系统来实现。

软件架构

建模高级软件体系结构的典型方法是通过接口定义系统及其互连。但是,虽然下面视图提供了将技术功能分组到软件界面的设计决策 - 但它并未提供使用这些系统的业务流程中的任务的参考。

这个组件或包的视图表示了订单处理系统和产品系统之间的关系通过产品订单管理关联。

用例方法是定义软件系统的高级功能要求或功能的常用方法。通常,用例表示用于在业务流程中自动化特定用户任务的工作流。通常,业务/系统分析师开始使用用例来定义软件系统的功能需求,而无需清楚地了解其上下文 - 定义任务流的业务流程。

用例模型的一个片段,显示了软件系统的主要用例。每个用户都需要明确定义的系统用户类型和用例。

将业务流程活动链接到软件系统

由于不断发展的业务流程和软件系统,指定和跟踪业务流程以及他们正在使用的软件系统(或所选软件系统支持的业务流程)非常重要。现在可以在BPMN流程和软件系统之间开发几种类型的关系。

 

将业务概念定义精炼到软件数据设计中

业务体系结构并不以业务流程结束 - 它还必须捕获业务概念(词汇表),业务目标,组织结构等其他方面。其中一些方面也必须在软件模型中进行细化。例如,业务概念模型是设计软件体系结构的数据结构的起点。

 

业务模型中的订单概念定义(如图7所示)通常捕获概念,与其他概念的关系以及最重要的属性。在软件架构中,需要通过将一些概念分解为多个相关数据结构(参见下面的示例)并指定对软件开发很重要的细节(例如数据类型(请参阅OrderProductionOrder类中所有属性的类型)和枚举来改进此模型)

 

将软件数据结构跟踪到原始业务概念非常有用。这确立了对数据类和相应属性的需求,允许用户在完善业务概念时估计变更影响。

 

在业务流程那边,我们可以添加数据对象到流程中,包括它们的类型甚至执行任务时预期的状态来丰富我们的业务流程模型。

 

在你的组织中采用集成的业务和软件建模解决方案

在案例研究中,例如本文提供的案例研究,集成业务和软件架构可能看起来自然而简单。但在现实生活中,为了保持业务和软件架构的一致性和同步性,需要解决许多挑战。成功的建模需要建模技能,规程和适当的建模环境,支持高效建模和基于模型的分析。

流程专题