您好,我是碼農飛哥,感謝您閱讀本文,歡迎一鍵三連哦。
文章目錄
- UML的介紹
- 模型
- 模組化的作用
- UML的組成
- 構造塊
- 構造塊之事物
- 結構事物
- 行為事物
- 分組事物
- 構造塊之四種基本關系
- 構造塊之模型圖
- 規則
- 公共機制
- 規則說明
- 修飾
- 通用劃分
- 擴充機制
- UML的應用範圍
- 參考
- 粉絲專屬福利
UML的介紹
UML (Unified Modeling Language)是一種通用的可視化的模組化語言,可以用來描述、可視化、構造和文檔化軟體密集型系統的各種工件。它不是一種程式設計語言。
UML 是獨立于過程的,它可以在軟體生命周期的各個階段運用,不過主要應用于軟體開發的設計與分析階段。
模型
什麼是模型呢?模型就是對現實的簡化。比如:我們在設計一款新汽車時首先需要設計該汽車的模型,隻有模型設計好之後才會開始汽車的生産開發。
模組化的作用
- 模型有助于按照實際情況或按照所需要的樣式對系統進行可視化。
- 支援獨立于程式設計語言和開發過程的規範。
- 模型給出了指導構造系統的模闆。
- 模型對做出的決策進行文檔化。
UML的組成
UML由構造塊,規則和公共機制這三部分組成。
- 構造塊:UML組成中構造塊是對模型中最具有代表性的成分的抽象
- 規則:UML有一套規則,這些規則描述了一個結構良好的模型看起來應該像什麼
- 公共機制: UML中有4種貫穿整個語言且一緻應用的公共機制,是以使得UML變得較為簡單。
構造塊
構造塊由事物,關系,模型圖三個部分組成。
- 事物:UML模型中最基本的組成元素,可以把事實體解成漢語中的單詞和詞語
- 關系:關系是把事物緊密聯系在一起,可以把關系了解成漢語中的文法
- 模型圖:模型圖是事物和關系的可視化展示,可以把模型圖了解成漢語中的文章。
構造塊之事物
事物分為結構事物,行為事物,分組事物,注解事物四種。
結構事物:指的是模型中的靜态部分,用于呈現概念或者實體的表現元素。
行為事物:指模型裡随着時空不斷變化的部分。
分組事物:可以把分組事物看成一個"盒子",模型可以在其中被分解。
注解事物:UML模型的解釋部分
下面就分别對這幾種事物進行介紹
結構事物
結構事物下有類,用例,接口,協作,活動類,元件,節點
- 類:類是指具有相同屬性、方法、關系和語義的對象的集合;
- 用例:定義了執行者(在系統外部和系統互動的人)和被考慮的系統之間的互動來實作的一個業務目标;
- 接口:定義行為規範,描述了類或元件對外可見的動作;
- 協作:合作完成某個特定任務的一組類及其關聯的集合
- 活動類:活動類的對象有一個或多個程序或線程。活動類和類很相象
- 元件:元件是實體的、可替換的部分,包含接口的集合
- 節點:系統在運作時存在的實體元素,代表一個可計算的資源
行為事物
行為事物分為互動,狀态機兩種
互動:由一組對象之間在特定上下文中,為達到特定的目的而進行的一系列消息交換而組成的動作;互動就是指時序圖中的消息。
狀态機:狀态機由一系列對象的狀态組成。
分組事物
分組事物隻有一個就是包
包:結構事物、動作事物甚至分組事物都有可能放在一個包中
構造塊之四種基本關系
在UML中的關系有四種基本關系,分别是
- 泛化關系:就是繼承關系,子類和父類的關系,比如鳥與動物的關系就是泛化關系,實線的三角箭頭從子類指向父類。
- 實作關系:實作關系是實作類與接口之間的關系,比如大雁實作了飛翔的功能。他是虛線的三角箭頭從實作類指向接口。如下圖所示:
- 關聯關系:一組對象之間連接配接的結構關系,如下圖老師,學生與課程之間的關系。
- 老師和學生之間是雙向關聯關系,老師有多個學生,學生也可能有多名老師。但是學生與某個課程間的關系是單向關聯關系,一個學生可能要上多門課程,但是課程是個抽象的東西它不擁有學生。
-
依賴關系:一個類的實作必須依賴于其他類的協助,比如人依賴空氣。
這四種關系的強弱順序是:泛化=實作>關聯>依賴
構造塊之模型圖
UML模型圖圖表共有十三種,本文将對其中比較常用的圖表進行詳細介紹。首先讓我們來看看這些圖表的介紹以及作用。
UML模組化的圖表按照種類可以分為結構型圖表和行為型圖表。
結構型圖表:從不同的抽象和實作程度上描述了一個系統和系統建構的靜态結構,并且描述他們是如何直接關聯到一起的。
該類型的圖表包括:
- 類圖(Class Diagram),
- 對象圖(Object Diagram),
- 包圖(Package Diagram),
- 元件圖(Component Diagram),
- 部署圖(Deployment Diagram),
- 複合結構圖(Composite Structure)
- 行為型圖表:展示系統中的對象的動态行為,它描述了一個系統中的對象如何随時間變化而變化。
- 該類型的圖表包括:
- 用例圖(Use Case Diagram),
- 活動圖(Activity Diagrams),
- 狀态圖(State Machine Diagram),
- 時序圖(Sequence Diagram),
- 通信圖(Communication Diagram)
- 互動概覽圖(Interaction Overview Diagram):
- 定時圖(Timing Diagram):
規則
- 命名:為事物、關系和圖起名。
- 範圍:給一個名稱以特定含義的語境
- 可見性:怎樣讓其他人使用或者看見名稱
- 完整性:事物如何正确、一緻地互相聯系
- 執行:運作或模拟動态模型的含義是什麼
公共機制
公共機制分為:規則說明,修飾,通用劃分,擴充機制
規則說明
- 規格說明提供了對構造塊的文法和語義的文字描述
- 規格說明用來描述系統的細節
-
UML的規格說明提供了一個語義底版,它包含了一個系統的各個模型的所有部分,并且各部分互相聯系,并保持一緻。
總而言之,規格說明就是UML圖的産品說明書
修飾
修飾:UML表示法中的每個元素都有一個基本符号,可以把各種修飾細節加到這個符号上。
通用劃分
- 類/對象二分法(class/object dichotomy): 類是一個抽象,對象是這個抽象的一個具體表現形式,UML的每一個構造塊幾乎都存在像類/對象這樣的二分法。例如:用例和用例執行個體(場景),構件和構件執行個體,節點和節點執行個體等。
- 接口/實作二分法(interface/realization dichotomy)接口聲明了一個契約,而實作則表示了對該契約的具體實施,它負責如實地實作接口的完整語義。幾乎每一個UML的構造塊都有像接口/實作這樣的二分法。例如:用例和實作它們的協作,操作和實作他們的方法。如下圖所示:
擴充機制
對UML圖示符号的擴充。包含:構造型Stereotype-标注值Taggedvalue-限制Constraint。如下圖所示:
UML的應用範圍
如上圖展示了UML在軟體生命周期中的應用範圍。
- 在需求分析階段可以通過用例圖來描述系統的使用者,以及系統有哪些功能
- 在分析與設計階段經常需要使用到類圖、包圖、元件圖幾種靜态視圖,以及所有動态視圖。靜态視圖用來描述系統的設計類,動态視圖用來确定任一時刻某一對象或者實體需要執行的操作,或者應該處于的狀态。
- 在開發階段根據UML圖表來編寫代碼,
- 在測試階段根據UML圖表來設計測試用例,使用活動圖來輔助測試
- 在部署階段根據部署圖來部署項目。
參考
UML官網
粉絲專屬福利
軟考資料:實用軟考資料
面試題:5G 的Java面試題