【二】、UML基礎知識——圖圖解乾坤


【二】、UML基礎知識

UML概述

UML是一個通用的可視化建模語言,不同於編程語言,它通過一些標准的圖形符號和文字來對系統進行建模。用於對軟件進行描述、可視化處理、構建軟件系統的文檔。是一套總結了以往建模技術的經驗並吸收了當今最優秀成果的標准建模方法

UML的結構

視圖

  • 用戶視圖:以用戶的觀點表示系統的目標,它是所有視圖的核心,該視圖描述系統的需求。
  • 結構視圖:表示系統的靜態行為,描述系統的靜態元素,如包、類與對象,以及它們之間的關系。
  • 行為視圖:表示系統的動態行為,描述系統的組成元素,如對象在系統運行時的交互關系。
  • 實現視圖:表示系統中邏輯元素的分布,描述系統中的文件以及它們之間的關系。
  • 環境視圖:表示系統中物理元素的分布,描述系統中的硬件設備以及它們之間的關系。

 

 

  • 用例圖
  • 類圖、對象圖、包圖、組合結構圖
  • 狀態圖、活動圖、順序圖、通信圖、定時圖、交互概覽圖
  • 組件圖
  • 部署圖

模型元素

  • 模型元素包括事物以及事物與事物之間的關系
  • 事物是UML的重要組成部分,它代表任何可以定義的東西
  • 事物之間的關系把事物聯系在一起,組成有意義的結構模型
  • 每一個模型元素都有一個與之相對應的圖形元素
  • 同一個模型元素可以在不同的UML圖中使用
  • 但無論在哪個圖中,同一個模型元素都保持相同的意義和符號

通用機制

  • UML提供的通用機制為模型元素提供額外的注釋、語義和其他信息,包括擴展機制,允許用戶對UML進行擴展。

類和類圖

  • 類(Class)封裝了數據和行為,是面向對象的重要組成部分。
  • 是具有相同屬性、操作、關系的對象集合的總稱
  • 在系統中每個類具有一定的職責,職責指的是類所擔任的任務,即類要完成什么樣的功能,要承擔什么樣的義務。一個類可以有多種職責,設計得好的類一般只有一種職責
  • 類的屬性即類的數據職責,類的操作即類的行為職責
  • 類圖使用出現在系統中的不同類來描述系統的靜態結構,它用來描述不同的類以及它們之間的關系

類的UML圖示

在UML類圖中,類一般由三部分組成:

  • 第一部分是類名:每個類都必須有一個名字,類名是一個字符串

按照Java語言的命名規范,類名中每一個單詞的首字母均大寫

 

 

  • 第二部分是類的屬性:屬性是指類的性質,即類的成員變量。一個類可以有任意多個屬性,也可以沒有屬性。

按照Java語言的命名規范,屬性名中的第一個單詞全小寫,之后每個單詞首字母大寫(駝峰命名法)

 

 

  • 第三部分是類的操作:操作是類的任意一個實例對象都擁有的行為,是類的成員方法。

按照Java語言的命名規范,屬性名中的第一個單詞全小寫,之后每個單詞首字母大寫(駝峰命名法)

 

 

類之間的關系

關聯關系

  • 關聯關系是類與類之間最常用的一種關系,它是一種結構化關系,用於表示一類對象與另一類對象之間有聯系。
  • 在UML類圖中,用實線連接有關聯關系的對象所對應的類,在使用Java、C++和C#等編程語言實現關聯關系時,通常將一個類的對象作為另一個類的成員變量
  • 在使用類圖表示關聯關系時可以在關聯線上標注角色名

 

 

  • 雙向關聯

 

 

  • 單向關聯

 

 

  • 自關聯

 

 

 

 

  • 多重性關聯:多重性關聯關系又稱為重數性關聯關系,表示兩個關聯對象在數量上的對應關系。在UML中,對象之間的多重性可以直接在關聯直線上用一個數字或一個數字范圍表示

 

 

 

 

  • 聚合關聯
  • 聚合關系表示整體與部分的關系
  • 在聚合關系中,成員對象是整體對象的一部分,但是成員對象可以脫離整體對象獨立存在
  • 在UML中,聚合關系用帶空心菱形的直線表示

 

 

 

 

  • 組合關聯
  • 組合關系也表示類之間整體和部分的關系,但是在組合關系中整體對象可以控制成員對象的生命周期,一旦整體對象不存在,成員對象也將不存在。
  • 成員對象與整體對象之間具有同生共死的關系。
  • 在UML中,組合關系用帶實心菱形的直線表示

 

 

 

 

依賴關系

  • 依賴關系是一種使用關系,特定事物的改變有可能會影響到使用該事物的其他事物,在需要表示一個事物使用另一個事物時使用依賴關系。
  • 大多數情況下,依賴關系體現在某個類的方法使用另一個類的對象作為參數
  • 在UML中,依賴關系用帶箭頭的虛線表示,由依賴的一方指向被依賴的一方。

 

 

 

 

在系統實現階段,依賴關系通常通過三種方式來實現

  • 將一個類的對象作為另一個類中方法的參數
  • 在一個類的方法中將另一個類的對象作為其局部變量
  • 在一個類的方法中調用另一個類的靜態方法

泛化關系

  • 泛化關系也就是繼承關系,用於描述父類與子類之間的關系,父類又稱為基類或超類,子類又稱為派生類。
  • 在UML中,泛化關系用帶空心三角形的直線來表示
  • 在代碼實現時,使用面向對象的繼承機制來實現泛化關系,在**Java語言中使用extends關鍵字,在C++/C#中使用冒號":"**來實現。

 

 

 

 

接口與實現關系

  • 接口之間也可以有與類之間關系類似的繼承關系依賴關系
  • 接口與類之間存在一種實現關系,在這種關系中,類實現了接口,類中的操作實現了接口中聲明的操作
  • 在UML中,類與接口之間的實現關系用帶空心三角形的虛線來表示

 

 

 

 

 

 

注釋

 

 

實例——命令模式

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM