最新消息:好好学习,天天向上

《UML与Enterprise Architech 16 项目实战》2.1 活动图与业务流程

系统架构/UML 货代IT 45浏览 0评论

2.1 活动图与业务流程

2.1.1 | 布吉医院案例背景描述

HSDC 的 RA 跟布吉医院的用户沟通时,发现了几个双方无法有效沟通的问题点,以下是整个访谈过程中的部分场景。

  • HSDC RA:刚才特助说明了整个住院的大致流程(也就是第 1 章中的流程),不知道有没有什么需要补充的?
  • 布吉医院特助:我刚刚说的只是住、出院里的其中一项流程,其实住出院还包括了转诊住院、急症住院 … …
  • HSDC RA:是的,我了解。我想要问的是,刚才的流程是否是最常发生的?
  • 布吉医院特助:这倒是。
  • HSDC RA:好的,那我想我们先以这个流程为基础,然后往下做讨论。
  • 布吉医院特助:哦,不过千万不要忽略其他的住院流程,那都是非常重要的。
  • HSDC RA:了解。顺便问一下,贵医院是否有住出院的标准作业流程(Standard Operating Process:SOP)?
  • 布吉医院特助:嗯… … 我们医院有通过 ISO 认证。
  • HSDC RA:那太好了,那么,我是否可以参考贵单位的 SOP 的相关流程图形?
  • 布吉医院特助:不过… …
  • HSDC RA:请说。
  • 布吉医院特助:不过,我们的 SOP 是 5 年前订定的,跟目前的实际流程已经有了差距,仅具参考价值。
  • HSDC RA:了解,那么,是否可以看一下贵单位的 SOP 流程图?
  • 布吉医院特助:请看。

图 2-1 布吉医院住出院流程SOP

布吉医院特助:当然,这个 SOP 已有部门修正,举例来说,目前已经不需要使用住院申请书申请,由于我们采用了医师门诊系统,因此,医生可以直接在门诊将住院申请相关信息直接传送给住院的柜台。

HSDC RA:也就是说,当我们的系统完成后,这里的相关文件处理也都会电子化喽!

布吉医院特助:是的。

HSDC RA:我注意到你的 SOP 中有一个单独“住院”流程… …

布吉医院特助:哦!是的,那个工作流程比较复杂,所以我们有另一张 SOP 描述,你需要参考吗?

HSDC RA:不用了。我的问题是,如果说 SOP 是贵单位通过 ISO 认证的重要工具,那么,我们是不是需要随时修正这个作业规范?

布吉医院特助:当然,如果很容易修正的话… …哈哈。

2.1.2 | 问题与分析

前一节所描述的场景,其实是很常见的一个场景,虽然公司内部有许多作业规范文件,但随着时间的推移,这些作业规范往往会跟不上实际的作业程序。

一般来说,这样的问题,主要是因为以下几个原因:

  • 过于重视文件的传递,以致忽略了作业的本质。

如图 2-1 所示,在大多数的作业规范中,会使用大量的文件传递来取代真实的作业,这样一来,一旦采用了不同的文件规格,或者把文件完全取消,就非常容易造成作业规范的不一致。

实际上,文件本身只是对于工作流的一个“整理”,并非必需产物,因此,着重于“作业”(Operation)本身而非文件,是进行作业规范流程整理时的重点。

  • 忽略了作业规范的重要性。

作业规范是让公司的业务流程能够顺利进行的重要工具,而非单纯只是通过标准化认证的文件。

一个流程的作业规范,能够让公司中各个不同角色的人,都能够各司其职,发挥公司整体效果。因此,在一个运作良好的公司中,从公司的起始阶段一直到公司的成长阶段,都应该要维护好良好的工作规范。也因此,运用适当的工作规范工具来整理公司内部的业务流程(Business Flow),对于公司的管理阶层来说,其实是非常重要的任务。

  • 作业规范常常难以维护

一家公司的作业规范必须要随时保持弹性,并且能够永续维护,因此,作业规范尽量不要使用只有少数人才了解的图形或文字来叙述,要尽可能地使用标准化工具来描述作业规范,让最大多数的人能够一目了然,进而可以管理及维护。

从上述几个问题分析,可以找出一个好的作业规范必须具备的特点:

  • 尽可能使用国际化的标准来作为作业规范的描述,让作业规范可以永续维护。
  • 在进行作业规范描述时,应尽可能着重于各个参与角色的“作业程序”,而非“文件”。
  • 在公司的工作流程有所变更时,作业规范一定要随之变更,这是管理人员的重要职责。
  • 通过上述的分析,其实可以知道,对于管理人员来说,找到一个适当的作业规范工具是非常重要的,而使用标准的 UML 活动图(Activity Diagram),正能符合上述的 3 个主要特性。

至于在软件开发过程中,UML 活动图的适时时机,则通常会包括以下几个时间点:

  • 当开始进行项目开发时,UML 活动图可以让 RA 与企业的领域专家(Domain Expert,在本案例中就是布吉医院的特助)对于企业所关心的作业规范做一个良好的沟通。
  • 当系统上线时,UML 活动图可以作为进行“系统集成测试”的重要参考依据。
  • 当系统实际上线后,企业的领域专家可以在企业的流程有所变动时,重新审视既有的 UML 活动图,并做出适时的调整。

2.1.3 | 活动图的基本认识

根据 UML 三位大师的说法,活动图主要的目的在陈述活动与活动之间的流转控制的转移。

Activity diagrams emphasize the flow of control from activity to activity. (《The Unified Modeling Language User Guide》,Grady Book, James Rumbaugh & Ivar Jacobson, 1999, pp.257)

这里所谓的活动,可以指企业的活动,也可以指应用程序中的某个特定功能。

不过一般来说,由于“活动”的定义并不如“对象”那么明确,因此,在进行系统设计时,一般不倾向于利用活动图来表达式应用程序的架构;也因此,活动图通常比较适合用于表达企业活动的工作流程关系。除此之外,由于活动图与传统的流程图类似,因此,活动图也适于表达细节程序的程序性结构。一般来说,活动图最适合使用在描述企业的本质性的工作流程(Eessial Workflow)。

接着,让我们利用一个退货流程来说明活动图中重要的几个要素(Element)。

图 2-2 一个退货流程

  • 起始点(Activity Initial)

起始点(Activity Initial)指的是一连串活动的开始点,在一张活动图中,必须是有且只能够有一个起始点;起始点的图示是

  • 结束点(Activity Final)

结束点(Activity Final)指的是一连串活动的终结点,在一张活动图中,可以有多个结束点;结束点的图示是

  • 活动(Activity)

活动(Activity)是活动图中最重要的一个元素。一般来说,所谓的活动是指人或系统的一连串的执行细节。以图 2-2 所示的而言,“顾客通过电话通知要求退货”就是一个活动,而在这个活动中,顾客有可能会执行一连串的其他活动(如查询通信录、拨打电话等),但是我们把这些细节通通用“要求退货”这个活动来表达。

事实上,这也代表着“活动”的分割,最主要还是取决于“领域专家”对于这个活动的主观意识。

活动图中的 Acivity 的表达,主要利用的方式来呈现。

  • 转移(Transition)

转移(Transition)代表着流程控制权(Flow Control)的转移。当某一个活动结束后,流程的控制权通过 Transition 表达出其转移给另外一个活动。

图 2-3 转移的表示法

  • 分支(Branching)

分支(Branching)则代表一个判断的准则,其表现方式以来表示

图 2-4 分支的表示法

在图 2-4 中,当指定了一个分支时,此时,从分支连接出去的转移必须有条件判断式,这在 UML 中称之为“约束”(Contraint),在 UML 的表示法中,约束的表达式是用一个中括号“[]”来表示该转移必须要有条件的约束。

  • 分叉(Fork)及会合(Join)

分叉(Fork)及会合(Join)主要代表对于后续活动的同步处理。当某个活动结束后,需要同时进行两个以上的活动(如工作流程中的会签),此时必须利用“分叉”来加以表达;而当某个活动必须要等待其前置的多个活动结束后方可进行,此时则利用“会合”来表达。“分叉”及“会合”的表达图示,都是的图形。

图 2-5 分叉及会合的表示法

一般来说,在 UML 活动图中,分叉与会合通常会一起出现,也就是说,若你在绘制活动图时加入了一个分叉点,那么,活动到了某个特定的地方,一定会有一个会合点,这对于绘制活动图的审核来说,是一个非常容易判别的参考点。

  • 分区(Partition)

分区(Partition)在整个活动表达上,是一个非常重要的概念。我们可利用分区来将活动分配给对应的角色。以图 2-2 为例,由于表达了分区,因此可以清楚地知道“要求退货”的这个活动,主要是由“顾客”这个角色的人来发动并执行。分区在 UML 的图示,是以的图示来表示。

2.1.4 | 布吉医院住、出院系统的活动图

在绘制活动图时,必须要特别注意一个重点,即活动图的主要核心是“活动”(或称为作业),因此,在活动图中,要尽可能地把“中间产出文件”(包括表单、报表等)排除在外。

在绘制布吉医院住出院系统的活动图时,可以参考 图 2-1 中的布吉医院住出院的 SOP 及其相关的讨论细节,把活动图绘制出来。

根据笔者多年的顾问经验,绘制活动图比较好的方式是要和领域专家直接面对面沟通,并且最好在访谈过程中直接绘制活动图,并且根据活动图复述一次在访谈中所搜集到的相关信息,如此一来,活动图所搜集到的信息一般不会失真。

但要切记,在绘制活动图时,千万不要落入到活动的细节,活动图所需要捕捉的,是整体业务流程的“大方向”,而费某个单一活动的准确度或其相关的业务规则(Business Rule),有关细节的相关描述,应该是在讨论“用例”时才需要捕捉,若过早介入流程细节,需求收集(Requirement Acquisition)很容易就陷入到分析瘫痪的陷阱,在绘制活动图时不可不慎。

以下是布吉医院的住出院流程:

图 2-6 布吉医院住出院流程

请比对一下图 2-1 与 图 2-6,可以看到图 2-6 中,所有的文件都被包含在各个相关的活动中。举例来说,在图 2-1 中的“住院请求单”的设计是让医生可以通知医护人员有患者要住院,这主要是一个“中间消息”,在图 2-6 中,则使用了活动的转移取代这个中间消息的相关细节。至于实际上活动的转移过程中,究竟是否需要这个单据来进行传递,这已经是属于细节的陈述了,因此,在图 2-6 中并不需要特别表达这一点。有关细节的部分,可以在 UML 的用例模型中再行表达即可。

另外请注意,图 2-6 的工作流程仅表达正常流程,也就是只表达病人经由医生诊断而住院的流程,事实上,流程的表达要明确而且清晰。因此,一般来说,当同一张流程图中,表达的细节过于复杂的话,其实可以拆解为两张活动图,如此一来,每一张活动图都比较简单。

事实上,许多分析师往往陷入一个误解,误认为活动图中的活动是可以“复用”的,因此,当某一个活动(如本例中的办理住院)出现在两张活动图中时,就会想把这两张活动图并成一张来表达,其实这反而丧失了活动图的易读性,也无法突显“复用”的精神。

资源的复用性很难通过活动图来表达,活动图的目的在于表达流程的完整性,而非表达资源的复用价值,因此,分析师应该要能够分清这两者的差别,并且利用不同的图形来表达这两者的差异性。

总之,在绘制活动图时,先记住第一个重点:活动是没有复用性。如此一来,相信分析师在绘制活动图时,反而比较不容易绑手绑脚,更容易发挥自己的创意。

2.1.5 | 在 EA 中绘制活动图

接下来,将说明如何利用 EA 来绘制一张 UML 的活动图。

第1步:选择活动图放置的位置。

首先打开“\Model\ch002-example..qea”;找到“Model -> Business Process Model(业务流程模型)-> 布吉医院住出院流程”。右键单击“布吉医院住出院流程”,然后弹框选择“加图”-> 在弹框中,左边选择“UML 行为”,右边选择“Activity”,命名为“布吉医院住出院流程”。

图 2-7 新建一张 活动图

图 2-8 将新的活动图命名为“布吉医院住出院流程”

第2步:绘制分区

一般来说,一个企业内部的活动会有不同角色的人参与其中,因此,在绘制业务流程时,需要将这些不同角色的人都绘制在内。在活动图中,不同角色的人,就是用 UML 2.0 的分区来标示的。

以这个范例来说,我们会有几个不同角色的人:病人、医院、护理人员

在布吉医院住出院流程的活动图中,可以将这几种角色放到工作区中,如图 2-9 至 图 2-11 所示。

图 2-9 建立第一个分区

图 2-10 将分区转为垂直

第3步:绘制活动及其他细节

在绘制完分区之后,接着就是要把适当的活动分配给适当的角色。

图 2-12 完成后的活动图

Tips

  • 快速建立各式各样的连线(在活动图中,即为转移)。

图 2-13 快速建立连线

  • 折线技巧

在需要“拐弯”的地方,左手按住 Shift 键,右手拖动鼠标移动线位置,即可将线段折成自己想要的形状。

 

转载请注明:不灭的焱 » 《UML与Enterprise Architech 16 项目实战》2.1 活动图与业务流程

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址