UML概述——系統學習UML篇一

前言

現階段的課程正好在學習軟件體系結構,也就是軟件架構的內容,內容主要包括UML建模和以Java爲語言示範的設計模式。

課程非常不錯,劉偉老師的授課能力很強,學習非常有收穫,就想着一邊複習整理備考,一邊發一個系列博客。

UML概述

  • UML是一種語言,它有自己的標準表達規則。它是一種分析設計語言,也就是一門建模語言
  • UML是由圖形符號表達的建模語言
  • UML是一種用於描繪軟件藍圖的的標準語言

上述第三條裏面說到的“軟件藍圖”指的就是我們所做的架構設計。雖然架構設計不只有UML,但UML的使用絕對是最廣泛的,它又是爲此而生的。

程序流程圖、軟件測試中的控制流圖、數據庫建模的ER模型圖等都不屬於UML。

UML的誕生

  • 從1994年起,Grady Booch和James RumBaugh在Rational軟件公司開始了UML的創建工作
  • 1995年,OOSE方法和Objectory方法的創建者Ivar Jacobson也加入其中

Grady、James、Ivar是當時領域內建模的三大巨頭,有三套非常流行的建模方法,Rational公司爲了統一三人必然是付出了巨大的努力。

  • 自此之後UML的三位創始人聯手,共同爲創建一種標準的的建模語言而工作,他們將開發出來的產品名稱定爲UML(Uniform Modeling Language 統一建模語言)
  • 1997年11月,在三人及Rational公司的努力下,UML1.1版本提交給OMG(Object Management Group 對象管理組織),並獲得通過,UML1.1從此成爲業界標準的建模語言

Rational公司爲了讓UML成爲業界標準,做了巨大的商業犧牲,即是完全開放使用,不收取任何版權費用,任何公司都可以開發繪製UML的軟件而不需要支付Rational任何費用。(當然最後它被收購了)

不得不說,這一偉大行爲具有相當的意義。

  • 2003年6月,OMG技術會議上UML2.0獲得正式通過。但其實呢,UML2.0增加的新的圖使用並不廣泛

UML的視圖(View)

UML總共有五種視圖,分別是用戶視圖、結構視圖、實現視圖、行爲視圖、環境視圖

視圖,見文知意,就是從什麼角度去看待這些圖,或者說這些圖描繪的是從什麼角度看待我們的建模對象。

算上UML2.0的四種新圖,UML總共有13種,它們分別屬於不同的視圖

用戶視圖
  • 表示從用戶的角度看待系統
  • 包含:用例圖,僅此一種 (使用頻度很高)
結構視圖
  • 表示系統的靜態關係
  • 包含:類圖、包圖、對象圖、組合結構圖
  1. 其中類圖最爲重要,在這裏不多解釋了。(使用頻度很高)

  2. 包圖類比Java的包結構,它可以起到分層的作用。(使用頻度中等)

  3. 對象圖,我們知道,對象產生於系統運行的時刻,但是這裏依舊是靜態關係,那麼對象圖可以理解爲系統某一時刻一些具體對象的關係,就像相機拍下來的一樣。其往往用於表示複雜類的內部結構。(使用頻度不高)

  4. 組合結構圖,組合結構圖用來顯示組合結構或部分系統的內部構造,包括類、接口、包、組件、端口和連接器等元素。其側重複合元素的方式展示系統內部結構,包括與其他系統的交互接口和通信端口,各部分的配置和協作,組件相關的服務,以及各服務之間的通信和調用。(使用頻度不高)

行爲視圖
  • 表示系統的動態運行與交互、通信關係
  • 包含:順序圖、狀態圖、活動圖、通信圖、定時圖、交互概覽圖
  1. 順序圖,在以前習慣叫作時序圖,因爲它有一條對象的生命線,有着明顯的時間流逝表徵,但現在多叫作順序圖了。它最常用的方式就是描述用例的路徑(需求建模階段)和描述算法(概要設計階段)(使用頻度較高)

  2. 狀態圖,用於表示系統內重要對象的狀態變化,在數據庫中,我們往往以一個state字段來做標記;在編碼中我們可以爲類添加屬性state,在具體的方法中通過if else來做判斷,但是更推薦的做法是使用狀態設計模式,這裏不過多介紹了。(使用頻度較高)

  3. 活動圖,活動圖與順序圖有些許類似,但又有很大的區別,首先是粒度上的,活動圖的粒度往往是用例,所以活動圖最重要的工作即是表述完整的業務流程。舉個例子,比如說網購一件商品,我們通常會有登錄用例、下單用例、支付用例等等,這些用例串接起來才作爲一個完整的網購過程。這就是活動圖無可取代的工作。當然它也可以表示用例的路徑,也可以描述算法,但畢竟彆扭,使用順序圖更合適。另外,活動圖還有一個十分重要的概念就是泳道,它表示的是用例執行的職責所在,泳道表示了執行用例的主題是誰(使用頻道較高)

  4. 通信圖,通信圖和順序圖是同構圖,順序圖注重時間維度,通信圖注重空間維度。(使用頻度不高)

  5. 定時圖,定時圖是UML2.0的新圖,它的最大特點就是有一個明確時間的時間軸。(使用頻度不高)

  6. 交互概覽圖,交互概覽圖也是UML2.0的新圖,它是將活動圖中的每個用例用順序圖進行展開。看似非常美好,但其實繁瑣難以閱讀且沒有新增任何內容。(使用頻度不高)

實現視圖

僅一個組件圖,組件在這裏指的是具體的物理文件,如各類.calss文件、xml配置文件,依賴的jar之間的關係。(使用頻度中等)

環境視圖

僅一個部署圖,即系統的具體硬件之間的結構與關係。(使用頻度中等)

UML的模型元素

  • 模型元素包括事物以及事物與事物之間的聯繫
  • 每一個模型元素都有一個與之相對應的圖形元素
  • 同一個模型元素可以在不同的UML圖中使用
  • 無論在哪個圖中,同一個模型元素都保持相同的意義和符號

模型元素體現了UML建模的統一性,尤其是“無論在哪個圖中,同一模型元素都保持相同的意義和符號”,關於這一點將在後續的文章中慢慢體現。

UML的通用機制

  • 額外的註釋、修飾和語義等
  • 包括規格說明、修飾、公共分類和擴展機制四種
  • 允許用戶對UML進行擴展

常用的是註釋和擴展機制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章