餐饮系统大拆解,用类图拆解套餐和桌台信息(2)
这是餐厅系统拆解第二篇。在上一篇中,我们用类图表达了员工之间的关系,以及每个员工的工作。有人说这么做没必要,用脑图不也一样吗?
这是不对的,产品经理的文档考虑不周和不严谨,就是因为没有学会UML,UML既是图,更是个思考工具,TA能提升你的文档质量。
下面,我们通过梳理餐厅的套餐和桌台,来说明类图的作用,并学习一些《图解产品》中未讲到的内容。同样阅读本文需有《图解产品》一书的知识背景。
01 两个“多余”的类图
产品经理要给“老夫牛腩”餐厅开发餐饮软件,这就要梳理餐厅菜单,并将其用于后台的菜品管理中。
餐厅是以卖套餐为主,套餐内有沙拉、汤、开胃菜、主菜和甜点,用类图表示如下。
产品经理还要梳理餐厅的桌台信息,并用于后台的餐桌管理中,甩类图表示如下。
有人认为这两个类图就是树状结构,用脑图也一样,但这是错误的。两个图的问题很多,很容易被研发挑战。
下面就是女研发小苍挑战男产品经理小黄的过程。
02 研发挑战产品经理
小苍问:“小黄,行啊,类图都会画,但请问他们上菜有没有先后次序?”
小黄尴尬几秒,说:“小苍,不好意思,我没想到啊,我问问餐厅。”
小黄赶紧抓起电话问,之后告诉小苍说:“他们是有上菜顺序的,他们是先上开胃菜,再上主菜,之后上甜点。”
小苍微微一笑:“辛苦小黄了,再问个问题啊,套餐内有没有二选一的?”
小黄不悦,怎么不一次把话说完?“小苍,实在不好意思,我又没想到啊,我再问问去。”
小黄又抓起电话问,之后又告诉小苍:“他们上菜是有二选一的,沙拉和汤就要二选一。”
小苍最后问:“辛苦小黄了,最后一个问题啊,1个桌子可以属于N个服务区吗?”
这次小黄愤怒了:“小苍同学,1个桌子只能属于1个服务区啊,怎么可能属于N个服务区啊!有没有常识?”
小苍也怒了:“但你画的符号是说,1个桌子可以属于N个服务区啊!是你错了!”。
“你这是在找茬!”小黄大怒,摔门而去。
故事讲完了,一方面小苍在有意为难小黄,另一方面也是小黄学艺不精,总是考虑不周。
为什么小苍要为难小黄?文末有答案。小黄的问题是什么?下面给出答案。
03 用约束关系,将事情考虑全
两个类之间可以有约束关系,具体说就是有“先后关系”以及“或的关系”。
1.先后关系:套餐要求上开胃菜,再上主菜,再上甜点,这三个类就有“先后关系”,或称开胃菜先于主菜。
2.或的关系:套餐中的沙拉和汤两个菜就要二选一,这两者就是“或的关系”。
如何表达?如下图所示。
图中的虚线表达了两个类之间有关系,虚线上的字表达了具体关系,可写上“先于”,“或”等字样。
回顾小苍和小黄的对话,如小黄知道类之间还有约束关系,就不至于丢三拉四。
需要说明的是,UML的标准写法是“{先于}”,也就是说要加“{}”。UML制造了太多的符号,虽然严谨但却让人困惑,很多专家都反对。所以我的图中没有加“{}”,你也不用加。
04 用聚合和组成,将事情考虑准
《图解产品》中描述了类的“聚合与组成”,两者区别微小,但却重要。看过书的朋友,想想上图的问题是什么?没看过书的朋友,我做个简单说明。
类之间聚合关系强调了两个类有大与小,整体与部分关系。如“公司—>部门”和“部门—>员工”就都是聚合关系。而后台也要按此设计,即公司下挂部门,部门下挂员工,而不是反过来。
但是有些聚合是强聚合,这种强聚合被称为“组成”,组成关系是说两者是“同生共死”的。
如桌子和桌腿首先是“聚合”关系,这表明了两者的大与小,整体与部分的关系。但如桌腿没了,桌子也就不完整,两者就是同生共死的,更准确地说两者是“组成”关系。
聚合关系是空心菱形,组成关系是黑心菱形,分别如下图。
区分聚合和组合的原因还是两者的原型图会不同。如部门和员工是“聚合”关系,则员工还可以在其他部门兼职,则要支持员工设置部门时复选;如果部门与员工是“组成”关系,则该员工就不能属于多个部门,则要支持单选。
而对于本案例,服务区与桌子之间显然是组成关系,一个桌子不能属于多个服务区,这是自然的,但小黄用的却是聚合关系。
因此,小苍才会和小黄确认两个类之间的关系,避免做错。聚合和组成的其他知识请见《图解产品》。
好了,这就是今天的内容。总之,一个类图可以有或、先后、聚合和组成等关系,产品经理必须都知道,这能让你考虑周全,用词准确,避免研发返工,并最终指导原型设计。
TIPS
姜文在拍《鬼子来了》时,日本鬼子都用中学生,因为二战日本军人平均身高不到一米六,如用成人就很别扭,姜文很较真。产品经理也应对UML较真,从而写出优秀文档。
相关阅读:
餐饮系统大拆解:用类图拆解员工结构与工作职责(1)
作者:擎苍,《“图解”产品:产品经理业务设计与UML建模》作者,公众号:图解产品设计
本文作者 @图解产品设计 。
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!