UML,Unified Modeling Language,統一建模語言。html
上週五,大管家@fenbox 給咱們講解分析產品需求的一套方法:UMLweb
主要用來描述「用戶、需求、系統功能單元」之間的關係。它展現了一個外部用戶可以觀察到的系統功能模型圖。幫助開發團隊以一種可視化的方式理解系統的功能需求。chrome
用例圖所包含的元素以下:
參與者(Actor):表示與您的應用程序或系統進行交互的用戶、組織或外部系統。用一個小人表示。
用例(Use Case):用例就是外部可見的系統功能,對系統提供的服務進行描述。用橢圓表示。
關係:包含、擴展、泛化。segmentfault
一種參與者對應一個用例:
併發
包含關係(Include):參與者 ---> 執行的動做/功能 - -> 可能繼續細化的動做/功能
包含關係用來把一個較複雜用例所表示的動做/功能分解成較小的步驟(父用例 -> 子用例)。異步
擴展關係(Extend):參與者 ---> 執行的動做/ 功能<- - 可能觸發的動做/功能
擴展關係是指用例功能的延伸,至關於爲基礎用例提供一個附加功能。ide
泛化關係(Inheritance):就是一般理解的繼承關係,子用例和父用例類似,但表現出更特別的行爲;子用例將繼承父用例的全部結構、行爲和關係。子用例可使用父用例的一段行爲,也能夠重載它。父用例一般是抽象的。
學習
還能夠有的關係:註釋(Comment)、依賴(Dependency),基本原理類似。google
一個用例圖示例:
spa
建模階段:能描述⼀個完整的業務流程便可(如:裝寬帶);
分析階段:能描述⼀個完整的事件流程便可(如:業務申請、業務受理、現場安裝);
用例描述表:保證全部⽤例在⼀個層級,當⽤列圖並不能清楚地表達功能需求,一般⽤描述⽂檔來補充某些不易表達的⽤例,下圖的表給你們提供一個參考:
資料參考:UML用例圖總結
時序圖(Sequence Diagram)是經過描述對象之間發送消息的時間順序顯示多個對象之間的動態協做。它能夠表示用例的行爲順序,當執行一個用例行爲時,時序圖中的每條消息對應了一個類操做或狀態機中引發轉換的觸發事件。
它是顯示對象之間交互的圖,這些對象是按時間順序排列的。順序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。時序圖中包括的建模元素主要有:
資料參考:UML建模之時序圖(Sequence Diagram)
大管家還說了兩種圖:狀態圖、活動圖,基本原理和流程圖類似,略過不表;
類圖(Class Diagram): 類圖是面向對象系統建模中最經常使用和最重要的圖,是定義其它圖的基礎。類圖主要是用來顯示系統中的類、接口以及它們之間的靜態結構和關係的一種靜態模型。
在畫類圖的時候,理清類和類之間的關係是重點。
類圖的3個基本組件:類名、屬性、方法。
資料參考:UML類圖與類的關係詳解
UML除了用於軟件設計,還能用於需求分析,如何在需求分析工做中活用UML的。
不熟悉UML時,確實也有這樣的懷疑,而實際工做中發現UML偏偏成爲與客戶溝通的良好橋樑!UML其實不難讀懂,只要稍加解釋客戶立刻就能讀懂
UML能直觀、形象、嚴謹地描述出業務概念、業務流程、客戶的指望和需求,只要稍加引導客戶,客戶將會很容易讀懂UML
有人推崇UML,但也有很多人士不太承認UML。不承認的緣由主要是由於一些人士學習UML後,發如今實際工做中發揮的做用並非很大,有時候不用UML效果更好。UML不能解決全部問題,但對於提高需求分析能力幫助仍是很大的。UML的經常使用語法可能幾天就能學會了,⽽要真正作到「thinking in UML」卻沒有這麼容易,須要長期的鍛鍊。
大管家最後推薦了兩個 Mac OS 可用的 UML 建模的軟件:Gliffy Diagrams(一個 Chrome 擴展程序),OmniGraffle。
本文基於@fenbox的分享《UML需求分析入門》,圖片大部分來自配套的 slides,少部分來自參考資料。