产品经理的思考利器——UML

2022-10-2208:46:08互联网产品Comments1,168 views字数 5339阅读模式

UML到底是个什么?

学名叫做“统一建模语言(Unified Modeling Language)”,下面用大白话解释下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

UML这个语言定位是个工具,是1997年OMG组织(不是哦买噶!是Object ManagementGroup对象管理组织)发布的统一建模语言,是一种编制软蓝图的标准化语言
它的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用,提出了一套IT专业人员期待多年的统一标准建模符号,支持面向对象的技术。
通过使用UML,这些人员能够阅读和交流系统架构和设计规划。(可以理解为想实现在不同世界的研发沟通时,达到车同轨书同文的效果)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

除此之外,工作中还会遇到各种xxML,都是某类领域为了方便业内交流,或者战略上为了制定行业标准而发明的建模语言,如VRML(虚拟现实建模语言),sysML(从UML2.0衍生并进化)等文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

为什么要学UML?我能得到什么?

在我看来,UML更是一种思想,诞生之初给研发人员使用,但也适合产品架构师,系统分析师这类的角色使用,掌握以后有这个几个好处文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

好处1 思维方式的扩展

UML是一种面向对象的思考方式,用抽象的方式去反映现实世界的某个片段。如果去和前文提到“用户体验要素(战略层/范围层/结构层/框/框架层/表现层)”联系的话,UML的作用处在范围层&结构层文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

UML同时也是分而治之的思想的重要体现,在现实中也有其他类似的体现,比如工程测量中“先整体后局部,由高级到低级,由控制到碎部”文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

掌握了它,就可以在思考复杂问题的时候有层次有章法,面对再大再庞杂的系统,也可以逐个解开文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

好处2 识别“领域知识”,跨领域沟通与学习能力的提升

“领域知识”是一个元概念,有时候和用户/客户交流,你会被带入到全新的领域(不理解领域的话,可类比行业去理解,实际不太一样)中,和领域内的专家与客户交谈,他们的独有的业务经验,对你来讲,就是一个“领域知识”,这种场景在B端业务中会更为常见。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

如果我们无法定义一件事,就无法注意到它。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

好了,我现在把定义引入进来了,大家可尝试在工作或生活中注意到它:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

在与客户交谈时,注意客户描述业务实体的名词术语,这些名词术语会被当成「类」,还要注意听到的动词,这些动词可能会构成「类」中的「操作」,然后还有其他名词可能变为「类」中的「属性」。
当梳理出来之后,再去询问客户每个「类」的作用,客户会告诉你「类」的职责,这样就能快速了解该领域的基础逻辑。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

就是我开篇提到的痛点,在学习了UML之后,对“领域知识”有了新的认知,有信心在进入陌生领域时系统的建立起认知文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

好处3 完全是私货 对思考的习惯有很大影响

学了UML后,我甚至可以对人际关系有了更冷静的感知,比如沟通的时候,沟通的是你,你的关系,别人,还是你身上的某部分属性,都可以想的很透彻,更能接近事实和本质,可提高思考的深度文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

这种深度的提高,对我这种傻实在的人来说,很有帮助。或者对社会经验不太足的学生来说,也会有帮助文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

UML都包含哪些内容,如何快速上手?

引了这么多,直接看UML有啥东西吧!
主要可分为如下图两大类:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

1、结构元素,图例左半部分,自上而下为类图,接口,用例图,关系,分组,注释
2、行为元素,图例右半部分,自上而下为状态图,时序图,协作图,活动图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

可以理解为这就是咱们现实世界的粗暴分解,结构和过程组成了世界上的一切,形成了时空文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

再奉上一张网上超级经典的图,UML拆解的样例,这里基本用上了UML中高频使用的图例类型,请保存好,后面会持续用到
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

那么,产品同学要掌握的图有哪些?
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

结构元素

结构元素-类图

类,是一类或者一组具有类似属性和共同行为的事物,映射到现实中,可参考我上面的那个黄颜色的图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础,主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

类图描述一个类的属性和操作,以及对系统的约束。它们是唯一的,可以直接映射到面向对象的语言的 UML图。请看详解文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

「类」的实例,叫做「对象」文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

类和类之间,也会存在相互关系,这个关系也有专门的标识方式,这里要先引入“面向对象”的一些相关概念了,如下图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

面向对象的思考方式,是以开发出能够反映出现实世界某个特定片段为目标的,或者叫建模。
对象是类的实例,比如你和我都是“人”这个「类」的实例,对象具有自身的结构,属性和操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

比如抽象,是过滤掉对象的一部分属性,保留解决问题所够用的属性和操作,因为现实生活中,解决问题不一定需要全部的信息文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

再就是继承,我们的电冰箱,电烤箱可以看成单独的「类」,都是电器这个「类」下的子类,继承了电器的“开”与“关”,但冰箱有冷冻功能,烤箱有加热功能。对应的,电器这个「类」也是电冰箱电烤箱的「超类」文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

其他的可以看图,要解释下本图不是UML全部的内容,但足够本文章讲和使用了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

好了,终于可以讲正题了!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

「类」之间存在的关系,有如图几种,我们详细用图片展示
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

关联
接触过数据库的同学对这个定义比较熟悉,基本等同于ER的思考逻辑
使用直线表示
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

就像「类」和「对象」的层级关系,「类」和「类」之间的“关联”关系,也是一个「类」,且这个「关联类」对应的「对象」叫做「链」。
听起来有点套娃,但这个就是核心的思考方式了,可以向上抽象思考,也可以向下实例思考文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

关联讲完了,咱们来讲
抽象,继承,泛化
这三个放到一块讲,是他们的联系可放到一块去思考,在设计游戏时,「计时器类」是从「投球计时类」和「游戏计时类」抽象出来的,对应的子类用空心实线箭头指向被继承的类,这个箭头就是泛化关系,代表“is a kind of……”
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

好好琢磨下哈,然后咱们继续介绍下
接口和实现
接口跟封装可以一起介绍,可以理解为你在使用冰箱的时候,不需要知道冰箱怎么制冷的。只需要插电和开关冰箱门就好了。冰箱把制冷的细节都封装在了里面,给你留下了开关和插电的接口
冰箱这个「类」对应的他的开关接口,这之间的关系就是实现,使用空心虚线箭头标识文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

依赖
用虚线单箭头表示,一个类使用了另一个类,比如在设计报表类系统时,会存在类似的关系。“展示报表”的功能,使用了“报表”这个类,有一个前置的逻辑,形成了依赖关系
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

最后就是类图里的最后一块文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

聚集和组成
这其中有点形似与混合物 与 化合物的区别。
聚集,用空心菱形剪头,从部分指向整体,一种混合物的关系
组成,用实心菱形剪头,代表强聚集关系,类似化合物的关系,桌子由桌面和桌腿组成。当然这只是为了没接触的同学好理解,如果有ETC精请克制自己不要自动抬杠……
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

结构元素-用例图

篇幅最长的类图介绍完了,接下来介绍一个也很常用的用例图,相对简单很多,跟画画一样,一个小人儿和一大堆气泡发生了连线的关系文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

用例图可以在设计系统或者需求的时候,理清楚实际的场景,排坑。比如设计某功能时,总会有一些操作场景被遗漏,导致进入测试阶段中了,才发现有问题,要修补。使用用例图,能很大程度上在设计阶段避免这种情况。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML
小人儿就是参与者
气泡就是用例
二者之间使用依赖线连接, 上面可以标记<< include>> 或 << extend>>,<< include>>可理解为用例间包含的关系,一个用例包含了下一层级的用例。<< extend>>可以理解为此用例还有其他场景可以使用,扩展出了一个入口
用例图只用来标识参与者和用例的关系,并不代表先后顺序
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

用例图在交付时通常给客户和开发组参考,每个用例图的场景描述至少占一页文档,包含:
·发起用例的参与者
·用例的假设条件
·用例的前置条件
·场景中的步骤
·场景完成后的后置条件
·从用例中获益的参与者文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

行为元素

终于大半篇幅讲完了结构元素,本节开始讲行为元素了,如果小伙伴们看麻了,可以收藏或者转发给自己的小号,后面继续看~文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

行为元素对于产品同学来讲,基本是不陌生的,如果经常绘制业务流程图的话,会发现有很多一致的地方,很正常,都是团队的沟通工具嘛文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

行为元素-状态图(状态机图)

这种图在制作大型业务系统的时候,肯定会用到,比如我在设计CRM系统的时候,里面的商机就会有多种状态流转,就用到了这个图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

给研发兄弟看,也会沟通的很顺畅,因为研发在实际工作中会频繁用到这里,他们基于这些状态去设计代码层面的调用逻辑。便于他们设计的时候提前规划,提高研发的效率。研发最怕的,是做一半了中途改了基础底层状态的设计,分分钟掀桌子文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

状态图的定义,可以说是对象改变了自己的状态,以响应事件和时间的流逝,比如灯的开与关。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

状态图和类图的差别,是状态图针对的是单个对象来建模,类图可以针对一组类来建模文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

绘制方法,圆角矩形代表一个状态,状态间带箭头的实现代表状态的迁移,箭头指向目标状态。实心圆点代表状态转移的起点,牛眼圆圈代表重点文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

记不住那么多没关系,有专门的工具,跟visio一样,直接找来拖就行了,文章末尾会介绍绘制工具文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

下图是基于工单类的审批流程绘制的状态图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

行为元素-时序图

时序图,也叫顺序图,强调了时间维度,时序图的关键思想是强调了对象之间的交互按照特定时间发生,这些特定时间的交互序列,从开始到结束需要一定的时间。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

时序图通常用对象标识,从每个对象下方延展出一条生命线,一个时序图可以用单个或者多个如下单元组成文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

每个线程对象之间可以用消息通信,有两类文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

一类消息叫调用,这是一个来自消息发送者对象的请求,它被传递给消息的接收对象,请求接收者对象执行某种操作。通常,需要发送者等待接收者执行,等待反馈,这种消息又叫做同步消息。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

如下图,带有实心箭头的实线表示发送的消息,带有线状箭头的虚线表示返回消息
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

另一类消息叫做异步消息,这种机制下发送者把控制权交给了接收者,并不等待操作完成,这种消息用带有线状箭头的实线表示
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

时序图跟跨职能流程图有些许相似,不过时序图可以更清晰的展示每个线程的动作顺序,以及线程之间的通信关系,如果是用跨职能流程图的方式来绘制,就不便于展示每个线程之间的多条通信了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

依然拿请假的流程举例,如图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

时序图还有帧化的概念,不过对于非研发工作来讲,没必要学习,基本用不到。不再赘述文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

行为元素-活动图

终于到了最后的类型了!活动图,用圆角矩形表示,与状态图不同的是,活动图的图例更接近椭圆。一个活动的处理一旦完成,就自动引起下一个活动发生。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

状态图侧重于描述对象的状态变化,活动图侧重于描述活动,与业务单线流程图大多数逻辑类似,不过区别是活动图更适合展示判断过程,和并发路径。如果用基础的单线流程图标识,会不太直观文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

比如判断是类似的表示方法产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

并行路径的表示方法
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

如果日常工作中使用流程图较多,也不必非要用这个,UML本质目的是快速沟通,能沟通清楚就行文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

实战应用

下面讲下我平时是怎么应用的,有两类案例,一类是研究一个系统,多数的时候是凭借兴趣研究的,感觉很有意思。另一个是工作里实际使用时展示的文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

拆解与理解saleforce

saleforce是CRM业界非常知名的一个产品,因为这个系统太过于庞大,UML的类图是快速理解的一个利器。
此时应用UML不是还原到如何实现,而是为了理解它是怎么设计的。通过demo很难有机会能接触到更深层的实现细节
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

应用到工作

在设计内部BI系统时,用到了类图,和用例图。
产品经理的思考利器——UML
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

在设计CRM系统时,商机(例子)状态的流转图。CRM的设计,我会单起一系列文章讲
产品经理的思考利器——UML文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

除了这些还有很多应用,不过都差不多,应该可以给大家足够的帮助了。关于UML的介绍内容,就到此结束,下面我做下对应的答疑文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

高频的疑问解答

在调研UML是否值得学习的时候,我也会经常看到这样那样的问题,比如文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

1、我看完了,真的有必要学吗?研发不看怎么办?
我的个人建议是,如果自身喜欢这方面的思考,可以凭兴趣去学;
如果是B端从业且想继续发展的业务产品,建议去学,学了以后会有如虎添翼的功效,不过学习需要时间,建议收藏,或者转发给小号后续常看,我平时看到东西也这么干哈哈,最好能买书学,更系统文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

UML本质还是沟通工具,可以跟研发去协商,看团队更倾向用什么方式沟通,UML只是一种,如果有别的更合适的表示方法,能把逻辑梳理清楚,歧义消除干净,最好不过了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

2、UML和数据建模是否有关系?
跟研发同事交流过,他们说UML其实就跟JAVA编程过程中的思考很接近,不断抽象和建模,平时也会用到。
数据库建模与UML有一定的联系,数据库建模的过程是逻辑层到物理层的逐层过程,都是构造模型,但侧重点不一样,数据库建模侧重数据层面逻辑效率,模型可用性等等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

3、UML之后如何使用?
除了上面的那些基本功能点以外,使用UML的本质目的就是为了多方理解,尽管UML有一些法则,也不要被禁锢,能达到沟通顺畅无歧义的目的,就足够了文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

4、画图使用什么工具呢?
·starUML。win/mac平台都有,win的平台有个版本很复古,但是功能很完善。mac有starUML4.0的版本,颜值很高,但是感觉画起来没win的好用。大家可以百度搜下。
·Visio。可以画的图很多,包含了UML的基础图例,不过看个人习惯,我Visio和starUML都用,Visio常用来画流程
·其他有用的也可以推荐下,工具嘛,趁手就行文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

5、有哪些书籍推荐?
·UML基础、案例与应用(入门)
·大象UML(进阶)
·大话设计模式(感兴趣可以看)
·系统架构(值得反复长期啃,我确实还没看完,太大了,不过是本神书)
另外其他的书,可以白嫖微信读书无限卡,香滴很!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cp/29167.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/cp/29167.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定