UML建模更好的表达产品逻辑 | 朱学敏

2019 年 4 月 29 日 产品100干货速递

UML(Unified Modeling Language,统一建模语言) 是一种在软件设计时提供给分析师、设计师和工程师之间的通用语言。它在软件需求分析及软件整个生命周期中起着重要作用:UML建模有助于捕获系统结构或行为,定义软件构架,保持设计和实现的一致性,管理复杂性,促进沟通。


UML的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML被应用到面向对象的问题解决上,面向对象的问题处理的关键是建模问题,建模可以把复杂业务的许多重要的细节给抽象出。不仅可以借助于UML来完成与用户的需求沟通,而且可以指导程序员进行开发。


UML分结构图和行为图,结构是静态的,它描绘结构元素构成的系统或函数,显示结构或运行时体系结构的静态关系,比如类图、对象图、构件图、部署图、包图。行为是动态的,它描绘一个系统或业务过程的行为特征,显示动态模型的视图,比如活动图、状态图、顺序图、通信图、用例图、时序图。每种图形都是从需求或设计的不同层面来描述模型,通过各种模型描述系统的类、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态,以便产品经理通过图形化的方式从各个角度了解产品,更好的表达思想,便于交流。


常用的UML建模工具有:ProcessOn、Enterprise Architect 、Visio、StarUML、OmniGraffle、ArgoUML。常见的UML建模有:业务建模、需求模型、设计模型、实现模型、数据库模型。UML建模重点不在于如何画UML,而是如何运用UML思考方式去管理好一个产品。UML各种图都适用于不同的场景,可从不同角度诠释产品。因侧重向产品经理角度谈UML建模,所以只介绍用例图、状态图、活动图、时序图与类图。


01

用例图(UseCase Diagram)

用例图从外部观察者的角度描述系统的作用。它描述了系统的功能要求,使用者作用于系统边界的方法以及系统的反应。1.参与者就是与应用程序或系统进行交互的用户或系统;2.用例就是外部可见的系统功能,对系统提供的服务进行描述;3.子系统用来展示系统的一部分功能,这部分功能联系紧密。


以某电商系统的客服为例,在设计用例的时候,一般是按用户角度从Uc级描述统功能,并指各功能的操作者。比如她主要负责的功能有查看数据,查看用户,管理订单和分配客服,我们就可以一种可视化的方式设计系统的功能需求,本质还是扩展功能的增删改查。


02

状态图(State Diagram)

状态图由状态、转换、事件和活动组成,描述类的对象所有可能的状态以及事件发生时的转移条件。通常状态图是对类图的补充,仅需为那些有多个状态的、行为随外界环境而改变的类画状态图。它定义了一个对象,这些状态控制外部或内部事件的不同状态,也可以告知一个对象可以拥有的状态,并且事件会怎样随着时间的推移来影响这些状态。根本就是阐明在其生命周期的时间和状态图是用于此目的的一个对象将满足某些条件、执行某些活动、等待某些事件。


以某共享充电移动端为例,客户完成扫码充电的订单对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作。从扫码充电订单状态从待支付,已支付到已退款都是一个完整的业务闭环。但实际应用中并不是所有的类都需要画状态图,有明确意义的状态,在不同状态下行为有所不同的类才需要画状态图。


03

活动图(Activity Diagram)

活动图是一种表述过程基理、业务过程以及工作流的技术,直白点就是使工作流和业务过程可视化的图。它描述活动的顺序,展现从一个活动到另一个活动的控制流,有利于识别并行活动。1.动作状态就是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态;2.动作流就是动作之间的转换称之为动作流;3.节点主要有开始节点、终止节点、分支节点与合并节点,本质都是对流程的约束。


以某业务系统为例,客户完成项目外包的这一活动过程中,分别是用户下单,选择服务,提供服务这三方面完成流程的转换,其实就是侧重从行为的动作描述。


04

时序图(Sequence Diagram)

时序图是一种强调时间顺序的交互图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。时序图具备了时间顺序的概念,提供了控制流随着时间推移的清晰的可视化轨迹,从而可以清晰地表示出对象在其生存期的某一个时刻的动态行为。1.生命线是一条垂直的虚线,从对象底部延伸出来的,表示时序图中对象存在的时间;2.控制焦点是时序图中表示时间段的符号,在这个时间段内对象将执行相应的操作;3.消息显示为箭头,消息可以完成传输,也可能丢失和找回,它可是同步的,也可是异步的,即可以是调用,也可以是信号。


以某H5商城网站为例,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程。


05

类图(ClassDiagram)

类图是一种静态模型,它通过显示出系统的类以及这些类之间的关系来表示系统。类图是静态的,可以展现软件系统中的类、接口以及它们之间的静态结构。类之间关系主要有泛化,实现,关联,聚合,组合与依赖。1.类是对象类型的表现形式,反映出这类对象在系统内的的结构和行为;2.接口是实施者需要满足的行为规范;3.包是一个命名空间,也是一个元素。


以某共享按摩系统为例,我们可以直观的开出公司、司机、车辆、设备、业务员之间的对应关系。比如一个公司对应多个车辆,一个车辆又对应多个按摩设备,理清他们之前的结构关系就可以快速了解业务逻辑和完成表结构设计。


UML在整个软件开发过程中,解决了“一盘散沙”的问题,在国内不少地方获得了应用。作为产品人,学习UML必须从模型的建造开始,一个萝卜一个坑的去将UML建模实践到产品中,不断历练自己,才能真正的学有所成。当我们把UML建模语言下的各图形都有所了解后会发现,通过这些图可以全面的、立体的从各个角度表达产品,让产品的表达变得更丰富、更形象。


对于产品经理而言,熟练掌握UML有助于梳理业务流程和传达产品需求。产品经理不仅要深挖前端业务流程,还要理解看不见的后端实现逻辑。很多产品在敏捷开发和版本迭代阶段,产品经理很容易忽视产品的隐性特性,对产品的核心功能无法深挖或理解,导致实施中还在讨论需求,上线后各种Bug影响产品体验,主要是缺少对后端整体功能的统筹与把控。而UML的出现,让PM拥有一套与技术人员沟通的共同语言,在工作中需求对称就会变得更顺畅。

END

产品经理朱学敏

教你从0到1做产品的闭环

       

       

登录查看更多
1

相关内容

统一建模语言(UML,Unified Modeling Language)是由国际软件行业组织 OMG(对象管理集团 omg.org)自 1997 年起研发的用于 IT 各领域建模的一套标准、通用、图形化的面向对象(OO)建模语言,对应的国际标准为 ISO/IEC 19505。UML 具有简单、直观、形象、表达力强等特点,因此不仅常用于复杂软件系统架构的建模和面向对象分析与设计(OOAD),也可用于复杂业务流程及系统需求的建模。UML 当前的最新版本为 v2.5(2015.3)。 UML 起源于 3 位著名的软件工程方法学家 Grady Booch、James Rumbaugh、Ivar Jacobson 融合、统一了他们各自原来的建模语言和方法。
【ICML2020-西电】用于语言生成的递归层次主题引导RNN
专知会员服务
21+阅读 · 2020年6月30日
【斯坦福CS520】向量空间中嵌入的知识图谱推理,48页ppt
专知会员服务
99+阅读 · 2020年6月11日
【ACL2020-Allen AI】预训练语言模型中的无监督域聚类
专知会员服务
23+阅读 · 2020年4月7日
【图神经网络(GNN)结构化数据分析】
专知会员服务
114+阅读 · 2020年3月22日
转岗产品经理,花了3个月都做不好需求工作
人人都是产品经理
10+阅读 · 2019年9月16日
UML建模工具一览(20190909 更新)
UMLChina
12+阅读 · 2019年9月9日
Rasa介绍:对话系统、产品与技术
AINLP
7+阅读 · 2019年8月20日
一张图理清电商后台产品模块,90%的电商类产品后台都适用
人人都是产品经理
8+阅读 · 2018年12月9日
【大数据】大数据参考架构和关键技术(综合)
产业智能官
10+阅读 · 2018年11月22日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
【知识图谱】当知识图谱遇上聊天机器人
产业智能官
13+阅读 · 2017年11月10日
[软件方法]涉众利益和基本路径
UMLChina
4+阅读 · 2017年9月2日
Learning by Abstraction: The Neural State Machine
Arxiv
6+阅读 · 2019年7月11日
Arxiv
10+阅读 · 2018年3月22日
Arxiv
6+阅读 · 2018年3月19日
Arxiv
5+阅读 · 2017年11月13日
VIP会员
相关资讯
转岗产品经理,花了3个月都做不好需求工作
人人都是产品经理
10+阅读 · 2019年9月16日
UML建模工具一览(20190909 更新)
UMLChina
12+阅读 · 2019年9月9日
Rasa介绍:对话系统、产品与技术
AINLP
7+阅读 · 2019年8月20日
一张图理清电商后台产品模块,90%的电商类产品后台都适用
人人都是产品经理
8+阅读 · 2018年12月9日
【大数据】大数据参考架构和关键技术(综合)
产业智能官
10+阅读 · 2018年11月22日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
【知识图谱】当知识图谱遇上聊天机器人
产业智能官
13+阅读 · 2017年11月10日
[软件方法]涉众利益和基本路径
UMLChina
4+阅读 · 2017年9月2日
Top
微信扫码咨询专知VIP会员