要用好UML,你需要在平時多多培養下面的能力:
1. 書面表達能力。
2. 歸納總結能力。
3. “面向對象”的思維能力和抽象能力。
平時你可以利用各種機會來提升第1和第2種能力,如多寫寫項目文檔、寫寫日記或博客等,多思考和總結平時自己的工作得失等。
第3種能力說起來有點虛,大家在大學中可能也學過相關知識。訓練這種能力的最好方法就是多應用類圖,我們將會在類圖的章節再重點介紹,通過實例來體會什么才叫“面向對象”!
本書將會重點培養你的這三種能力,只要你有進步之心,多練習、多實踐、多思考、多總結,一定會取得長足進步!
1.5 小結和練習
小結
本章的主要目標是讓你不需要閱讀全書的情況下,就可以了解到UML的全貌,大概知道UML各種圖的用途,同時給你說明學習UML的難點,為最終活用UML做好準備。下面我們一起來復習一下本章的主要內容:
UML是Unified Modeling Language的簡稱,是軟件開發界的一套標準,UML不僅可用于軟件設計,也可以用于軟件需求分析。但UML并不是強制標準,我們應該善用包括UML在內的各種標準來提高我們的水平。
UML可分為兩類:結構型、行為型,結構性的UML有:類圖、對象圖、構件圖、部署圖、包圖,行為型的圖有活動圖、狀態機圖、順序圖、通信圖、用例圖、時間圖。
類圖是業務概念模型分析的有利武器,也是面向對象分析能力的強有力訓練工具。
對象圖在需求分析工作中并不常用。
構件圖、部署圖是分析IT基礎架構、軟件架構等方面需求的有利分析工具,但需要你具備IT基礎架構、軟件設計方面的知識和經驗。
包圖可用來組織類圖,在需求分析工作中應用的機會不是很大。
活動圖、狀態機圖、順序圖是分析業務流程的強力武器?;顒訄D的表達思路與流程圖很類似,很容易掌握,而且大部分情況下都可以使用活動圖來分析業務流程;某流程如果是圍繞某個物品進行,該物品在流程中轉換多種狀態,那么使用狀態機圖來分析是首選;用順序圖來分析的好處是能清晰表達整個過程所參與的角色,角色與角色之間的關系,各角色是如何被卷入這個過程當中的。
通信圖可以看作是順序圖的另外一種表達形式,順序圖更強調先后順序,通信圖更強調相互之間的關系。而從我的工作經驗看,順序圖更加實用一點。
有人會將用例圖稱作“公仔圖”,用例圖表達的是什么角色通過軟件系統能做什么事情,我們可以使用用例圖系統地表達軟件系統的絕大部分需求。
時間圖是表示某東西的狀態隨時間變化而變化的一種圖,我在實際工作中很少有機會能用到這種圖。
學UML之難,不在于學習語法,避免陷入UML的認識誤區,多練習、多實踐,培養良好的“think in UML”思想,鍛煉面向對象分析的能力,成為活用UML的需求分析高手不遠矣!
練習
1. 請你根據自己的實際情況,填寫“你的UML斤兩”調查表,此表能幫助你認識自己的UML水平。
選擇最接近你情況的選項填寫下表:
A. 還沒有聽說過該UML圖,就算聽說過也不了解具體情況。
B. 了解該UML圖,但還沒有在實際工作中應用過。
C. 在實際工作中能看懂這種UML圖。
D. 在實際工作中能畫出該UML圖。
E. 對該UML圖非常熟悉,能在工作中熟練運用。
F. 對該UML圖非常熟悉,能在工作中熟練運用,而且能指導別人在實際工作中活用此UML圖。
表 1.2 你的UML斤兩調查表
2. 根據上題的調查情況,請你為自己設定UML的學習目標。
3. 書面表達能力是很重要的一種能力,良好的書面表達能力能讓你更好地學習和應用UML,此題目訓練和測試你的書面表達能力。下面題目請至少選擇一題完成:
a) 選擇你最熟悉的一個項目,簡明扼要地描述出該系統能做什么事情。
b) 總結你最近一個月的主要工作,簡明扼要地表達出來。
c) 總結你最近一個月的學習情況,簡明扼要地表達出來。
將你的總結給至少一位不了解你總結內容的朋友看,你不要加任何解釋,看看你的朋友能不能讀懂你寫的內容。根據你朋友的反饋,思考如何改進你的書面表達能力。
原文轉自:http://www.anti-gravitydesign.com