點菜過程涉及幾個環節,每個環節均由不同的角色來負責,如果遇到類似的情況,你可以考慮使用順序圖來分析。用順序圖來分析的好處是能清晰表達整個過程所參與的角色,角色與角色之間的關系,各角色是如何被卷入這個過程當中的。
通信圖(Communication Diagram)
UML1.1時,該圖英文名為Collaboration Diagram;UML2.x時,英文名為Communication Diagram。將英文名字直接翻譯,原來的英文名字可譯為協作圖,而新的英文名字譯為通信圖。
通信圖是順序圖的另外一種畫法,點菜的順序圖,如果用通信圖來畫可表示如下:
圖 1.10 點菜的通信圖
三個“小人”分表表示三種角色:顧客、服務員、廚師;角色之間有直線聯系表示他們之間有關系;帶序號的文字和箭頭,表示角色之間傳遞的信息。
順序圖更強調先后順序,通信圖更強調相互之間的關系。我覺得順序圖實用性更好一點,比通信圖能表達更多的信息,更容易讀懂,在需求分析工作中我基本不會使用通信圖。
用例圖(Use Case Diagram)
下圖是用例圖的示意圖:
圖 1.11 用例圖
用例圖表達的是什么角色通過軟件系統能做什么事情,我們可以使用用例圖系統地表達軟件系統的絕大部分需求。
時序圖(Timing Diagram)
時序圖也叫時間圖,時序圖是UML中文術語標準的說法,而時間圖不是標準的說法。
時序圖是表示某東西的狀態隨時間變化而變化的一種圖,參見下圖:
圖 1.12 燈的開關狀態隨時間變化圖
此圖表示在0秒到30秒,燈的狀態是關的,30-60秒燈的狀態為開,60秒后狀態為關。
在實際工作中我基本上沒有試用過時間圖。
下面通過這個表格來總結一下我在需求分析工作中應用各種UML圖的情況:
表 1.1 各種UML圖實際應用情況
上表是根據我的工作經驗總結的,相信會適用于很多情況。但每個人的工作經歷、情況、環境等不太一樣,上表僅作參考。
1.4 如何學好UML?
UML的認識誤區
誤區一:認為UML主要用于軟件設計。
前面的文章你可以看到,UML除了用于軟件設計,還能用于需求分析,而本書就是專門來說明如何在需求分析工作中活用UML的。
誤區二:客戶無法理解UML,在需求分析中應用UML實際意義不大。
我還不熟悉UML時,確實也有這樣的懷疑,而實際工作中發現UML恰恰成為與客戶溝通的良好橋梁!UML其實不難讀懂,只要稍加解釋客戶馬上就能讀懂。我在所有的項目需求分析工作中,都直接使用UML圖與客戶溝通,并且給客戶簽署的需求規格說明書中含有大量的UML圖。
UML能直觀、形象、嚴謹地描述出業務概念、業務流程、客戶的期望和需求,只要稍加引導客戶,客戶將會很容易讀懂UML,甚至會主動使用UML與項目組交流。我曾經遇到過客戶向我們索要畫UML圖的工具,客戶見識過UML的威力后,也想在自己實際工作中使用。
誤區三:認為UML語法繁雜,難以學習和應用。
某些UML資料和書籍可能將UML說得過于復雜了,官方的UML標準資料也確實是枯燥難懂、人見人暈。我剛開始學習UML時,也看過一些UML書籍,覺得UML的語法太多、太復雜、太容易混淆了!
在實際工作中,其實經常需要用到的UML語法并不多,而且很容易掌握。當我們在需求分析方面應用UML時,需要掌握的語法更少(在軟件設計方面應用UML時需要掌握稍多一點的語法)。“二八原則”在這里完全適用,我們經常用到的UML語法,其實只占全部語法的20%,而本書將會重點介紹實用性強的UML語法。
誤區四:UML用途不大。
很多人推崇UML,但也有不少人士不太認可UML。不認可的原因主要是因為一些人士學習UML后,發現在實際工作中發揮的作用并不是很大,有時候不用UML效果更好。
我不敢說UML能幫助我們解決所有問題,至少從我的多年使用經驗上來說,UML對于提升我的需求分析能力幫助還是很大的。有人之所以感覺UML不太好用,我覺得原因還是只掌握了UML的形而沒有領會UML的神。UML的常用語法可能幾天就能學會了,而要真正做到“thinking in UML”卻沒有這么容易,需要長期的鍛煉。
我的學習經歷
我讀大學時沒有聽說過UML,出來工作兩三年后才開始接觸UML,當時的感覺就好像找到了新大陸,很想好好發掘一番!而我當時的運氣還是相當不錯的,我的上司是UML達人,他帶領我參加了項目的需求分析工作。我很快就見識了UML威力,在他的言傳身教之下,迅速掌握了UML。
在那個項目以后,我便獨立擔當了多個項目管理及需求分析工作,沒有一個項目不應用UML,而且我毫不保留地傳授UML知識給項目組的其他成員。多年的工作進一步磨練了自己,對UML在實際工作中的應用有了更深刻的認識,形成自己的一套方法。
我的UML知識絕大部分來自于工作實踐,期間雖然也看過一些書籍,但對我的幫助很少。當然我最大的得益還是來自我的UML啟蒙老師,他在實際工作中教會了我UML,幫助我踏上自我成長的道路。
我的UML學習最大體會就是:實踐太重要了!如果有名師指導則會讓你事半功倍!希望本書能成為你在實際工作中學習和應用UML的好幫手!
UML學習難點
學UML之難,不在于學習語法,關鍵是要改變思維習慣。UML是一種新的工具,但同時也是代表了一種新的先進的思考方法,如果不能掌握這樣的方法,只能學到了UML的形,而沒有掌握其神髓。
原文轉自:http://www.anti-gravitydesign.com