餐饮系统大拆解,用类图拆解套餐和桌台信息(2)

2 评论 3813 浏览 15 收藏 9 分钟

编辑导读:UML既是图,更是个思考工具,能够提升文档质量。本文作者通过梳理餐厅的套餐和桌台,来说明类图的作用,希望对你有帮助。

这是餐厅系统拆解第二篇。在上一篇中,我们用类图表达了员工之间的关系,以及每个员工的工作。有人说这么做没必要,用脑图不也一样吗?

这是不对的,产品经理的文档考虑不周和不严谨,就是因为没有学会UML,UML既是图,更是个思考工具,TA能提升你的文档质量

下面,我们通过梳理餐厅的套餐和桌台,来说明类图的作用,并学习一些《图解产品》中未讲到的内容。同样阅读本文需有《图解产品》一书的知识背景。

01 两个“多余”的类图

产品经理要给“老夫牛腩”餐厅开发餐饮软件,这就要梳理餐厅菜单,并将其用于后台的菜品管理中。

餐厅是以卖套餐为主,套餐内有沙拉、汤、开胃菜、主菜和甜点,用类图表示如下。

产品经理还要梳理餐厅的桌台信息,并用于后台的餐桌管理中,甩类图表示如下。

有人认为这两个类图就是树状结构,用脑图也一样,但这是错误的。两个图的问题很多,很容易被研发挑战。

下面就是女研发小苍挑战男产品经理小黄的过程。

02 研发挑战产品经理

小苍问:“小黄,行啊,类图都会画,但请问他们上菜有没有先后次序?”

小黄尴尬几秒,说:“小苍,不好意思,我没想到啊,我问问餐厅。”

小黄赶紧抓起电话问,之后告诉小苍说:“他们是有上菜顺序的,他们是先上开胃菜,再上主菜,之后上甜点。”

小苍微微一笑:“辛苦小黄了,再问个问题啊,套餐内有没有二选一的?”

小黄不悦,怎么不一次把话说完?“小苍,实在不好意思,我又没想到啊,我再问问去。”

小黄又抓起电话问,之后又告诉小苍:“他们上菜是有二选一的,沙拉和汤就要二选一。”

小苍最后问:“辛苦小黄了,最后一个问题啊,1个桌子可以属于N个服务区吗?”

这次小黄愤怒了:“小苍同学,1个桌子只能属于1个服务区啊,怎么可能属于N个服务区啊!有没有常识?”

小苍也怒了:“但你画的符号是说,1个桌子可以属于N个服务区啊!是你错了!”。

“你这是在找茬!”小黄大怒,摔门而去。

故事讲完了,一方面小苍在有意为难小黄,另一方面也是小黄学艺不精,总是考虑不周。

为什么小苍要为难小黄?文末有答案。小黄的问题是什么?下面给出答案。

03 用约束关系,将事情考虑全

两个类之间可以有约束关系,具体说就是有“先后关系”以及“或的关系”。

1.先后关系:套餐要求上开胃菜,再上主菜,再上甜点,这三个类就有“先后关系”,或称开胃菜先于主菜。

2.或的关系:套餐中的沙拉和汤两个菜就要二选一,这两者就是“或的关系”。

如何表达?如下图所示。

图中的虚线表达了两个类之间有关系,虚线上的字表达了具体关系,可写上“先于”,“或”等字样。

回顾小苍和小黄的对话,如小黄知道类之间还有约束关系,就不至于丢三拉四。

需要说明的是,UML的标准写法是“{先于}”,也就是说要加“{}”。UML制造了太多的符号,虽然严谨但却让人困惑,很多专家都反对。所以我的图中没有加“{}”,你也不用加。

04 用聚合和组成,将事情考虑准

《图解产品》中描述了类的“聚合与组成”,两者区别微小,但却重要。看过书的朋友,想想上图的问题是什么?没看过书的朋友,我做个简单说明。

类之间聚合关系强调了两个类有大与小,整体与部分关系。如“公司—>部门”和“部门—>员工”就都是聚合关系。而后台也要按此设计,即公司下挂部门,部门下挂员工,而不是反过来。

但是有些聚合是强聚合,这种强聚合被称为“组成”,组成关系是说两者是“同生共死”的。

如桌子和桌腿首先是“聚合”关系,这表明了两者的大与小,整体与部分的关系。但如桌腿没了,桌子也就不完整,两者就是同生共死的,更准确地说两者是“组成”关系。

聚合关系是空心菱形,组成关系是黑心菱形,分别如下图。

区分聚合和组合的原因还是两者的原型图会不同。如部门和员工是“聚合”关系,则员工还可以在其他部门兼职,则要支持员工设置部门时复选;如果部门与员工是“组成”关系,则该员工就不能属于多个部门,则要支持单选。

而对于本案例,服务区与桌子之间显然是组成关系,一个桌子不能属于多个服务区,这是自然的,但小黄用的却是聚合关系。

因此,小苍才会和小黄确认两个类之间的关系,避免做错。聚合和组成的其他知识请见《图解产品》。

好了,这就是今天的内容。总之,一个类图可以有或、先后、聚合和组成等关系,产品经理必须都知道,这能让你考虑周全,用词准确,避免研发返工,并最终指导原型设计。

TIPS

姜文在拍《鬼子来了》时,日本鬼子都用中学生,因为二战日本军人平均身高不到一米六,如用成人就很别扭,姜文很较真。产品经理也应对UML较真,从而写出优秀文档。

相关阅读:

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

 

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

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

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 按照图上画的一个桌子是属于一个服务区啊。一个服务区有1至 多个桌子,一个桌子只有一个服务区。

    来自山东 回复
  2. UML既是图,更是个思考工具,TA能提升你的文档质量。总结到位。

    来自中国 回复