UML建模在產品經理工作中的應用
編輯導語:UML圖是產品經理的一個有效工具,利用UML圖,產品經理可以更好地挖掘業務需求,使需求文檔更加清晰明了,進而推動團隊業務的整體進行。本篇文章里,作者對UML圖進行了整體總結,并介紹了各類UML圖的相關語法,一起來看一下。
UML為什么能在產品工作中應用?能解決產品經理工作上的哪些痛點?
一、先看圖例
是否在工作中見過這些圖呢?
是否在偏技術型的文檔中見過這些圖?
1)這是一張“用戶——角色——權限”關聯關系圖,表達了“表”與“表”之間的關系;屬于類圖。
2)這是一張拼團產品中“用戶——團——權益”的對應關系圖,以及每個業務概念的屬性字段與操作;同樣屬于類圖。
3)這是一張表達相對獨立的功能間的關系圖,表達了一個功能模塊的輸入與輸出,及與另一個功能模塊間的供需關系;屬于構件圖。
4)這是一張表達服務器、數據庫、使用網絡地域范圍的部署圖。
5)這是一張以“員工申請立項,三個領導審批”事件為主的流程圖。
6)這是上圖中“審批單”的狀態變化圖,學名:狀態機圖。表達了審批單在不同用戶的操作下的觸發的狀態變化。
7)這是一張用戶在注冊賬戶過程中“用戶——前端界面——后端系統——數據庫”之間的交互及信息傳遞圖,學名順序圖,主要用來表達復雜的交互、系統與系統之間的交互。
8)這是一張表達了某系統范圍內三種角色各自可操作的用例,以及角色與角色之間的繼承關系,屬于用例圖。
看完上面7種圖,感覺流程圖最熟悉了,其他的幾種圖似曾相識。那么,其他的圖有什么作用呢?先看看我們工作中的痛點。
二、產品經理工作中的痛點
- 業務分析時,范圍不清晰、邏輯不嚴謹,或自己的方案超出技術邊界。
- 剛接手一個產品時,弄不清一個概念與另一個概念的對應關系、關聯關系,同事也不能系統地給你講述全面。
- 需求文檔中,文字描述很清楚,但程序員搞不清楚也不愛看文字。
- 經常聽到程序員說:我們沒有這張表、沒有這個字段,這個表不能再加字段了。
- 和程序員討論最多的也是:如果用戶這樣操作了該顯示什么狀態?該怎么提示?
怎么才能在避免這些問題呢—— 利用UML作為溝通語言、利用UML圖作為思考工具。
三、UML是什么
1. What:是什么?
- UML,Unified Modeling Language,統一建模語言。
- 建模的輸出主要是圖的形式,分為兩類,一種是結構型圖、一種是行為型圖。
- 我們常畫的流程圖就是一種行為型的UML。
2. Who:誰來用?
- 產品經理(需求分析時可畫出簡易版的UML圖);
- 程序員(學技術的都能看懂ULM,甚至可以和程序員一起完善UML)。
3. When:產品經理什么時候用到UML?
- 業務分析提煉需求、挖掘需求時;
- 與技術人員交流時。
4. Where:用在什么地方?
需求文檔。
5. Why:為什么要用?
- 作為一種工具可以幫助產品經理完整無遺漏地梳理需求。
- 作為一種語言,可以清晰易懂,與技術人員順暢溝通。
- 作為以圖形為主的語言,更形象易懂。
四、產品工作中常用的UML有哪些?
最常用的是:流程圖、狀態機圖、順序圖、用例圖、類圖。
五、各類UML圖的語法
學習網站:http://www.uml.org.cn/oobject/OObject.asp
學習書籍:《UML大戰需求分析》,作者:火球
1. 類圖
1)什么是類
類是面向對象的,里面有屬性、有操作。通俗講一個類就是一個業務概念、就是一張表。
在表達類與類之間關系時,一般隱藏屬性和操作,只用類名代表一個類。
2)語法
在類圖的表達中,一定要注意箭頭的區別。
① 關聯關系
a)用直線相連接,代表兩個類之間有關聯關系,當不確定具體關系時,均先用直線鏈接;直線兩端的數字代表對應的數量關系,如下:
代表1個G可以0~3個M,如一個拼團除了團長可以有0~3個團員。
b)導航關系
代表由A可以導航到B,通俗講是由A可以找到B,如:在拼團名單中可以找到參與用戶。
② 聚合關系,即弱包含關系
代表一個部門可以由多個員工組成,如果部門沒了,員工可繼續存在。
③ 組合關系,即強包含關系
代表一個部門可以由多個員工組成,如果部門沒了,員工也就沒了。
④ 泛化關系
代表A泛化為B,A具備B的特點,也有自己的特有特點,如香蕉泛化為水果。
⑤ 依賴關系
代表A依賴于B,對于某件事,A需要B的協助才能完成。
3)類圖建模的步驟
- 識別類,先記下類的名稱;
- 識別出類的主要屬性、操作;
- 描繪出類之間的關系;
- 對各類進行分析、抽象、整理。
這個圖是網上找的,箭頭使用不是很規范。切記要使用類圖語法中的箭頭。
2. 構件圖
1)什么是構件?
2)語法
① 一個構件符號如下。服務接口像一個手一個拳頭,可聯系記憶為:伸手要服務,出拳打人服務。
② 兩個構件之間的對接如下:
③ 示例如下:
3. 部署圖
產品經理一般需要搞清楚:
- 服務器部署在哪里?數據庫放在哪里?
- 是互聯網還是局域網?
4. 活動圖(流程圖)
活動圖比較常用,不做太多講述,但在畫圖時一定要規范,如每個活動用“主動賓”的表達方式,當采用泳道圖,有角色泳道時,可以省略“主語”。
1)語法
2)繪制步驟
- 明確該流程要表達怎么樣的業務目的?
- 該流程有什么角色?
- 畫出正常情況下的流程,是流程的主干,一般是線性的流程。
- 明確主干流程中的角色與活動。
- 逐步增加分支流程,將關鍵的流程分支畫出,部分異常流程可簡單畫出并用文字說明。
- 適當控制活動粒度。
- 優化流程。
5. 狀態機圖
狀態機圖是從某個事物的狀態是如何變化的角度來展示流程。在觸發行為描述時也要嚴格采用“主動賓”的表達方式。
1)語法
- 開始狀態。
- 結束狀態。
- 狀態框:一個圓角矩形框代表一個狀態,框內文字為狀態名稱。
- 轉換:狀態與狀態之間的箭頭叫做轉換,箭頭上的文字說明發生了什么事情導致狀態發生了變化。
2)步驟
- 狀態機圖與流程圖的目的相似,只不過是以某一事物為主,所以開始時先畫流程圖,根據流程圖畫狀態機圖;
- 明確參與的角色;
- 明確該事物有什么狀態;
- 明確狀態在什么角色的什么動作下觸發變化。
6. 順序圖
1)基本語法
順序圖的讀法是:從上到下,從左到右。如下案列:
此圖為我們在ATM取款機取款時的人機交互。
2)復雜語法
- loop:為循環語法,如果滿足循環條件,則重復執行本框里的內容。
- alt:條件語法,相當于if……else……語法,即滿足哪個條件就執行這個條件下的動作。
- opt:可選語法,如果滿足可選條件,就執行框中的內容,否則跳過不執行。
如下案例:還是我們在ATM取款機取款時的人機交互,只是更為復雜些。表述了只要輸入密碼就檢查密碼合法性,當輸錯超過三次時吞卡。密碼正確時直接給與顧客菜單。
3)步驟
- 針對某一條流程中分析各角色的交互方式時;
- 先分析有哪些角色參與這個流程;
- 分析各角色在這個流程中的職責,各角色的專業特色;
- 將流程分解為角色與角色之間的交互,想清楚各角色之間的“接口”是怎樣的;
- 用順序圖按照時間順序將“交互”動作組織起來;
- 適當控制好粒度,不斷優化和重組。有太復雜分支機構的流程不適用。
4)備注
一般產品經理可以不用畫復雜語法的內容,只需要畫出關鍵重點交互即可,如下:
7. 用例圖
用例圖主要用來回答兩個問題——這個系統的用戶角色有哪些?每個角色能干什么?
1)基本語法
角色、用例、系統范圍、關聯關系。
2)復雜語法
角色的繼承、用例的繼承、用例的include、用例的extend。
3)步驟
- 明確系統范圍;
- 有什么角色,角色與角色之間關系;
- 有什么用例,角色與用例之間關系,用例的子用例及擴展。
本文由 @七牛 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議
不錯 很實用