餐飲系統大拆解,用類圖拆解套餐和桌臺信息(2)
編輯導讀:UML既是圖,更是個思考工具,能夠提升文檔質量。本文作者通過梳理餐廳的套餐和桌臺,來說明類圖的作用,希望對你有幫助。
這是餐廳系統拆解第二篇。在上一篇中,我們用類圖表達了員工之間的關系,以及每個員工的工作。有人說這么做沒必要,用腦圖不也一樣嗎?
這是不對的,產品經理的文檔考慮不周和不嚴謹,就是因為沒有學會UML,UML既是圖,更是個思考工具,TA能提升你的文檔質量。
下面,我們通過梳理餐廳的套餐和桌臺,來說明類圖的作用,并學習一些《圖解產品》中未講到的內容。同樣閱讀本文需有《圖解產品》一書的知識背景。
01 兩個“多余”的類圖
產品經理要給“老夫牛腩”餐廳開發餐飲軟件,這就要梳理餐廳菜單,并將其用于后臺的菜品管理中。
餐廳是以賣套餐為主,套餐內有沙拉、湯、開胃菜、主菜和甜點,用類圖表示如下。
產品經理還要梳理餐廳的桌臺信息,并用于后臺的餐桌管理中,甩類圖表示如下。
有人認為這兩個類圖就是樹狀結構,用腦圖也一樣,但這是錯誤的。兩個圖的問題很多,很容易被研發挑戰。
下面就是女研發小蒼挑戰男產品經理小黃的過程。
02 研發挑戰產品經理
小蒼問:“小黃,行啊,類圖都會畫,但請問他們上菜有沒有先后次序?”
小黃尷尬幾秒,說:“小蒼,不好意思,我沒想到啊,我問問餐廳。”
小黃趕緊抓起電話問,之后告訴小蒼說:“他們是有上菜順序的,他們是先上開胃菜,再上主菜,之后上甜點?!?/p>
小蒼微微一笑:“辛苦小黃了,再問個問題啊,套餐內有沒有二選一的?”
小黃不悅,怎么不一次把話說完?“小蒼,實在不好意思,我又沒想到啊,我再問問去?!?/p>
小黃又抓起電話問,之后又告訴小蒼:“他們上菜是有二選一的,沙拉和湯就要二選一?!?/p>
小蒼最后問:“辛苦小黃了,最后一個問題啊,1個桌子可以屬于N個服務區嗎?”
這次小黃憤怒了:“小蒼同學,1個桌子只能屬于1個服務區啊,怎么可能屬于N個服務區??!有沒有常識?”
小蒼也怒了:“但你畫的符號是說,1個桌子可以屬于N個服務區啊!是你錯了!”。
“你這是在找茬!”小黃大怒,摔門而去。
故事講完了,一方面小蒼在有意為難小黃,另一方面也是小黃學藝不精,總是考慮不周。
為什么小蒼要為難小黃?文末有答案。小黃的問題是什么?下面給出答案。
03 用約束關系,將事情考慮全
兩個類之間可以有約束關系,具體說就是有“先后關系”以及“或的關系”。
1.先后關系:套餐要求上開胃菜,再上主菜,再上甜點,這三個類就有“先后關系”,或稱開胃菜先于主菜。
2.或的關系:套餐中的沙拉和湯兩個菜就要二選一,這兩者就是“或的關系”。
如何表達?如下圖所示。
圖中的虛線表達了兩個類之間有關系,虛線上的字表達了具體關系,可寫上“先于”,“或”等字樣。
回顧小蒼和小黃的對話,如小黃知道類之間還有約束關系,就不至于丟三拉四。
需要說明的是,UML的標準寫法是“{先于}”,也就是說要加“{}”。UML制造了太多的符號,雖然嚴謹但卻讓人困惑,很多專家都反對。所以我的圖中沒有加“{}”,你也不用加。
04 用聚合和組成,將事情考慮準
《圖解產品》中描述了類的“聚合與組成”,兩者區別微小,但卻重要??催^書的朋友,想想上圖的問題是什么?沒看過書的朋友,我做個簡單說明。
類之間聚合關系強調了兩個類有大與小,整體與部分關系。如“公司—>部門”和“部門—>員工”就都是聚合關系。而后臺也要按此設計,即公司下掛部門,部門下掛員工,而不是反過來。
但是有些聚合是強聚合,這種強聚合被稱為“組成”,組成關系是說兩者是“同生共死”的。
如桌子和桌腿首先是“聚合”關系,這表明了兩者的大與小,整體與部分的關系。但如桌腿沒了,桌子也就不完整,兩者就是同生共死的,更準確地說兩者是“組成”關系。
聚合關系是空心菱形,組成關系是黑心菱形,分別如下圖。
區分聚合和組合的原因還是兩者的原型圖會不同。如部門和員工是“聚合”關系,則員工還可以在其他部門兼職,則要支持員工設置部門時復選;如果部門與員工是“組成”關系,則該員工就不能屬于多個部門,則要支持單選。
而對于本案例,服務區與桌子之間顯然是組成關系,一個桌子不能屬于多個服務區,這是自然的,但小黃用的卻是聚合關系。
因此,小蒼才會和小黃確認兩個類之間的關系,避免做錯。聚合和組成的其他知識請見《圖解產品》。
好了,這就是今天的內容。總之,一個類圖可以有或、先后、聚合和組成等關系,產品經理必須都知道,這能讓你考慮周全,用詞準確,避免研發返工,并最終指導原型設計。
TIPS
姜文在拍《鬼子來了》時,日本鬼子都用中學生,因為二戰日本軍人平均身高不到一米六,如用成人就很別扭,姜文很較真。產品經理也應對UML較真,從而寫出優秀文檔。
相關閱讀:
作者:擎蒼,《“圖解”產品:產品經理業務設計與UML建?!纷髡撸娞枺簣D解產品設計
本文由 @圖解產品設計 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
按照圖上畫的一個桌子是屬于一個服務區啊。一個服務區有1至 多個桌子,一個桌子只有一個服務區。
UML既是圖,更是個思考工具,TA能提升你的文檔質量??偨Y到位。