作為PM,你要知道的UML的那點事
編輯導讀:UML(統一建模語言)是由一系列標準化圖形符號組成的建模語言,用于描述軟件系統分析、設計和實施中的各種模型,是產品經理的必備技能。本文作者對常用到的UML圖展開分析,與你分享。
一、用例圖
1.1 UML建模語言的初步認識
想必大家在日常的工作中經常會畫業務流程圖吧,但是不知道大家有沒有這種疑惑,為什么網上的畫法規范都不一樣吶?當你看到同事的畫法和自己不一樣時,是不是會突然懷疑是不是自己畫的有問題,身為非科班出來的產品經理,經常會有這樣的疑惑。于是網上搜了好多,發現網上的更是五花八門!因為之前自己接收到的關于這一塊的知識完全是零散的,所以今天專門找了一份不錯的書籍看了一下,然后系統的整理一下,分享出來給需要的小伙伴們~
簡單來說UML(統一建模語言)就是由一系列的標準化的圖形符號組成的建模語言,用于描述軟件系統分析、設計和實施中的各種模型。當然這些模型是為了工作中更好地表達、交流、最終達到信息同步,提高工作效率的目的。
UML的建模被分為兩大類—結構圖和行為圖,共13種圖形:
1.2 常用到的UML圖詳解之用例圖
1.2.1 用例圖
1.2.1.1 什么是用例圖
用例圖用于描述若干參與者以及這些參與者與系統提供的用例之間的交互關系,主要為了描述系統為參與者提供的功能特性;
用例圖=參與者+用例+關系
1.2.1.2 用例圖的基本元素
參與者:又稱為執行者,獨立于目標系統之外的外界系統或者人;一般使用名詞表示,例如售貨員、顧客;
用例:一組動作序列的集合和描述,指的是參與者要在目標系統中做的事情;一般使用動賓短語表示,例如購買物品,付錢;
系統邊界:正在建模的系統邊界,用例放在系統邊界之內,參與者放在系統邊界之外;一般在系統邊界的左上方或者右上方放置系統的名字;
1.2.1.3 關系
參與者和用例之間的關聯關系:一個參與者與一個或多個用例存在關聯關系,用——表示;
用例與用例之間的關系:
擴展:可以為一個用例增加額外的行為(用例),用<—<<extend>>—(此處為帶有箭頭的虛線)表示;
包含:指的是一個用例包含其中一個用例,用—<<include>>—>(此處為帶有箭頭的虛線) 表示;
參與者與參與者之間的關系:
泛化:面向對象中的繼承關系,用——?表示;
2.1.4 案例分析
例如某商店有普通顧客和VIP顧客,顧客去店里購買商品然后付款,付款時可以索要發票。VIP顧客除了正常的購買商品之外,還會額外收到一份VIP贈品。用例圖如下圖所示:
注:當參與者時非人類角色時,可使用<<系統>>表示參與者。
接下來將會為大家講解另外一個常用的UML行為圖——活動圖。
二、活動圖
2.1 什么是活動圖
活動圖描述了一個連續的活動流,指的是業務的活動變化;
活動圖=活動+活動節點+關系
2.2 活動圖的基本元素
活動:由一個或多個動作組成的行為,使用圓邊矩形表示,使用動賓短語描述;
對象:移動的數據,使用矩形框表示,框內標明數據的名稱,名稱文字下需要加下劃線;
泳道:用外觀像泳道的垂直線將活動分組,在每組的上方表明活動的參與者,一般為名詞,為活動圖的主語,例如顧客,售貨員;
注意:我們在平時的工作中經常會畫泳道圖,但泳道圖并不是一種UML圖,它只是一種可以表現不同角色不同階段工作流程的工具;
控制節點:
開始:有且只有一個
結束:有一個到多個,分為兩種情況:一種表示整個活動的終點,另外一種表示一個路徑的終止(而不是整個活動的終止)
判斷:根據不同的條件進行接下來不同的操作
匯合:當多條路徑同時指向一個活動時,使用匯合節點;只要有一條路徑先到達,就可以繼續接下來的活動;注意:匯合符號和判斷符號的表示圖形是一樣的;
分叉:一個活動在該點同時并發產生多個活動分支
結合:當并發活動需要都達到該點時才能繼續接下來的活動
注:分叉符號和結合的圖形時一樣的
2.3 關系
活動流:表示活動之間的輸入輸出關系,一個活動的輸出結果作為另外一個活動的輸入元素,使用
——>表示;
對象流:表示活動中數據的輸入輸出,使用—-> (此處為帶有箭頭的虛線)表示;
注:閱讀和作圖的順序從左上到右下,警戒條件及取值卸載方括號里面;
2.4 案例分析
例如一個客戶 去商場購買物品,前提條件是商城的商品滿足用戶的購物需求且客戶在需要發票的前提下整個活動的活動圖如下
接下來將會為大家講解另外一個常用的UML行為圖——狀態機圖
三、狀態機圖
3.1 什么是狀態機圖
狀態機圖的定義:用于描述一個對象在某一流轉過程中的狀態變化;
狀態圖=狀態+遷移
3.2 狀態機圖的基本元素
狀態:表示某一對象在某一時刻中的狀態,使用形容詞或者副次來表示,例如”未上架”,”已購買”
控制節點:
匯合狀態:將多個警戒條件局部化,使用○表示;
3.3 關系
遷移:某個對象從一個狀態到另外一個狀態的變化過程,用——> 來表示;
警戒條件:只有滿足某個條件時,狀態才會發生改變,使用[條件觸發文字說明]來表示,其中條件觸發文字說明一般為主謂賓結構;
3.4 案例分析
例如商場中商品從進貨到售出的狀態變化如下圖所示:
接下來將會為大家講解另外一個常用的UML行為圖——順序圖
四、順序圖
4.1 什么是順序圖
順序圖,簡單來說是為描述完成某一事件,不同的參與者之間進行交互的先后順序;
順序圖=生命線+消息
4.2 順序圖的基本元素
生命線:表示系統的參與者以及系統運行中的對象;對于參與者,使用用例中的參與者為生命線命名;對于系統中的對象,使用相應設計類的匿名對象為生命線命名;
矩形框內以匿名對象的方式標明該生命線的名稱,并加上下劃線;
激活框:表示對象處于執行狀態交互框和組合片斷:用于循環和分支結構;
交互框:表示圖中的一塊區域或者片段,用一個四邊形表示,常見的操作符:loop(循環) 、alt (alternative,分支條件) 、opt (optional,可選分支);
組合片斷:包含圖中的某個部分,用四邊形表示,左上角是內涵描述性文字的折角方框;
4.3 關系
消息:是對象發出的消息,用以生命線之間的通信;
同步消息:對象發出消息之后必須接收到返回的信息才可以繼續接下來的操作,用——?來表示;消息的書寫格式為?? 消息名(參數:參數類型):返回值;一般用動賓短語表示;
返回消息:表示發出消息之后消息的返回值,用<—-(此處為帶有箭頭的虛線) 表示;一般用名詞表示;
自我調節消息:表示對象自己給自己發出的消息,用帶有箭頭的指向自己的實線表示;一般用動賓 短語表示;
4.4 案例分析
例如顧客去商店購買商品的順序圖如下圖所示:
好啦,關于UML的分享就到此結束啦,作為一個PM日常主要用到的四種類型的UML圖——用例圖(用于描述參與者和系統功能關系的建模語言)、活動圖(用以描述參與者完成任務的完整活動流程的建模語言)、狀態機圖(用以描述某個目標在完整的流程中狀態變化的建模語言)、順序圖(用以描述在完成任務的流程中參與者之間交互順序的建模語言)。此波分享到此結束,希望能幫助有需要的小伙伴們~
本文由 @呵呵噠 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自Unsplash,基于 CC0 協議
本文由 @Grace 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基于 CC0 協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
WPS 可以畫,會員版
這用xmind也可以畫
說錯,Visio
drawio用完你會覺得visio就是渣,而且drawio還是免費開源的
drawio畫時序圖太難了 這些軟件我都用過,說不出那些好壞