餐饮系统大拆解:用类图拆解员工结构与工作职责(1)

createh53个月前 (02-01)技术教程28

编辑导语:利用类图这一方式,产品经理可以更清晰地梳理设计思路,进而推动后续方案的迭代优化,同时结合类图梳理,团队内也能降低沟通成本。具体应该如何拆解?本篇文章里,作者结合餐饮系统,对类图拆解和梳理做了案例上的总结,一起来看一下。

学了UML的知识后,还要多看案例。下面我们就来拆解餐饮系统,该系统是餐厅用的点餐、预定和外卖等业务的系统,我会分成几篇逐一拆解。

该系统大致可分为:

  1. 面向企业的:财务管理、物资管理、员工管理。
  2. 面向用户的:用户管理、交易管理(含点餐、预定、排队)、营销管理。
  3. 面向数据的,即通过数据帮助企业决策。

本次,我们梳理的是员工结构与工作职责。而你需要有《图解产品》一书的知识背景。

一、梳理人员结构与工作职责

要设计餐厅系统,就要考虑清楚该餐厅的涉众(利益相关者)有谁,以及涉众中的参与人(使用系统的人)有谁,并梳理清楚参与人的工作职责。如何梳理?

这些内容在《图解产品》一书中都有。大致方法是你需要用三个角度找全涉众,再从其中明确参与者,这些参与者就是用系统的人,这之后再通过四个调研方法找全工作职责。

下图就是我用该书方法,梳理出来的内容:

该图就是一个类图,表达了服务员、厨师、店经理人等之间的关系,以及他们的工作职责。如表达了服务员、厨师都是员工,并且都有姓名、地址等内容,但各自的工作又不一样,如厨师负责做菜,服务员负责送菜。

二、为什么这么梳理?

1. 指导后台的原型

后台要创建员工,那么每个员工既要有一些公用字段,更有一些特有字段。如每个员工都有年龄、性别等,但是厨师长还要有健康证、厨师等级等内容。通过该类图,就可明确后台新建员工时要填写的字段。

2. 明确要实现的业务

产品经理只有知道了每个员工的工作职责后,才能再说如何设计业务。通过这个类图,就可知道各自工作,从而再将部分工作在线上完成。

3. 方便研发的实现

类图是严谨的、无歧义的。研发也非常清楚什么是类,以及这些符号的意思,这样就便于研发构建数据库。其实这个图即使你不画,研发也会从你的原型图中抽象出来,但这样做就增加了沟通成本。

三、是否都要画?如何梳理?

1. 是否都要画?画到多详细?

这要基于目的、受众、阶段、业务复杂度等方面考虑。而本图是一个中型系统常见的内容。

该图和实战中不同的是,梳理的角色略少,没有老板、财务等角色;列出的员工信息也略少,没有列出每个员工的特殊字段。

2. 如何梳理?

梳理清楚类(厨师、服务员等)是产品经理功底的表现,这些类大致等同于职位名称,但并不总是如此。更准确地说应梳理工作职能块,而不是职位名称。

这其实是领域建模的范畴,而设计复杂中台和SaaS的核心知识就是领域建模,但限于篇幅这里不做展开。

四、符号的含义是什么?

在《图解产品》一书中用了30多页讲了类的知识(信息结构一章),你要看书才能理解为什么叫类,以及符号的含义和梳理类的方法。本文仅就书中未讲到之处做补充。

1. 继承关系

继承关系是指一个类(服务员)会继承另一个类(员工)的属性和行为。表达方式如下图。

在该关系中,服务员也被称为子类,员工被称为父类(超类)。子类拥有父类的所有属性与行为,但子类却有父类没有的特殊内容。

如服务员继承了员工这个类的“姓名”等内容,但服务员还有上菜这个工作(称其为操作或行为),但一般员工却没有该工作。

通过继承关系的梳理,可明确后台每类员工的公共和特殊属性有什么。

继承的另一个说法是泛化,也就是说服务员泛泛而谈就是一个员工。

2. 类的操作

类的操作就是类自己能做的事情,或者是你或他人能对类做的事情。

在本案例中,服务员能端茶送水,但却不能做菜,这就是在表明服务员这个类能做什么,不能做什么。再如,一个洗衣机你可以对他加衣服、加洗衣粉,打开开关和关闭开关等操作。

操作的画法很简单,就是在类的所有属性(姓名等就是属性)下面再加一条横线,再写上具体的操作,如写上“上菜”等。

但要注意,按照UML的标准应写作“上菜”而不是“上菜”。括号内可加上该操作的默认值和类型(如可默认上XX菜),如不想加任何值也要用“”来表示。

但为了便于产品经理理解,本文没有加括号。而研发则可能在括号里再加内容,产品经理通常不需要做。

五、如何做好翻译官

产品经理是个翻译官,要见人说人话,见鬼说鬼话。

上面话就是说给研发听的。当你这样说了以后,研发容易理解,也没有歧义,并可轻松转化成代码。

也许研发还会夸你一句“小子,可以啊,类图都懂”。但这样的内容如说给业务人员听,就可能被骂,说你“不画人图,不说人话”

那你就要用一些不严谨的说法,从而保护好自己。你可以说员工“包含”服务员、店经理、厨师等,他们都有性别,姓名等信息。而他们各自的工作是XXX,其中餐厅服务员可以要求酒保递送菜单等。

其实这个说法还是上图内容,只是换了个说法。而你还可将上图用脑图表达出来,这样画的又快,又便于业务人员理解。

但注意该说法中的“包含”一词并不严谨,“包含”在研发体系中有特定的含义。

好了,以上这就是用类图表达员工信息与工作。而一个类图其实是就是一种梳理业务的方法,也是一种无歧义的表达方法,这可帮助你理顺思路。而产品经理也应做好翻译官,这样才能拥有更强的话语权,并获得对方的认同。

希望本文能帮到你,我们下期见!

作者:擎苍,《“图解”产品:产品经理业务设计与UML建模》作者,公众号:图解产品设计

本文由 @图解产品设计 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

相关文章

父类实现了Serializable,子类不需要实现Serializable

相关注意事项 a)序列化时,只对对象的状态进行保存,而不管对象的方法; b)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口; c)当一个对象的实例变量引用其他对象...

产品设计阶段:To B软件产品设计流程总结

到了产品设计阶段,大部分产品经理(尤其是技术转型的产品经理)终于可以大大的喘一口气了,这个阶段的工作应该是产品人最最熟悉的环节了。网上关于产品设计(我总觉得这个叫需求分析)的方法论还真是多的很,场景分...

「万字干货 | 图文」史上姨母级Java继承详解

首发公众号:bigsai 头条号:程序员bigsai 同时收录在回车课堂课程导学在Java课堂中,所有老师不得不提到面向对象(Object Oriented),而在谈到面向对象的时候,又不得不提到面向...

php中接口、抽象类以及接口和抽象类区别详解

在php中接口抽象类、Final、Static几个我们用到的相当的简单特别是大型网站架构时都会有用到了,今天我们来看一篇关于php中抽象类、Final、Static的例子。1. 接口(1)对接口的使用...

交互思考:“重要的小角色”——面包屑导航

导语:我们在设计网站的过程中,一开始的设计便会遇到导航设计,比如面包屑导航;然而对许多设计师来说,面包屑导航往往都是直接照搬,也很少会去注意甚至忽视它的存在。在产品设计多样化的今天,什么样的网站适合用...

Java 最细的集合类总结(java中的集合类)

数据结构作为每一个开发者不可回避的问题,而 Java 对于不同的数据结构提供了非常成熟的实现,这一个又一个实现既是面试中的难点,也是工作中必不可少的工具,在此,笔者经历漫长的剖析,将其抽丝剥茧的呈现出...