参考

《B端产品经理必修课2.0:从业务逻辑到产品构建全攻略》5.4 需求分析:用图形代替需求
干货!一文解决产品经理对UML的全部疑问
https://coffee.pmcaff.com/article/qVkVp1peQO
《火球UML》《大象UML》《UML和模式应用》(《火球UML》更适合缺少技术背景的产品经理,基本可以无障碍阅读。)
常用的UML建模(质量较高)
https://coffee.pmcaff.com/article/1940694457500800?newwindow=1

统一建模语言定义

统一建模语言(Unified Modeling Language,UML)用来解析业务和探索需求。
通常对业务概念等静态结构进行系统化的梳理和提炼,我们叫它结构建模。而于对业务流程等动态内容进行系统化的梳理和提炼,我们叫它行为建模。
image.png

UML总共有十多种图,包含类图、活动图、状态机图、顺序图、用例图、部署图、构建图、包图、时序图、交互概览图、组合结构图。 作为一般的业务型产品经理,只需要掌握类图、活动图、状态机图、顺序图和用例图即可。这5种图能够帮助我们更好地进行问题解构和需求分析,也是没有技术背景的产品经理很好掌握的5种图。 一般会把UML图分为结构型图和行为型图2种。结构型图描述的是事物及事物之间的结构,这个结构在某段时间内应该是稳定的、静态的;而行为图则描述的是事物的行为,是动态的。

  • 类图 class diagram
  • 活动图 activity diagram
  • 状态机图 state machine diagram
  • 顺序图、时序图 sequence diagram
  • 用例图 use case diagram

在这5种图中,类图是其中唯一的一种静态结构型图,其余4种都是行为型图。

类图

和数据库的E-R图(Entity-Relationship实体-关系图)有一些相似之处。
常见的类与类之间的关系有:包含、继承、依赖,其中包含又分为聚合aggregation(强包含)和组合composition(弱包含)。
继承关系指A继承了B的属性,但同时也有自己特有的特点。例如,老师和学生都是「人」,但是老师和学生各自有各自的特性,那么他们就和「人」之间是一种继承关系。
依赖关系指A需要B协助才能完成某事,但并不是必须赖以生存的关系。例如,开会依赖于使用投影仪,但没有投影仪我们也照样完成会议,只是可能没那么方便。
类图的进阶:
递归关系:分为自包含和自关联
三角关系
当某些属性值并不是由该类本身就可以确定的时候,我们可以使用三角关系,例如员工的薪资职位等,并不是由公司可以确定的,而是由劳动合同来确定的。

流程图

按照UML 标准,流程图的分类有很多,如活动图、状态图、时序图等,其中的活动图就跟我们平常所用的流程图类似。

流程图基本元素
image.png
流程图从上往下分为3级基本上就可以把事情描述清楚。——《软件需求与可视化模型》
image.png

实体关系图

实体关系图(Entity Relationship Diagram,ERD),实体关系图多用于数据库和表结构的设计。
业务实体之间的三种关系:一对一、一对多、多对多
业务实体关系图中的元素
image.png
对于数据的处理分为创建(Create)、查询(Retrieve)、更新(Update)和删除(Delete),简称CRUD。
UML 一开始是让研发人员快速交流和分析如何写代码使用的,因此UML 的工具很多是为技术人员服务的。实体关系图本质上是方便技术人员设计数据库。对于非技术出身的产品经理来说,使用实体关系图反而会增加学习成本。

数据流程图

业务实体关系图就像海报一样,以静态的方式讲述数据之间的关系;而数据流程图就像电影一样,以动态的方式展现数据。
数据流程图
image.png
数据流程图中的基本元素
image.png

状态机图

状态是在特定的条件下与业务实体相关的一组属性,也是业务实体的一种数据。系统中的业务实体在不同的状态下,会展示不同的内容,状态图就是用来描绘状态是如何流转和变化的。

活动图是将流程分解为一个个的活动,通过活动的先后顺序来展示流程;而状态机图则是围绕一个事物的状态为中心来讲述流程。

状态图的基本元素
image.png
image.png

用例图

用例图是以操作者的角度出发,去看这个产品能够带给他哪些价值、支持他去操作和查看哪些东西。
用例图并不是描述功能而是描述场景。
用例的创始人Ivar博士:老是站在系统内思考要什么功能,不如站在系统外看看,因此创造出了用例。
下图并不合适↓
image.png

小结

建议按照「类图-用例图-状态机图/顺序图/活动图」这样的顺序去使用。
在需求前期,我们可以先使用类图来识别类、类的属性和关系。就像抓住句子的主谓宾结构,从而更快地理解句子意思。
接下来,我们可以通过用例图去和客户、工程师沟通产品的价值和能做的事,以一个粗粒度的角度框定产品范围,看当前的范围是否能够满足客户需求,帮助我们确立能够开发出有价值有意义的产品。同时借助用例图,产品也能够向研发积极传递当前所做产品的价值,避免工程师因功能价值理解不足而产生开发受阻的问题。
最后,我们就要在状态机图、顺序图、活动图中去做抉择来描述具体流程了。
这3种图有各自的特点:
顺序图的特点

  • 强调角色之间的交互,信息传递很明确
  • 强调按时间顺序分别发生了什么事情
  • 不太适合表达复杂的特殊流程(循环分支、条件分支、可选分支)

活动图的特点

  • 强调每个角色做了什么事情,这些事情的先后关系
  • 适合表达各种特殊流程,如分支、并发等

状态机图的特点

  • 事情围绕某东西开展
  • 该东西有不同的状态,状态会因为发生了一些事情而变化