B 端产品必修课:UML入门

Posted 进击的零度

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B 端产品必修课:UML入门相关的知识,希望对你有一定的参考价值。



01


什么是 UML?



UML (Unified Modeling Language)全称为统一建模语言,由对象管理组(OMG)负责,是面向对象设计的可视化建模语言,独立于任何具体程序设计语言。
 
UML 标准定义了用于指定业务和软件系统的符号和规则,并且规则说明了如何连接和使用这些元素。
 
目前已经发布到了 2.5.1 版本,历史版本如下图。
 
 


02


为什么用 UML?




语言的目的在于沟通交流,作为一门可视化的图形语言,“可视化”和“图形”是重点,也是让 UML 出彩的点。在复杂需求设计时,使用图永远能让人更容易理解,能在开发前期对架构有更好的沟通和协作,最终实现优秀设计。
 
当然,作为一名 B 端产品经理,使用 UML 的目的很简单,提高抽象水平以及让研发童鞋更好的理解。有道是:一图抵千言。
 


03


UML 图分类



UML 2.0 定义了 13 种图类型,分为三类:
  • 结构图:定义了一个模型的静态架构,对构成模型的‘要素'建模。
  • 行为图:描绘了系统的动态视图或系统的行为。
  • 交互图:描述了系统中各种用例元素之间的流程
 
 
B 端产品必修课:UML入门
当然,这么多 UML 图,实际并不是每种都需要,下面就简单介绍常用的两种:类图和状态机图
 
 


04


 常用图--类图





1、组成


类是对现实世界中一组具有相同特征的物体的抽象。在 UML 类图中,类使用包含类名称、属性(field) 和方法(method) 且带有分割线的矩形来表示。
B 端产品必修课:UML入门
 
其中,有一种特殊的类——接口,这个需要明确一下,其组成和通用有点差异。B 端产品必修课:UML入门
第 1 层是接口名,并且使用<<>>标识接口名。第 2 层是接口中约定的方法。 
 


2、可见性



在属性/方法前,还可以加参数,来表示可见性。
B 端产品必修课:UML入门
 
如上文中接口图例,+ 代表为公共方法。
 


3、多重性




 在类图中,关系连线的两端有时会有1、*等符号,这些代表着不同映射关系。
B 端产品必修课:UML入门
 
 


4、关系



类与类之间,存在各种关系,如关联、依赖、泛化、实现、聚集和组成。
B 端产品必修课:UML入门
 

4.1 关联

关联关系是对象之间的一种引用关系,表示一个类和另外一个类之间的联系,如领导和员工,父母和子女等。
 
关联关系有单向和双向的。在UML类图中,单向关联用一个带箭头的实线表示,箭头从使用类指向被关联的类,双向关联用带箭头或者没有箭头的实线来表示。 
B 端产品必修课:UML入门
上图表示老师和学生之间的关系是双向的,一个老师可以有多个学生,一个学生也可以有多个老师。学生和课程之间是单向的,一个学生会学习多门课程,而课程是一个抽象的概念,它不拥有学生。 
 

4.2 依赖

依赖关系是一种使用关系,表示某个类依赖于另外一个类,通常表现为,某个类的方法的参数使用了另外一个类的对象。
B 端产品必修课:UML入门
 
这里记住,中间为虚线,箭头指向依赖的一侧。就比如,人需要依赖食物,才能存活。
 

4.3 泛化(继承)

泛化关系其实就是父子类之间的继承关系,表示一般与特殊的关系,指定子类如何特殊化父类的特征和行为
B 端产品必修课:UML入门
 
 
在UML类图中,用带空心三角箭头的实线来表示泛化关系,箭头从子类指向父类。如上图,父类有一个吃的方法,好人和坏人都继承于这个。但是,好人做好事,坏人做坏事。
 

4.4 实现

实现关系就是接口和实现类之间的关系。类实现了接口中的抽象方法。
B 端产品必修课:UML入门
 
在UML类图中,用带空心三角箭头的虚线来表示实现关系,箭头从实现类指向接口。如上图,北京大学和清华大学分别实现了大学接口。 

4.5 聚集

聚合关系是关联关系的一种,表示整体和部分之间的关系。例如部门和员工,学校和老师。
B 端产品必修课:UML入门
在UML类图中,用带空心菱形的实线来表示聚合关系,菱形指向整体。 
 
 

4.6 组成

组合关系是整体和局部的关系,属于关联的一种,和聚合相似。和聚合分类的依据主要是能否单独存在,例如部门和个人,是聚合。而公司和部门,是组合,毕竟公司没了,部门也就没了。再比如,身体和大脑。
 
B 端产品必修课:UML入门
 
在UML类图中,用带实心菱形的实线来表示组合关系,菱形指向整体。 
 
下面有从网上找到的一张图,我自己经常用来复习各种关系的概念。B 端产品必修课:UML入门
 
总的来说,关系从强到弱分别是:实现关系 = 泛化关系 > 组合关系  > 聚合关系 > 关联关系 >  依赖关系 。
 
 
 


05


 常用图--状态机图



状态机全称是有限状态机,状态机图描述了一个对象在生命周期内所经历的各种状态,以及引起状态变化的事件。流程图更多表达的是“操作”的前后顺序,对于对象和状态之间的变化不能够直观的表现。
 


1、组成


简单来说,状态机图有四要素组成:状态机图 = 开始状态 + 状态 + 转移 + 结束状态。
其中,四个要素描述分别如下:
  • 开始状态:开始状态是一个实心圆
  • 状态:状态指对象的生命周期中满足某些条件、执行某些活动时条件。
  • 转移:状态的转移是由事件触发,是一个特定的动作或者行为。
  • 结束状态:结束状态是一个同心圆。
 

B 端产品必修课:UML入门

 
 


2、详解



在 UML 图中,状态分为简单状态和复杂状态。复杂状态中还可以添加活动,活动是在该状态时要执行的动作。另外,状态还有嵌套嵌套行为的组合状态,不过这种用的比较少,有需要可以自行了解。
 
B 端产品必修课:UML入门
 
  • entry(入口动作)进入该状态时的特定动作。
  • do(内部活动):状态保持不变时执行的动作。
  • event:接受到某个动作时执行的动作,不会退出状态本身。
  • exit(出口动作):退出该状态时的特定动作。
 
 
转移描述对象在两种状态间的转变。当某个特定事件发生并且满足特定的条件,对象操作特定的动作,从现态进入次态。
B 端产品必修课:UML入门
 
转移的发生由「事件[守卫条件]/动作」组成,如果条件满足,则状态发生转移。如当我码字 2000 时,我就不写了,文章进入码字完成的状态。
 
当然,条件判定还有一种不太规范的用法,比如使用流程图中的菱形。
 
 


3、订单状态机




以非常典型的订单状态机图为例,下面为一个简陋的原型。
 
 
 
  1. 待支付:代表买家下单了但是还没有付款。
  2. 待发货:代表买家付款了卖家还没有发货。
  3. 已发货:代表卖家已经发货并寄出商品了。
  4. 已完成:代表买家已经确认收到货了。
  5. 退款中:代表买家付款后取消订单。
  6. 交易关闭:代表订单过期了买家也没付款、或者卖家关闭了订单。
 

参考资料

1、https://www.uml.org/

2、http://www.srcmini.com/37800.html

3、https://segmentfault.com/a/1190000021317534


   

以上是关于B 端产品必修课:UML入门的主要内容,如果未能解决你的问题,请参考以下文章

UI的必修课——产品原型设计

马化腾内部分享:产品经理的必修课

一文快速入门分库分表中间件 Sharding-JDBC (必修课)

一文快速入门分库分表中间件 Sharding-JDBC (必修课)

PowerBI入门到精通之入门

高薪设计师必修课 AE移动UI动效设计从入门到实战