UML-需求分析的利器

Posted 人称产品汪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML-需求分析的利器相关的知识,希望对你有一定的参考价值。


产品经理,特别是B端产品经理,在规划功能的时候往往涉及比较复杂的业务逻辑,如何透过繁杂的业务表象,抽象出业务的本质,设计出逻辑严谨、契合业务、扩展性强的产品,是我们需要关注的重点。

有些产品经理在接到需求后,经过简单的思考后就急忙开始画原型,写需求文档,想到哪里就画到哪里,缺什么就补什么。

这种工作方式产出的产品方案往往缺乏系统性,容易发生的问题有:
  • 方案不完整,忽略了某些关键的业务场景、解决方案仍然浮在业务表象;

  • 只解决了某一个具体的问题,却没有办法解决某类具有共性的问题;

  • 由于初期考虑的不周全,业务理解的前瞻性不够,造成系统延展性差,新增的功能对原有框架造成重大影响...



如何避免上述问题?

这是本篇文章分享的主题—UML(统一建模语言),可能有些朋友会觉得UML的过于偏技术化,是开发人员才需要掌握的工具。

其实并不是,UML对产品经理的意义在于它提供了科学的需求分析、设计方法,尤其在B端产品领域发挥着非常重要的作用。《决胜B端》的作者杨堃老师肯定了UML的意义,并多次推荐了《火球UML大战需求分析》这本书,足以说明UML对B端产品设计的重要性。

本文将结合《火球UML大战需求分析》以及自身的实践从以下几个方面展开介绍UML:
  • 什么是UML?

  • UML的作用?

  • UML图形总体介绍

  • 产品经理需要重点掌握的几种UM图形



一、什么是UML?


UML(UnifiedModelingLanguage)统一建模语言,是对象管理组织(OMG)制定的一个通用的、可视化的建模语言标准,它是一种标准的图形化建模语言,为开发团队提供统一的建模符号来推进软件的需求分析、设计以及程序开发环节。


你可能会对“语言”这个词汇有疑惑?语言,本质上是一种沟通的标准,可以是文字,也可以是图形,肢体行为等。而UML就是图形化的建模语言,它通过图形帮助开发团队实现沟通与协作。


需要注意的是,UML不是一种可视化的程序设计语言,切勿把两者混为一谈。



二、UML有什么作用?


  • 直观表达:当产品开发规模比较复杂时,可以帮助我们用图形抽象地表达复杂概念,增强设计的方案的可读性和可理解性;


  • 增强逻辑:UML可以帮助产品经理更加全面、严谨的分析业务需求,提升产品设计方案的质量;


  • 便利沟通:通过统一图形语言和符号体系描述组织的业务流程和软件需求,可以促进团队成员之间一致、高效地交流。



三、UML图形总体介绍


UML2.0一共包括13种图形,大体可以分为两类:结构型的图和行为型的图。


  • 结构型,描述的是组成情况与联系,这种结构可视为“静态”的;

  • 行为型,往往描述的是业务之间的流程、动作,这些内容可视为“动态”。


UML-需求分析的利器


上图简单列出了这13种图形的中文以及英文名称,其中有两个细节需要特别说明:


通信图(Communication Diagram),在UML1.1版本中的英文名为Collaboration Diagram ,可译为中文“协作图”,而在UML2.X版本中,英文名为Communication Diagram,所以被译为“通信图”,本思维导图直接采用了最新的名称。


Sequence Diagram,在书籍《火球UML大战需求分析》中的叫法为“顺序图”,但是根据笔者的实践经验,大家在实操中更加习惯称之为“时序图”,这种图在支付领域的应用比较广泛,微信支付的开发文档也多次提到时序图,所以本思维导图将Sequence Diagram称为“时序图”。


UML常用的建模工具有ProcessOn、Visio等,工具只是我们表达思维的一种手段,对产品经理来说,怎么画出好看的UML图不是关键,利用UML帮助我们理清思维、管理产品才是目的。不同的UML,其应用场景也有差异。



四、产品经理需要掌握的UML图形详解


UML图一共13种,但是产品经理只需要重点掌握几种常用的图形即可,其他非重点的UML图,可稍作了解。


产品经理常用的UML图包括:类图、活动图、状态机图、用例图、时序图。


(一)类图


类图(Class Diagram)显示了模型的静态结构,表现出模型中存在的类、类的内部结构以及类之间的关系等。用类图表现模型结构的大致步骤如下:


1.识别出类:这是一个抽象的过程,从个性到共性。类的抽象并不是随意的,而要结合具体的业务场景。

例如:当我们需要做一个培训管理系统时,正确的做法是把培训课室里面的人抽象为两个类,“学员”以及“教师”。相反,如果你得到的类是“男人”与“女人”,就失去了类的意义,因为这无法帮助我们建设系统。


2.识别出类的主要属性:属性是记录类的性质和状态的变量,比如“学生”的关键属性有知识水平、接受能力。“讲师”的关键属性有知识水平、表达能力、讲课经验。


3.描绘出类之间的关系。类之间关系主要有泛化,实现,关联,聚合,组合与依赖。不同的类关系,画法都不同。


对产品经理来说,类图比较多应用于实体关系(ER建模)的分析,主要作用在于帮助我们抽象出系统的核心实体以及实体之间的关系。这是B端产品必须要掌握的一个能力。


以某公司的培训管理系统为例,该公司自主开发了一个员工的培训管理系统,各个讲师按照公司需求上线课程,员工可制定课程学习计划、参加课程,公司会根据实际需要为员工安排考试。综上,该系统的核心实体关系可能如下:


UML-需求分析的利器



(二)活动图


活动图(Activity Diagram)是进行行为建模最为常用的一种UML图,它表达的是实现某个业务目标的具体过程。


活动图与流程图很类似,我们经常使用到的流程图,并不属于UML图,但是核心思维是一致的,就是清晰的表现出实现某个业务目标的具体过程与步骤。


以某公司的工时审批系统为例,员工需要填写工时并提交上级审核,如果是项目工时,则需要项目经理-部门经理审核,否则只需要项目经理审核即可,具体的活动图如下:


UML-需求分析的利器


(三)状态机图


状态机图,也称有限状态机图,是描述有限个状态以及这些状态之间流转情况的图形。


状态机图主要由状态以及转换事件组成。简单来说,状态机图表达的是A状态如何通过某个事件转换成B状态。


状态机图都有一个开始状态、一个或者多个结束状态。


状态与状态之间的箭头叫转换,箭头上的文字表明了状态发生转化的前提事件。


比如企业要求员工通过考勤软件提交请假申请,那么员工提交的请假申请大致有以下几个状态,审批中、审批通过、审批拒绝、审批撤回。


UML-需求分析的利器



(四)用例图


用例图(Use Case Diagram),描述的什么角色通过某某系统能够做什么事情,用例图主要帮助我们从对象的角度出发,去思考具体的功能。


以ATM机为例,储户能够使用的功能有查询余额、存款、取款、转账。


UML-需求分析的利器



(五)时序图


时序图(Sequence Diagram),时序图是一种强调时间顺序的交互图,它通过描述对象之间请求和响应消息的时间顺序,来显示多个对象之间的动态协作。


时序图在支付领域的应用十分广泛,可以清晰的描述支付信息在各个系统之间的流转。下图是微信H5网页支付的时序图:




五、写在最后


UML所传达的面向对象的思维,对产品经理进行需求分析与产品设计均有重要的意义,特别是从事B端的产品经理。


本文只是简单的介绍了UML的相关知识,希望能够起到启发性的作用。如果想更加深入的了解UML图的标准、画法等,建议大家阅读《火球UML大战需求分析》这本书。


学习的UML的过程可能有比较多的困扰,因为这确实是一门精深的学问,虽不求准确掌握每个标准的画法,但是UML传达的思维是我们始终需要培养的。


另外,学习了相关的理论之后,建议还是要在日常的工作中有意识的去应用,久而久之,你会发现,感觉上来了,思维也慢慢有了。




点个“在看”再走呗~



以上是关于UML-需求分析的利器的主要内容,如果未能解决你的问题,请参考以下文章

需求分析和架构设计利器-UML组件介绍

UML图总结-需求分析阶段用例图的使用

UML大战需求分析--阅读笔记3

《UML大战需求分析》阅读笔记3

《UML大战需求分析》阅读笔记5

案例分析 || UML大战需求分析