编辑导读:UML(统一建模语言)是由一系列标准化图形符号组成的建模语言,用于描述软件系统分析、设计和实施中的各种模型,是产品经理的必备技能。本文作者对常用到的UML图展开分析,与你分享。

一、用例图

1.1 UML建模语言的初步认识

想必大家在日常的工作中经常会画业务流程图吧,但是不知道大家有没有这种疑惑,为什么网上的画法规范都不一样呐?当你看到同事的画法和自己不一样时,是不是会突然怀疑是不是自己画的有问题,身为非科班出来的产品经理,经常会有这样的疑惑。于是网上搜了好多,发现网上的更是五花八门!因为之前自己接收到的关于这一块的知识完全是零散的,所以今天专门找了一份不错的书籍看了一下,然后系统的整理一下,分享出来给需要的小伙伴们~

简单来说UML(统一建模语言)就是由一系列的标准化的图形符号组成的建模语言,用于描述软件系统分析、设计和实施中的各种模型。当然这些模型是为了工作中更好地表达、交流、最终达到信息同步,提高工作效率的目的。

UML的建模被分为两大类—结构图和行为图,共13种图形:

1.2 常用到的UML图详解之用例图

1.2.1 用例图

1.2.1.1 什么是用例图

用例图用于描述若干参与者以及这些参与者与系统提供的用例之间的交互关系,主要为了描述系统为参与者提供的功能特性;

用例图=参与者+用例+关系

1.2.1.2 用例图的基本元素

参与者:又称为执行者,独立于目标系统之外的外界系统或者人;一般使用名词表示,例如售货员、顾客;

用例:一组动作序列的集合和描述,指的是参与者要在目标系统中做的事情;一般使用动宾短语表示,例如购买物品,付钱;

系统边界:正在建模的系统边界,用例放在系统边界之内,参与者放在系统边界之外;一般在系统边界的左上方或者右上方放置系统的名字;

1.2.1.3 关系

参与者和用例之间的关联关系:一个参与者与一个或多个用例存在关联关系,用——表示;

用例与用例之间的关系:

扩展:可以为一个用例增加额外的行为(用例),用<—<<extend>>—(此处为带有箭头的虚线)表示;

包含:指的是一个用例包含其中一个用例,用—<<include>>—>(此处为带有箭头的虚线) 表示;

参与者与参与者之间的关系:

泛化:面向对象中的继承关系,用——▷表示;

2.1.4 案例分析

例如某商店有普通顾客和VIP顾客,顾客去店里购买商品然后付款,付款时可以索要发票。VIP顾客除了正常的购买商品之外,还会额外收到一份VIP赠品。用例图如下图所示:

注:当参与者时非人类角色时,可使用<<系统>>表示参与者。

接下来将会为大家讲解另外一个常用的UML行为图——活动图。

二、活动图

2.1 什么是活动图

活动图描述了一个连续的活动流,指的是业务的活动变化;

活动图=活动+活动节点+关系

2.2 活动图的基本元素

活动:由一个或多个动作组成的行为,使用圆边矩形表示,使用动宾短语描述;

对象:移动的数据,使用矩形框表示,框内标明数据的名称,名称文字下需要加下划线;

泳道:用外观像泳道的垂直线将活动分组,在每组的上方表明活动的参与者,一般为名词,为活动图的主语,例如顾客,售货员;

注意:我们在平时的工作中经常会画泳道图,但泳道图并不是一种UML图,它只是一种可以表现不同角色不同阶段工作流程的工具;

控制节点:

开始:有且只有一个

结束:有一个到多个,分为两种情况:一种表示整个活动的终点,另外一种表示一个路径的终止(而不是整个活动的终止)

判断:根据不同的条件进行接下来不同的操作

汇合:当多条路径同时指向一个活动时,使用汇合节点;只要有一条路径先到达,就可以继续接下来的活动;注意:汇合符号和判断符号的表示图形是一样的;

分叉:一个活动在该点同时并发产生多个活动分支

结合:当并发活动需要都达到该点时才能继续接下来的活动

注:分叉符号和结合的图形时一样的

2.3 关系

活动流:表示活动之间的输入输出关系,一个活动的输出结果作为另外一个活动的输入元素,使用

——>表示;

对象流:表示活动中数据的输入输出,使用—-> (此处为带有箭头的虚线)表示;

注:阅读和作图的顺序从左上到右下,警戒条件及取值卸载方括号里面;

2.4 案例分析

例如一个客户 去商场购买物品,前提条件是商城的商品满足用户的购物需求且客户在需要发票的前提下整个活动的活动图如下

接下来将会为大家讲解另外一个常用的UML行为图——状态机图

三、状态机图

3.1 什么是状态机图

状态机图的定义:用于描述一个对象在某一流转过程中的状态变化;

状态图=状态+迁移

3.2 状态机图的基本元素

状态:表示某一对象在某一时刻中的状态,使用形容词或者副次来表示,例如”未上架”,”已购买”

控制节点:

汇合状态:将多个警戒条件局部化,使用○表示;

3.3 关系

迁移:某个对象从一个状态到另外一个状态的变化过程,用——> 来表示;

警戒条件:只有满足某个条件时,状态才会发生改变,使用[条件触发文字说明]来表示,其中条件触发文字说明一般为主谓宾结构;

3.4 案例分析

例如商场中商品从进货到售出的状态变化如下图所示:

接下来将会为大家讲解另外一个常用的UML行为图——顺序图

四、顺序图

4.1 什么是顺序图

顺序图,简单来说是为描述完成某一事件,不同的参与者之间进行交互的先后顺序;

顺序图=生命线+消息

4.2 顺序图的基本元素

生命线:表示系统的参与者以及系统运行中的对象;对于参与者,使用用例中的参与者为生命线命名;对于系统中的对象,使用相应设计类的匿名对象为生命线命名;

矩形框内以匿名对象的方式标明该生命线的名称,并加上下划线;

激活框:表示对象处于执行状态交互框和组合片断:用于循环和分支结构;

交互框:表示图中的一块区域或者片段,用一个四边形表示,常见的操作符:loop(循环) 、alt (alternative,分支条件) 、opt (optional,可选分支);

组合片断:包含图中的某个部分,用四边形表示,左上角是内涵描述性文字的折角方框;

4.3 关系

消息:是对象发出的消息,用以生命线之间的通信;

同步消息:对象发出消息之后必须接收到返回的信息才可以继续接下来的操作,用——▶来表示;消息的书写格式为   消息名(参数:参数类型):返回值;一般用动宾短语表示;

返回消息:表示发出消息之后消息的返回值,用<—-(此处为带有箭头的虚线) 表示;一般用名词表示;

自我调节消息:表示对象自己给自己发出的消息,用带有箭头的指向自己的实线表示;一般用动宾 短语表示;

4.4 案例分析

例如顾客去商店购买商品的顺序图如下图所示:

好啦,关于UML的分享就到此结束啦,作为一个PM日常主要用到的四种类型的UML图——用例图(用于描述参与者和系统功能关系的建模语言)、活动图(用以描述参与者完成任务的完整活动流程的建模语言)、状态机图(用以描述某个目标在完整的流程中状态变化的建模语言)、顺序图(用以描述在完成任务的流程中参与者之间交互顺序的建模语言)。此波分享到此结束,希望能帮助有需要的小伙伴们~