萬丈高樓平地起:UML類圖

来源:https://www.cnblogs.com/doondo/p/18385255
-Advertisement-
Play Games

UML類圖 UML類圖 是一種靜態的結構圖,描述了系統的類的集合,類的屬性和類之間的關係,可以簡化了人們對系統的理解。UML類圖 是系統分析和設計階段的重要產物,是系統編碼和測試的重要模型。 圖示 類 解析 圓角矩形框,它就代表一個類(Class) 類圖分為三層: 第一層顯示類的名稱,如果是抽象類, ...


UML類圖

UML類圖 是一種靜態的結構圖,描述了系統的類的集合,類的屬性和類之間的關係,可以簡化了人們對系統的理解。UML類圖 是系統分析和設計階段的重要產物,是系統編碼和測試的重要模型。

圖示

解析

圓角矩形框,它就代表一個類(Class)

類圖分為三層:

  • 第一層顯示類的名稱,如果是抽象類,則就用斜體顯示
  • 第二層是類的特性,通常就是欄位和屬性
  • 第三層是類的操作,通常是方法或行為。
    • 註意前面的符號:
      • '+':表示public
      • '-' :表示private
      • '#':表示protected

介面

解析

矩形框,頂端有<<interface>>顯示,第一行是介面名稱,第二行是介面方法。

註意:介面還有另一種表示方法,俗稱棒棒糖表示法。比如下圖中的唐老鴨類就是實現了 "講人話"的介面。

UML關係

1. 繼承

描述:繼承關係用 空心三角形+實線 來表示

舉例:面向對象說過,繼承是一種 "is a " 的關係,鳥是動物中的一種

2. 實現

描述:實現介面用 空心三角形+虛線 來表示

舉例:大雁實現了 飛翔介面,定義大雁飛的方法

3. 關聯

描述:關聯關係用 實線箭頭 來表示

舉例:企鵝和氣候兩個類,企鵝是很特別的鳥,會游不會飛。更重要的是,它與 氣候 有很大的關聯。我們不去討論為什麼北極沒有企鵝,為什麼它們要每年長途跋涉。總之,企鵝需要知道 "氣候" 的變化,需要瞭解 "氣候" 規律。當一個類 "需要知道" 另一個類時,可以用關聯(association)關係表示。

4. 聚合

描述:聚合關係用 空心的菱形+實線箭頭 來表示

舉例:大雁是群居動物,每隻大雁都屬於一個雁群, 一個雁群可以有多只大雁。所以它們之間就滿足 聚合(Aggregation)關係。聚合表示一種弱的 "擁有" 關係,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。

5. 組合

描述:組合關係用 實心的菱形+實線箭頭 來表示

舉例:組合是一種強的 "擁有" 關係,體現了嚴格的部分和整體的關係,部分和整體的生命周期一樣。鳥和其翅膀就是組合(合成)關係,因為它們是部分和整體的關係,並且翅膀和鳥的生命周期是相同的。

另外,你會註意到合成關係的連線兩端還有一個數字 '1' 和數字 '2' ,這被稱為基數。表明這一端的類可以有幾個實例,很顯然,一個鳥應該有兩隻翅膀。如果一個類可能有無數個實例,則就用'n'來表示。關聯關係、聚合關係也可以有基數


6. 依賴

描述:依賴關係(Dependency),用虛線箭頭來表示

舉例:動物要有生命力,需要氧氣、水以及食物等依賴


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 信息系統設計速查表需求收集功能性需求:通過用戶訪談、問卷調查和市場分析來確定系統必須實現的功能。 非功能性需求:定義性能基準(如響應時間)、安全性要求(如數據加密標準,傳輸加密)、可靠性標準(如系統的正常運行時間, MTTR)。 用戶故事:使用敏捷方法論,如Scrum,來創建和優先順序排序用戶故事。 ...
  • @目錄1.流程2.自定義發佈數據2.1 std_msgs內置類型2.2 編寫.msg文件2.3 修改package.xml文件2.3.1 完整的package.xml文件2.4 修改CMakeLists.txt文件2.4.1 修改find_package指令2.4.2 添加add_message_f ...
  • IOC與DI的理解 1.1、IoC是什麼 Ioc—Inversion of Control,即“控制反轉”,不是什麼技術,而是一種設計思想。在Java開發中,Ioc意味著將你設計好的對象交給容器控制,而不是傳統的在你的對象內部直接控制。如何理解好Ioc呢?理解好Ioc的關鍵是要明確“誰控制誰,控制什 ...
  • @目錄1.launch文件有哪些標簽2.node標簽2.1 必選屬性2.2 可選屬性2.3 可選子級標簽3.include標簽3.1 必選屬性3.2 可選屬性3.3 可選子級標簽4.remap標簽4.1 必選屬性5.param標簽5.1 必選屬性5.2 可選屬性6.rosparam標簽6.1 必選屬 ...
  • @目錄1.工作空間目錄2.載入環境變數3.打開CLion4.配置CLion5.編譯和調試軟體包 1.工作空間目錄 我們的一個工作空間目錄應該是這樣的 2.載入環境變數 先進入工作空間再載入 source ./devel/setup.bash 3.打開CLion 一定要在第二步的同一個終端下 clio ...
  • @目錄1.流程2.自定義請求和響應的數據2.1 std_msgs內置類型2.2 編寫.srv文件2.3 修改package.xml文件2.4 修改CMakeLists.txt文件2.4.1 修改find_package指令2.4.2 添加add_message_files指令2.4.3 添加gene ...
  • 所謂架構,意即系統架構,廣義上它涵蓋業務架構、運維架構、組織架構等所有系統構建場景,本文特指一般開發人員主要關註的開發架構。 關於架構的理論有很多,每個人也都有各自的理解,筆者相信很多人在實際運用中也會遇到各種各樣的問題和困惑,本文拋開教條,從一個實際項目的演化看何為架構。 項目背景 開始之前,先了 ...
  • @目錄1.配置Softerware & Updates2.添加軟體源3.設置key4.更新並安裝4.1 更新4.2 安裝(ros-noetic-desktop-full)4.2.1 安裝aptitude4.2.2 安裝ROS軟體包5.添加環境變數6.安裝構建依賴7.初始化和更新7.1 初始化7.1. ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...