UML學習個人總結——UML基礎知識
UML基礎知識
UML簡介
在80年代末至90年代中,對面向物件分析與設計方法的研究發展到一個高潮。但是,諸多流派在思想和術語上有很多不同的提法,在術語、概念上的運用也各不相同,需要一種統一的符號來描述面向物件的分析和設計活動。UML應運而生。它不僅統一了Booch、Rumbaugh和Jacobson的表示方法,而且有進一步的發展,最終成為大眾所共同接受的標準建模語言。統一建模語言(UML)是一個通用的視覺化建模語言,用於對軟體進行描述、視覺化處理、構造和建立軟體系統製品的文件。它記錄了對必須構造的系統的決定和理解,可用於對系統的理解、設計、瀏覽、配置、維護和資訊控制。UML適用於各種軟體開發方法、軟體生命週期的各個階段、各種應用領域以及各種開發工具,
UML模型、檢視、圖
UML的概念和模型可以分成以下幾個概念域:靜態結構、動態行為、實現構造、模型組織、擴充套件機制
UML檢視和圖
主要的域 |
檢視 |
圖 |
主要概念 |
靜 態 結 構 |
靜態檢視 |
類圖 |
類、關聯、泛化、依賴關係、實現、介面 |
用例檢視 |
用例圖 |
用例、參與者、關聯、擴充套件、包括、用例泛化 |
|
實現檢視 |
構件圖 |
構件、介面、依賴關係、實現 |
|
部署檢視 |
部署圖 |
節點、構件、依賴關係、位置 |
|
動 態 |
狀態檢視 |
狀態圖 |
狀態、事件、轉換、動作、 |
行 |
活動檢視 |
活動圖 |
狀態、活動、完成轉換、分叉、結合 |
為 |
互動檢視 |
順序圖 |
互動、物件、訊息、啟用 |
協作圖 |
協作、互動、協作角色、訊息 |
||
模型管理 |
模型管理檢視 |
類圖 |
包、子系統、模型 |
擴充套件機制 |
所有 |
所有 |
約束、構造型、標記值 |
靜態檢視
1、類元
類元是模型中的離散概念,擁有身份、狀態、行為和關係。有幾種類元包括類、介面和資料型別。其他幾種類元是行為概念、環境事物、執行結構的具體化。這些類元中包括用例、參與者、構件、節點和子系統。圖列出了幾種類元和它們的功能。元模型術語類元中包括了所有這些概念。
類元 |
功能 |
表示法 |
參與者 |
系統的外部使用者 |
|
類 |
類代表了被建模的應用領域中的離散概念。 最重要的特性是多重性 |
|
狀態類 |
侷限於某個給定狀態的類 |
|
類元角色 |
在合作中侷限於某個使用的類元 |
|
構件 |
系統的一個物理組成單元 |
|
介面 |
刻劃行為特徵的操作命名集. |
|
節點 |
計算資源 |
|
訊號 |
物件間的非同步通訊 |
|
子系統 |
作為且有規範、實現和身份的單元的包 |
|
用例 |
與外界代理互動中的實體行為說明 |
|
2、類元之間關係
類元之間的關係有關聯、泛化、各種形式的依賴關係,包括實現關係和使用關係。
關聯:物件通常要和其他物件發生關聯,關聯可以具有多層形式。多重性問題(一對一、一對多)。在UML中關聯用一條直線來表示。
泛化:一個類繼承了其他類的屬性和操作。在UML中泛化用“從之類畫一條帶空心三角形箭頭的連線指向父類”來表示。
依賴:一個類使用了另一個類。在UML中依賴用“從依賴類到被依賴的帶箭頭的虛線”表示。
聚集是關聯的一種,聚集物件由部分物件組成。也就是整體與部分關聯。在UML中用“整體和部分之間用帶空心菱形箭頭的連線連線”來表示。
組合是一種特殊的聚集,在一個組合物件中,部分物件只能作為組合物件的一部分與組合物件同時存在。在UML中用“整體和部分之間用帶實心菱形箭頭的連線連線”來表示。
實現:類和介面之間的關係被稱為實現。在UML中實現關係用一個帶空心三角形箭頭加虛線來表示,箭頭指向介面。
關係的種類
關係 |
功能 |
表示法 |
關聯 |
類例項之間連線的描述 |
|
依賴 |
兩個模型元素間的關係 |
|
泛化 |
更概括的描述和更具體的種類間的關係,適用於繼承 |
|
實現 |
說明和實現間的關係 |
|
聚集 |
聚集物件由部分物件組成。也就是整體與部分關聯。 |
|
組合 |
一種特殊的聚集. |
圖舉例:
關聯
依賴
限定關聯
聚集和組成
泛化
實現關係
用例檢視
當用例檢視在外部使用者前出現時,它捕獲到系統、子系統或類的行為。它將系統功能劃分成對參與者(即系統的理想使用者)有用的需求。而互動功能部分被稱作用例。用例使用系統與一個或多個參與者之間的一系列訊息來描述系統中的互動作用。參與者可以是人,也可以是外部計算機系統和外部程序。
用例之間的關係:關聯、擴充套件、泛化、包含。
關係 |
功能 |
表示法 |
關聯 |
參與者與其參與執行的用例之間的通訊途徑 |
|
擴充套件 |
在基礎用例上插入基礎用例不能說明的擴充套件部分 |
|
泛化 |
用例之間的一般和特殊關係,其中特殊用例繼承了一般用例的特性並增加了新的特性 |
|
包含 |
在基礎用例上插入附加的行為,並且具有明確的描述 |
圖舉例:
用例圖
用例關係圖
互動檢視
互動檢視描述了執行系統功能的各個角色之間相互傳遞訊息的順序關係。類元是對在系統內互動關係中起特定作用的一個物件的描述,這使它區別於同類的其他物件。互動檢視顯示了跨越多個物件的系統控制流程。互動檢視可用兩種圖來表示:順序圖和協作圖,它們各有不同的側重點。協作圖也展示物件之間的互動關係,強調互動的語境和參與互動的物件的整體組織。協作圖按照空間組織布圖,而順序圖按照時間順序布圖。
順序圖
協作圖
狀態檢視
狀態檢視是一個類物件所可能經歷的所有歷程的模型圖。狀態圖由物件的各個狀態和連線這些狀態的轉換組成。狀態圖是對單個物件的“放大”,它說明物件所經歷的狀態變化。強調單個物件內狀態的變化。
狀態圖
活動檢視
活動圖是狀態圖的一個變體,用來描述執行演算法的工作流程中涉及的活動。活動狀態代表了一個活動:一個工作流步驟或一個操作的執行。活動圖描述了一組順序的或併發的活動。活動檢視用活動圖來體現。活動圖很像流程圖,它顯示出工作步驟,判定點和分支。可用於表達一個物件的操作和一個業務過程。
活動圖
物理檢視
物理檢視對應用自身的實現結構建模,例如系統的構件組織和建立在執行節點上的配置。這類檢視提供了將系統中的類對映成物理構件和節點的機制。物理檢視有兩種:構件圖和部署檢視。
構件圖
部署圖
模型管理檢視
模型管理檢視對模型自身組織建模。一系列由模型元素(如類、狀態機和用例)構成的包組成了模型。一個包(package)可能包含其他的包,因此,整個模型實際上可看成一個根包,它間接包含了模型中的所有內容。包是操作模型內容、存取控制和配置控制的基本單元。每一個模型元素包含於包中或包含於其他模型元素中。
包
擴充套件機制
UML提供了幾種擴充套件機制,允許建模者在不用改變基本建模語言的情況下做一些通用的擴充套件。這些擴充套件機制已經被設計好,以便於在不需理解全部語義的情況下就可以儲存和使用。由於這個原因,擴充套件可以作為字串儲存和使用。對不支援擴充套件機制的工具來說,擴充套件只是一個字串,它可以作為模型的一部分被匯入、儲存,還可以被傳遞到其他工具。我們期望後端工具設計成能夠處理各種擴充套件,這些工具會為它們需要理解的擴充套件定義特定的語法和語義。擴充套件機制包括約束、標記值和構造型。
約束是用文字表達式表示的語義限制。
約束
標記值是一對字串—一個標記字串和一個值字串—儲存著有關元素的一些資訊。標記值可以與任何獨立元素相關,包括模型元素和表達元素。標記是建模者想要記錄的一些特性的名字,而值是給定元素的特性的值。例如,標記可以是author,而值是對元素負責的人的名字,如Charles Babbage。
標記值
構造型是在一個已定義的模型元素的基礎上構造的一種新的模型元素。構造型的資訊內容和形式與已存在的基本模型元素相同,但是含義和使用不同。例如,商業建模領域的建模者希望將商業物件和商業過程作為特殊的建模元素區別開來,這些元素的使用在特定的開發過程中是不同的。它們可以被看作特殊的類—它們有屬性和操作,但是在它們與其他元素的關係上和它們的使用上有特殊的約束。
構造型
各種圖彙總