1、UML
1.1概述
UML(Unified Modeling Language 統一建模語言) 是為軟件系統的制品進行描述(specifying)、可視化(visualizing)、構造(constructing)、文檔化(documenting) 的一種語言。
UML規范用來描述建模的概念有: 類、對象、關聯、職責、行為、接口、用例、包、順序、協作,以及狀態。
1.2 UML是一種建模語言
建模方法 = 建模語言 + 建模過程。
建模語言定義了用於表示設計的符號(通常是圖形符號);建模過程描述進行設計所需要遵循的步驟。- 標准建模語言UML是一種建模語言,而不是一種方法,它統一了面向對象建模的基本概念、術語及其圖形符號,為人們建立了便於交流的共同語言。
- 建模能力:
建模方法 + 領域知識 + 實踐
1.3 UML語言包含三方面
- UML基本圖素:它是構成UML模型圖的基本元素。例如類、對象、包、接口、組件等。
- UML模型圖:它由UML基本圖素按照UML建模規則構成。例如用例圖、類圖、對象圖、…等。
- UML建模規則:UML模型圖必須按特定的規則有機地組合而成,從而構成一個有機的、完整的UML模型圖(well-formed UML diagram)。
2、UML支持軟件體系結構建模
為了表達不同的軟件開發相關人員在軟件開發周期的不同時期看待軟件產品的不同側重面, 需要對模型進行分層。
UML根據軟件產品的體系結構(architecture)對軟件進行分層。
軟件的體系結構分解為五個不同的側面,稱為4+1視圖(view)。分別是:
- 用例視圖(Use case view,Scenarios)—場景視角
- 邏輯視圖(Logical view) — 邏輯視角
- 進程(過程)視圖(Process view) — 過程視角
- 實現(開發)視圖(Implementation view) —開發視角
- 部署(物理、配置)視圖(Deployment view) —物理視角
- 每個視圖分別關注軟件開發的某一側面
- 視圖由一種或多種模型圖(diagram)構成
- 模型圖描述了構成相應視圖的基本模型元素(element)及它們之間的相互關系。
2.1 邏輯視圖
邏輯視圖定義系統的實現邏輯, 描述為實現用例圖描述的功能,在對軟件系統進行設計時, 所產生的設計概念,設計概念又稱為軟件系統的設計詞匯 (vocabulary)。
邏輯視圖定義了:
- 設計詞匯的邏輯結構
- 存在於它們之間的語義聯系
- 設計詞匯包括系統的類/協同/接口及其關系
對邏輯視圖的描述在原則上與軟件系統的實現平台無關。 它相當於電子產品生產中的電原理圖。邏輯視圖包含的模型圖有:
- 類圖(class diagrams)
- 對象圖(object diagrams)
- 交互圖(interaction diagrams)
- 狀態圖(state-chart diagrams)
- 活動圖(activity diagrams)
2.2 實現(開發)視圖
實現視圖描述組成一個軟件系統的各個物理部件,這些部件以各種方式組合起來,(如: 不同的源代碼經過編譯,構成一個可執行系統; 或者不同的軟件組件配置成為一個可執行系統;以及不同的網頁文件,以特定的目錄結構,組成一個網站,等等) 構成了一個可實際運行的系統。
當系統的邏輯結構在邏輯視圖里被定義之后, 需要定義邏輯結構的物理實現。這包括:
- 設計元素對應的源代碼文件
- 各物理文件之間的關系、存放路徑,等等
實現視圖就是定義這些內容的地方,它當於電子產品的印刷電路板的布線圖。
實現視圖包含的模型圖有:
- 部件圖(Component diagram)
- 交互圖(Interaction Diagram)
- 狀態圖(state-chart diagram)
- 活動圖(activity diagram)
2.3 部署視圖
軟件產品將運行在計算機硬件系統上, 如果軟件產品是面向網絡的應用系統,則有可能同時運行在多個計算機上。
部署視圖用來描述軟件產品在計算機硬件系統和網絡上的安裝、分發(delivery)、分布(distribution)。
在部署視圖中,系統的靜態特性用分布圖(deployment diagram)描述。
動態特性的描述用
- 交互圖(interaction diagram)
- 狀態圖(state-chart diagram)
- 活動圖(activity diagram)
2.4 過程視圖
過程架構考慮一些非功能性的需求,如性能和可用性。它解決並發性、分布性、系統完整性、容錯性的問題,以及邏輯視圖的主要抽象如何與過程結構相配合在一起 —— 即在哪個控制線程上,對象的操作被實際執行。
2.5 用例視圖
用例(場景)視圖用來支持軟件系統的需求分析,它定義系統的邊界,關注的是系統的外部功能的描述。
它從系統的使用者的角度,描述系統的外部的
- 靜態的功能
- 動態行為
系統的動態功能由UML以下模型圖描述:
- 交互圖(interaction diagram),包括順序圖和協作圖。
- 狀態圖(state-chart diagram)
- 活動圖(activity diagram)
3、UML基本組成
\(UML = UML成員 + UML建模規則\)
UML建模規則:相當於建模語言的語法
UML成員(building blocks of the UML):它是UML的基本組成部分
\(UML成員 = UML 基本模型元素+ 關系+ 模型圖\)
UML成員可進一步划分為
- UML 基本模型元素(things in UML)
- 關系(relationship)
- 模型圖(diagram)
3.1 UML成員
3.1.1 UML 基本模型元素
UML基本模型元素,類似於電子產品電原理圖里的集成電路符號,是模型圖上包含的基本符號
\(UML基本模型元素 = 結構模型元素+行為模型元素+成組元素+注解元素\)
基本模型元素可分為四類, 它們是:
- 結構模型元素(structural things)
- 行為模型元素(behavioral things)
- 分組模型元素(grouping things)
- 注解元素(annotational things)
3.1.2 關系
結構模型元素是UML模型的靜態組成部分,靜態組成部分不是孤立存在的,它們被組合在一起互相協作以完成某項任務。因此,結構模型元素之間存在着某種語義上的聯系。
在UML中,這種聯系是關系(relationship)
UML中共有4種關系,它們是:
-
關聯關系(association)
-
依賴關系(dependency)
-
泛化關系(generalization)
-
實現關系(realization)
詳情點擊這里
3.1.3 模型圖
UML基本模型元素及其關系必須通過某種載體表示,這種載體就是模型圖(diagram)
在UML中,模型圖是一組UML基本模型元素的圖形表示,它通常由一組節點(UML基本模型元素), 及節點之間的連線(關系)組成
軟件系統體系結構的5個視圖的內容, 就是用模型圖來表達的
一般地說,一個UML基本模型元素既可以出現在所有的模型圖中,又可以出現在某些模型圖中,甚至可以不在任何一個模型圖上出現
9種UML模型圖。它們是:
- 類圖
- 對象圖
- 用例圖
- 序列圖
- 協同圖
- 狀態圖
- 活動圖
- 組件圖
- 分布圖
3.2 UML建模規則
UML建模規則包括:
- 名字:任何一個UML成員都必須包含一個名字
- 作用域:UML成員所定義的內容起作用的上下文環境
- 可見性:UML成員能被其它成員引用的方式
- 完整性:UML成員之間互相聯接的合法性和一致性。
- 運行屬性(execution):UML成員在運行時的特性。
完備的UML模型必須對以上的內容給出完整的解釋, 當用於軟件系統的建造時,UML模型是必須是完備的, 但是當模型在不同的視圖中出現時, 出於不同的交流側重點, 其表達可以是不完備的 。