活动图实例:细谈UML建模语言中的活动图模型

4 评论 65556 浏览 163 收藏 10 分钟

活动图描述的是从一个活动到另一个活动的控制流,描述活动的顺序,活动表示处理事物的动作和状态。

谈到活动图就得先说UML(Unified Modeling Language),UML又称统一建模语言,它是一种支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。UML语言的各种图形用来描述软件系统的不同层面,通过不同层面的描述共同建造起软件系统的全貌。

UML模型图有类图、对象图、构件图、部署图、包图、活动图、状态图、顺序图、通信图、用例图、时序图。每种图形都是从不同角度来阐述软件系统,通过各种模型的搭建共同建造起整个软件系统,UML分别描述系统的类、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。通过UML模型可以降低理解成本,更好的表达思想,便于交流。口述和文字都不是一个快速传递信息的方法,其它的图形,也只是从某一个层面来描述事物,而UML语言通过不同的模型的组合可以共同的搭建起整套系统的全貌。

UML分结构型图和行为型图,结构是静态的,有类图、对象图、构件图、部署图、包图。行为是动态的,有活动图、状态图、顺序图、通信图、用例图、时序图。每种图是从需求或设计的不同层面来描述模型,以便于所有参与者通过图形化的方式从各个角度了解产品。

开始讲述活动图

活动图描述的是从一个活动到另一个活动的控制流,描述活动的顺序,活动表示处理事物的动作和状态。

用实例法来说明活动图:

用例一:

活动描述:小张每天醒来后先看表是否到起床时间,如果没到继续睡觉;如果到了,抓紧时间起床,洗漱完毕后吃早餐,饭后出门。

小张早晨起床上班的活动,用活动图绘制如下:

起床活动图

上图绘制的就是小张早晨日常生活的活动图,通过这种图形化模型可以把动作的流程性表达的更加清楚,动作的内容、流程、判断、交互、并发都能很好的表达。

活动图分析:

开始与结束:活动图只能有一个起点,但可以有多个终点的。

分支判断:菱形代表分支判断,这个与流程图的分支判断是一样的。上面的分支判断意思是:睡醒后看时间是否到上班时间,如果没到,继续睡觉;如果到了,起床洗漱。

分叉与汇合:分叉与汇合必须组合使用,表示并发动作。分叉表示一个活动完成后产生后续的多个并行的活动;汇合表示多个活动全部完成后再进行下一个活动。分叉是一个指入多个指出,汇合是多个指入汇集后,一个指出。分叉与汇合间的活动是并行执行的,最后都执行完后统一汇合进入下一活动。

  • 活动:活动用圆角矩形表示,活动间的控制流用实体箭头表示。活动表示流程中的动作,活动可大可小,活动可以继续拆分成更细小的活动。活动的粒度由图表要表达的含义决定,是要表达宽泛的流程、还是要表达具体的流程。

用例二:

活动描述:产品经理的工作流程,产品在立项前,先要分析市场,进行产品定位和可行性分析;项目成立后,要进行需求分析,通过需求分析编写出商业需求文档、市场需求文档和产品需求文档,之后,根据需求绘制原型、产品设计、流程分析。这些工作完成后进入开发阶段:架构设计、概要设计、详细设计、代码开发、软件测试。

以上活动整理成活动图如下:

产品生命周期流程

解读“产品生命周期”活动图:

上图是产品生产的整个生命周期(生产不包括产品的维护及运营),做产品前先要为产品进行定位,指明产品方向,之后可行性研究(技术可行性、经济可行性和社会可行性),这三种可行性是并行执行的。

项目立项后,对产品进行需求分析,需求阶段会出三个文档:商业需求文档(BRD)、市场需求文档(MRD)、产品需求文档(PRD)。在上图中把这三个文档用长方形框表示,长方形框表示对象,意思是经过需求分析后生成了的三个文档对象。对象可以做为下一个活动的输入,也可以是活动的输出,输入与输出的对象可以是一个或多个。之后,再经过原型设计、技术设计、开发、测试,最后产品上线。

对象:对象用长方形框表示,对象的名称是名词。活动可以有多个输入和输出,对象可以是成为活动的输入。

用例三

活动描述:客户在网购网站上购物并下单,支付后生成送货单,供应商送货,送货后本次订单结束。

像这种情况涉及到客户、系统与供应商间的交互,客户的活动有下单、选择支付;系统生成送货单并收款;供应商活动有送货及修改订单动作。如使用之前的活动图形式就很难表达出客户、供应商与系统间的活动,如想要更好的表达角色与活动间的关系,就需要把角色加进来,在这里叫做泳道。

根据上面所示业务示意图如下:

泳道:上图中的客户、系统、供应商所属的大的长方形框就为各个对象的泳道,泳道内的活动表示此对象所属的动作,通过跨泳道的信息交互可以更好的表达出对象间与活动间的信息交互。泳道名应为对象名,既然是对象名,所以泳道名应为名词。

活动图与流程图的区别

通过以上讲解可以看出,活动图与我们经常画的流程图很相似,都表达事物的处理流程,那么活动图与流程图的区别是什么呢?

  • 活动图可以表达并发的动作,而流程图不能。
  • 活动图是面向对象的,而流程图是面向过程的。活动图有对象的输入、输出,流程图重点是处理流程,有明确的时间概念。
  • 活动图的对象与活动有明显区分,流程图并不强调这点。
  • 活动图可以有多个结束状态,而流程图只能有一个结束状态。
  • 流程图很屌丝,活动图更高大上。(我个人想法)

总结:

UML模型从各种不同的角度来表达系统,通过各种模型的组合可以全面的了解系统情况。活动图的角度就是系统内各对象的不同活动间的交互,通过活动间的交互可以更好的梳理思想。

#专栏作家#

老吴,微信公众号:ChanPinLaoWu,人人都是产品经理专栏作家,产品讲学堂自媒体人。十多年软件行业从业经验,做过软件开发、项目管理、产品经理、产品总监,希望在这里能够与大家分享更多产品经验和知识。

本文原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 我觉得很到位

    来自广东 回复
  2. 流程图听了想打人

    来自北京 回复
  3. 那产品需求文档中的业务流程图,可以用上述的UML活动图代替吗?个人感觉UML活动图更能清楚的描述业务的流程。

    来自湖北 回复
    1. 当然可以

      来自北京 回复