大話PM | 產(chǎn)品經(jīng)理必備利器:UML
產(chǎn)品經(jīng)理經(jīng)常與文檔打交道,而如果想輸出高質(zhì)量的文檔更離不開 UML 的幫助。本文將通過具體的需求實(shí)例來介紹產(chǎn)品經(jīng)理必須掌握的幾種 UML 圖、繪制方式以及各自的使用場(chǎng)景。
對(duì)于 UML 的定義及其語法在網(wǎng)絡(luò)上已經(jīng)有了詳細(xì)的教程,本文不做詳細(xì)的展開說明,這里用一句話來定義:
UML(統(tǒng)一建模語言)是一種在軟件設(shè)計(jì)時(shí)提供給分析師、設(shè)計(jì)師和工程師之間的通用語言。
即通過面向?qū)ο蟮姆绞綐?gòu)建一個(gè)統(tǒng)一并通用的模型來解決問題,那么話說回來 UML 所構(gòu)建的模型到底包括哪些內(nèi)容呢?
我們知道,社會(huì)中各個(gè)領(lǐng)域都會(huì)存在或多或少的需求問題,在需求整理和分析時(shí),可以將具有共性的需求抽象成一個(gè)基本模型。模型由其相關(guān)的對(duì)象組成,不同的對(duì)象具有不同的特征和操作。一般通過類來對(duì)對(duì)象進(jìn)行實(shí)例化,其中對(duì)象的特征決定了對(duì)象的狀態(tài),而對(duì)象之間則通過消息傳遞來進(jìn)行信息交流。
這樣說可能有點(diǎn)過于抽象,舉一個(gè)很簡(jiǎn)單的例子:
在某電商平臺(tái)上,用戶A需要購(gòu)買電子商品,用戶B需要購(gòu)買生活用品,用戶C需要購(gòu)買生鮮食品…等等,這類需求就完全可以抽象為一個(gè)購(gòu)物模型。
該模型中包含的兩類對(duì)象分別為用戶和商家,其中用戶具有身份信息、購(gòu)物需求等屬性,而商家則具有店鋪性質(zhì)、商品價(jià)格等屬性。同時(shí)用戶可以進(jìn)行加入購(gòu)物車、下單等操作,商家則可以進(jìn)行發(fā)布商品、發(fā)貨等操作。
如果用戶已經(jīng)購(gòu)買的商品,那么他的狀態(tài)會(huì)變成無購(gòu)買需求。在購(gòu)物的整個(gè)過程中,用戶和商家之間通過平臺(tái)進(jìn)行信息交流。
對(duì)于產(chǎn)品經(jīng)理,熟練掌握 UML 的作用在于:
- 梳理產(chǎn)品需求及其業(yè)務(wù)流程;
- 梳理產(chǎn)品實(shí)現(xiàn)價(jià)值及其運(yùn)用場(chǎng)景;
- 準(zhǔn)確向設(shè)計(jì)及開發(fā)傳達(dá)產(chǎn)品需求。
也就是說,UML 給產(chǎn)品經(jīng)理們提供了一套既能分析問題又能準(zhǔn)確交流的圖形化語言,所以說它是產(chǎn)品經(jīng)理必備的利器之一。
下面本文將從產(chǎn)品經(jīng)理工作及產(chǎn)品實(shí)現(xiàn)流程角度并結(jié)合具體案例,分別介紹幾種產(chǎn)品經(jīng)理必備的 UML 圖。
一、用例圖
1.1 定義
用例圖是產(chǎn)品經(jīng)理在產(chǎn)品需求分析中最常用的工具圖,在很多高質(zhì)量的產(chǎn)品需求說明(PRD)中不難發(fā)現(xiàn)用例圖的蹤影。作為經(jīng)常寫 PRD 的產(chǎn)品經(jīng)理都知道用例是一種描述產(chǎn)品需求的方法,而產(chǎn)品需求的根本來源還是來自用戶。
想要快速理解用例圖的含義只需要記住以下幾點(diǎn):
- Where:需求在哪里產(chǎn)生,即需求產(chǎn)生的領(lǐng)域;
- Who:誰是相關(guān)的用戶,即從用戶角度出發(fā);
- What:產(chǎn)品/系統(tǒng)是什么;
- How:如何使用這個(gè)產(chǎn)品/系統(tǒng);
- No Why:用戶不關(guān)心產(chǎn)品/系統(tǒng)為什么可以實(shí)現(xiàn)。
舉個(gè)例子來說,小明有網(wǎng)購(gòu)的需求,那么從小明的角度來說,他只要知道某個(gè)電商網(wǎng)站滿足他的需求,并且知道如何使用即可,并不關(guān)心網(wǎng)站如何開發(fā)實(shí)現(xiàn)。
用一句話總結(jié)來說:
用例圖強(qiáng)調(diào)了從用戶自身角度解決其需求的產(chǎn)品/系統(tǒng)是什么以及如何使用,不關(guān)心它的具體實(shí)現(xiàn)。
而作為產(chǎn)品經(jīng)理,使用用例圖最大的三個(gè)優(yōu)點(diǎn)在于:
- 需求分析:根據(jù)不同的用例分析,產(chǎn)生不同的需求;
- 指導(dǎo)測(cè)試:在產(chǎn)品/系統(tǒng)測(cè)試時(shí),可以根據(jù)用例生成測(cè)試用例;
- 便于溝通:產(chǎn)品經(jīng)理與設(shè)計(jì)、開發(fā)以及客戶之間可以很容易的通過用例溝通需求。
1.2 畫法
在學(xué)會(huì)如何畫用例圖之前,必須了解一個(gè)完整的用例圖具體包含哪些元素:
其中關(guān)系分為四種:
1.3 案例
現(xiàn)在我們結(jié)合上述畫法,畫一個(gè)完整的電商平臺(tái)案例的用例圖。
在畫圖之前先分析一下需求(個(gè)別需求為了迎合上述畫法而刻意說明,真實(shí)場(chǎng)景可能略有差異):
- 購(gòu)物網(wǎng)站一般有兩種用戶:注冊(cè)用戶、非注冊(cè)用戶;
- 用戶整個(gè)購(gòu)物系統(tǒng)可以分為四個(gè)過程:搜索、添加購(gòu)物車、下單、付款;
- 搜索又可以按價(jià)格、品牌等條件進(jìn)行擴(kuò)展篩選;
- 付款可以通過支付寶、微信或銀行卡等方式。
從用例圖中可以非常清晰的看到:
- 注冊(cè)用戶和非注冊(cè)用戶都屬于用戶的泛化;
- 購(gòu)物的四個(gè)過程組成的系統(tǒng)是一個(gè)電商網(wǎng)站的子系統(tǒng);
- 按條件進(jìn)行搜索,這是對(duì)搜索功能的擴(kuò)展,而不同的條件是篩選搜索的泛化;
- 付款包含了支付寶、微信、銀行卡三種方式;
上圖清晰并簡(jiǎn)潔的描述了用戶、需求和系統(tǒng)主要功能之間的關(guān)系,這便是用例圖最大的優(yōu)點(diǎn)。
二、順序圖
2.1 定義
在用例圖中,我們只關(guān)心用戶如何使用系統(tǒng)的各個(gè)功能(用例),但并不關(guān)心功能(用例)的具體實(shí)現(xiàn)。而順序圖通過引入時(shí)間的概念,展示了用例中各個(gè)對(duì)象的行為順序以及對(duì)象之間的消息交互過程,所以順序圖也叫做時(shí)序圖。
舉個(gè)(不嚴(yán)謹(jǐn)?shù)模├樱涸谛∶骶W(wǎng)購(gòu)的用例中,參與的對(duì)象有小明自己、網(wǎng)購(gòu)平臺(tái)和支付平臺(tái)。那么順序圖則可以展示從網(wǎng)購(gòu)開始到結(jié)束這段時(shí)間內(nèi),三者之間的消息傳遞過程。
同樣用一句話來定義:
順序圖是一種面向?qū)ο蟮膭?dòng)態(tài)圖形,顯示用例中參與交互的所有對(duì)象之間消息傳遞的時(shí)間順序。
而作為產(chǎn)品經(jīng)理,順序圖能更加清晰的梳理業(yè)務(wù)關(guān)系及流程,保證產(chǎn)品需求的準(zhǔn)確性、可實(shí)現(xiàn)性。
2.2 畫法
從定義中不難發(fā)現(xiàn),順序圖是以對(duì)象和時(shí)間為維度的二維圖形,圖形中的對(duì)象是按照時(shí)間順序排列。
在了解其畫法之前,先來看看順序圖中重要的元素(高級(jí)元素暫不介紹):
其中消息分為四種:
特別注意:
- 順序圖必須是兩個(gè)或兩個(gè)以上對(duì)象間進(jìn)行交互;
- 順序圖的閱讀是從上到下、從左到右進(jìn)行;
- 消息的傳遞代表的是責(zé)任分配,不代表數(shù)據(jù)傳遞。
2.3 案例
結(jié)合上述畫法,繼續(xù)來看一個(gè)具體案例。該案例為用戶在購(gòu)物平臺(tái)上,從挑選商品到下單最后成功支付的過程,先來分析一下需求(個(gè)別需求為了迎合上述畫法而刻意說明,真實(shí)場(chǎng)景可能略有差異):
- 用戶登錄購(gòu)物網(wǎng)站,并進(jìn)行搜索并確認(rèn)商品,最后進(jìn)行下單操作;
- 創(chuàng)建訂單后進(jìn)入第三方支付平臺(tái)進(jìn)行支付操作;
- 支付結(jié)果會(huì)反饋給平臺(tái);
- 購(gòu)物結(jié)果會(huì)反饋給用戶。
從上圖可以清晰的看到隨著時(shí)間變化,用戶與用例中其他對(duì)象的消息交互順序,這也為產(chǎn)品經(jīng)理與開發(fā)之間提供了更加簡(jiǎn)潔有效的溝通方式。
三、活動(dòng)圖
3.1 定義
不知道大家有沒有了解或使用過泳道圖,泳道圖其實(shí)就是活動(dòng)圖的一種,只不過在泳道圖中,各個(gè)活動(dòng)會(huì)根據(jù)其對(duì)應(yīng)的對(duì)象或系統(tǒng)來分隔。那么什么是活動(dòng)圖呢?
活動(dòng)圖與順序圖很相似,也是一種描述用例的動(dòng)態(tài)圖形。與順序圖不同的是,活動(dòng)圖強(qiáng)調(diào)了用例中各項(xiàng)活動(dòng)之間的約束關(guān)系及其控制流程,說白了活動(dòng)圖用于展示系統(tǒng)中一個(gè)功能(用例)的操作步驟。
用一句話來定義:
活動(dòng)圖展示了用例的具體業(yè)務(wù)與工作流程,以及各項(xiàng)業(yè)務(wù)之間的約束關(guān)系。
作為產(chǎn)品經(jīng)理,熟練掌握活動(dòng)圖有以下幾個(gè)好處:
- 分析與梳理業(yè)務(wù)流程;
- 深刻理解系統(tǒng)功能;
- 挖掘潛在的業(yè)務(wù)需求。
3.2 畫法
帶泳道的活動(dòng)圖是產(chǎn)品經(jīng)理必備的技能之一,在了解其畫法之前,先來了解活動(dòng)圖中重要的元素:
注意:
- 活動(dòng)圖很像流程圖,但不等同于流程圖;
- 活動(dòng)圖強(qiáng)調(diào)對(duì)象的活動(dòng),順序圖強(qiáng)調(diào)對(duì)象及其生命周期;
- 泳道并不是必須的元素。
3.3 案例
由于活動(dòng)圖與順序圖很相似,所以我們可以將順序圖的案例改成一個(gè)帶泳道的二維活動(dòng)圖,其中以活動(dòng)作為縱軸,以對(duì)象/系統(tǒng)作為橫軸。
先來分析一下需求(個(gè)別需求為了迎合上述畫法而刻意說明,真實(shí)場(chǎng)景可能略有差異):
- 用戶登錄有成功和失敗判斷;
- 下單直接購(gòu)買和結(jié)算購(gòu)物車兩種方式;
- 不管用哪種下單方式,最后都會(huì)進(jìn)入支付流程;
- 支付有成功和失敗判斷。
注:用戶應(yīng)該參與全過程,這里為了說明二維泳道圖的畫法,刻意去除了購(gòu)物與支付流程的參與。
從圖中可以清晰的看到,用戶從登錄到購(gòu)物結(jié)束的整個(gè)活動(dòng)過程,并能看到每個(gè)活動(dòng)所對(duì)應(yīng)的對(duì)象,這在業(yè)務(wù)流程梳理環(huán)節(jié)能給產(chǎn)品經(jīng)理們提供很大的幫助。
四、類圖
4.1 定義
與順序圖、活動(dòng)圖這兩種動(dòng)態(tài)圖形不同的是,類圖顯示的是系統(tǒng)/產(chǎn)品中的靜態(tài)關(guān)系及關(guān)系。在介紹什么是類圖之前提個(gè)問題,還記得本文開頭對(duì) UML 框架的說明中對(duì)類的定義嗎?
如果記得的話,你會(huì)知道:通過類創(chuàng)建的類實(shí)例是對(duì)象的實(shí)例化。
通過前三種圖形的學(xué)習(xí),我們對(duì)對(duì)象這個(gè)概念已經(jīng)很熟悉了,你可以簡(jiǎn)單看成是系統(tǒng)/產(chǎn)品的參與者(可以作為使用者參與,也可以作為子系統(tǒng)參與)。在對(duì)象實(shí)例化成類后,參與者的特征及操作也被相應(yīng)的實(shí)例化成屬性和方法。
那么有沒有一種圖形,可以描述用例中不同的類的數(shù)據(jù)和方法之間的關(guān)系呢?
沒錯(cuò),那就是類圖。這里給出一句話定義:
類圖是用于描述系統(tǒng)/產(chǎn)品結(jié)構(gòu)化設(shè)計(jì)的靜態(tài)圖形,顯示了類、類的方法、類的接口以及它們之間靜態(tài)結(jié)構(gòu)和關(guān)系。
作為產(chǎn)品經(jīng)理,運(yùn)用類圖可以理清業(yè)務(wù)概念以及它們的關(guān)系,能更加深入地剖析系統(tǒng)/產(chǎn)品業(yè)務(wù)。
4.2 畫法
從定義中不難發(fā)現(xiàn),類圖需要表現(xiàn)各個(gè)類之間的關(guān)系。在了解其畫法之前,先來看看類圖中重要的元素:
其中多樣性示例如下:
注意:
- 類的操作是針對(duì)類自身,并不是操作其他類;
- 由于類圖中關(guān)系復(fù)雜,一定要注意規(guī)范;
- 一個(gè)復(fù)雜的實(shí)例可以被分為多個(gè)類。
4.3 案例
結(jié)合上述畫法,繼續(xù)來看一個(gè)具體案例,仍然是用戶網(wǎng)購(gòu)用例,先來分析一下需求(個(gè)別需求為了迎合上述畫法而刻意說明,真實(shí)場(chǎng)景可能略有差異):
- 用戶必須使用電腦/手機(jī)才能進(jìn)行網(wǎng)購(gòu),也就是用戶依賴于電腦/手機(jī);
- 搜索可以按照關(guān)鍵字/價(jià)格/品牌等進(jìn)行搜索,那么搜索可以封裝成接口;
- 在整個(gè)訂單中包含了訂單詳情,發(fā)貨狀態(tài)等部分;
- 可以通過支付寶/微信等方式進(jìn)行支付,相當(dāng)于繼承了支付的所有功能。
從圖中可以清晰的看到各個(gè)被實(shí)例化之后的對(duì)象(也就是類)之間的相互關(guān)系,既能幫助產(chǎn)品經(jīng)理更深刻的認(rèn)識(shí)整個(gè)用例系統(tǒng),也能便于其與開發(fā)人員之間的溝通。
五、總結(jié)
好了,已經(jīng)將 UML 中四種產(chǎn)品經(jīng)理最常用且最有用的四種圖介紹完了,現(xiàn)在來總結(jié)一下各圖作用以及它們的使用場(chǎng)景:
產(chǎn)品經(jīng)理可以根據(jù)根據(jù)實(shí)際情況選取最佳的圖形,那么作為產(chǎn)品經(jīng)理該如何選取畫 UML 的工具?
使用畫圖工具的意義在于提升效率,而計(jì)算效率時(shí)一定要除去學(xué)習(xí)工具的時(shí)間成本,有很多非常專業(yè)的軟件學(xué)習(xí)起來比較吃力,極不推薦。又由于產(chǎn)品經(jīng)理遇到的圖形非常多,如果每種圖形都使用一種工具的話,不僅切換麻煩而且兼容性、一致性都很差。
在這里只簡(jiǎn)單推薦幾款:
- 頻繁使用、專業(yè)使用 UML :推薦 StarUML;
- 作為輔助工具使用:Win 端 Visio,Mac 端 OmniGraffle;
- 在線協(xié)作:ProcessOn。
根據(jù)個(gè)人需求酌情擇優(yōu),畢竟只有適合自己的才是最好的。
參考資料:
本文由 @?iamxiarui 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖作者提供
主要用狀態(tài)圖,最討厭畫時(shí)序圖,用例圖、類圖,直接用思維圖框架帶了,差不多就行了,速度很重要 ~~
請(qǐng)問下博主用的是什么軟件畫的呢?
OmniGraffle:MacOS 下的 Visio
始終覺得那些架構(gòu)、信息結(jié)構(gòu)一類的東西抽象,可能還是經(jīng)驗(yàn)不夠吧
個(gè)人感覺產(chǎn)品對(duì)于類圖應(yīng)該主要是為了表示結(jié)構(gòu),至于搜索這種行為用類圖來表示就不合適了,無論是微信、支付寶還是銀行卡(個(gè)人感覺應(yīng)該是銀聯(lián),因?yàn)殂y行卡和支付渠道不在同一個(gè)抽象維度)應(yīng)該在支付上抽象為支付渠道
類是對(duì)象的實(shí)例化?貌似反了
嚴(yán)格來說,應(yīng)該是文中開頭所說:“通過類來對(duì)對(duì)象進(jìn)行實(shí)例化”,換句話說用類創(chuàng)建對(duì)象的過程叫做實(shí)例化。這里只簡(jiǎn)要說明圖中通過類創(chuàng)建的類實(shí)例都是對(duì)象的實(shí)例化,不對(duì)“類的概念”做展開說明。
購(gòu)物系統(tǒng)的用例圖有個(gè)用例之間的關(guān)系畫錯(cuò)了,幾種付款方式跟付款之間應(yīng)該是泛化關(guān)系,不是包含
對(duì) 后面畫類圖的時(shí)候 也發(fā)現(xiàn)了這個(gè)問題 子類對(duì)父類的繼承應(yīng)該是泛化 考慮到是一個(gè)簡(jiǎn)單的示例 主要體現(xiàn)一些基本畫法 也就沒有更正 稍后會(huì)更正過來 感謝指正
各種uml圖之間的用法有時(shí)不太明確怎么破,有時(shí)感覺幾副圖最后表達(dá)的意思都一樣…
得看具體場(chǎng)景,開發(fā)用的類圖比較多,產(chǎn)品的話用例圖和泳道圖用的還是比較多的
得看具體場(chǎng)景 開發(fā)用的類圖比較多 產(chǎn)品用例圖和泳道圖很多
謝謝,正在學(xué)習(xí)這方面的知識(shí),希望能應(yīng)用到日常的prd文檔
經(jīng)常使用的UML有用例圖 活動(dòng)圖 狀態(tài)機(jī)圖 協(xié)作圖。
干貨~