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