UML統一建模

UML

  • UML(統一建模語言)介紹

UML(統一建模語言)介紹

面向對象軟件開發需要經過OOA面向對象分析、OOD面向對象設計和OOP面向對象編程三個階段。OOA對目標系統進行分析并寄哪里分析模型,并將之文檔化,OOD用面向對象的思想將OOA的結果進行細化,得出設計模型。OOA和OOD的分析、設計結果需要統一的符號的描述、交流并記錄,UML就是這種用于描述、記錄OOA和OOD結果的符號表示法。

Booch是面向對象方法最早的倡導者之一,他提出了面向對象軟件工程的概念。Booch1993表示法比較適合用于系統的設計和構造

Rumbaugh等人提出了面向對象的建模技術(OMT)方法,采用了面向對象的概念,并引入各種獨立于語言的表示符。這種方法用對象模型、動態模型、功能模型和用例模型,共同完成對整個系統的建模,所定義的概念和符號可用于軟件開發的分析、設計和實現的全過程,軟件開發人員不必在開發過程的不同階段進行概念和符號的轉換。

Jacobson于1994年提出了OOSE方法,其最大特點就是面向用例(Use-Case),并在用例的描述過程中引入了外部角色的概念。用例的概念是精確描述需求的重要武器,但是用例貫穿于整個開發過程,包括對系統的測試和驗證。

UML統一了Booch、Rumbaugh和Jaacobson的表示方法,最終統一為大眾所接受的標準建模語言。UML是一種定義良好、易于表達、功能強大且普遍適用的建模語言。它的作用域不限于支持面向對象的分析與設計,還支持從需求分析開始的軟件開發的全過程。

1996年10月,獲取廣泛支持

1997年底,OMG組織采納了UML1.1作為基于面向對象技術的標準建模語言。一共包含:

在這里插入圖片描述

最常用的UML圖包括:用例圖、類圖、組件圖、部署圖、順序圖、活動圖和狀態機圖等。

  • 用例圖

用例圖用于描述系統提供的系列功能,而每個用例則代表系統的一個功能模塊。用例圖的主要目的是幫助開發團隊對以一種可視化的方式理解系統的需求功能,用例圖對系統的實現不做任何說明,僅僅是系統功能的描述。

用例圖包括用例(橢圓),“角色”(人形),角色和用例之間的關系(線段)以及系統內用例之間的管理。

在這里插入圖片描述

  • 1.類圖

最古老、功能最豐富、使用最廣泛的UML圖形。表示系統中應該包含哪些實體,各實體之間如何關聯,使用三個矩形來描述,最上面的部分顯示類的名稱,中間部分包含類的屬性,最下面部分包含類的方法。

在這里插入圖片描述

類圖除了可以表示實體的靜態內部結構,還可以表示實體之間的相互關系,類之間的三種基本關系:關聯(聚合、組合)、泛化(繼承)、以來。

  • 關聯

類中的某個屬性引用到另外一個實體時,就變成了關聯,如僅能從一個類單方向地訪問到另一個類,則被稱為單向關聯,如果兩個類可以相互訪問,則稱為雙向關聯,一個對象能訪問關聯對象的數目稱為多重性。

在這里插入圖片描述

  • 泛化

泛化和繼承時同一個概念,都是指的子類是一種特殊的父類,類與類之間的繼承關系是非常普遍的的。

在這里插入圖片描述

  • 依賴

如果一個類的改動會導致另一個類的改動,則稱為兩個類之間存在依賴。依賴關系使用帶箭頭的虛線表示,其中箭頭指向被依賴的實體。依賴常見的可能原因:1.改動的類將消息發給另一個類。2.改動的類以另一個類作為數據部分。3.改動的類以另一個類作為操作參數。

在這里插入圖片描述

  • 2。組件圖

顯示系統中的軟件對其他軟件組件的依賴關系。

在這里插入圖片描述

  • 3.部署圖

描述軟件系統如何部署到硬件環境中,顯示軟件系統中不同的組件在何處物理地運行,以及他們將如何批次通信。

在這里插入圖片描述

  • 4。順序圖

描述對象之間的交互,描述消息及時間順序。有兩個維度:垂直維度以發生的時間顯示消息/調用的序列,水平維度顯示消息被發送到的對象實例。

在這里插入圖片描述

  • 5。活動圖

活動圖和狀態機圖被稱為演化圖。
活動圖:用于描述用例內部的活動或方法的流程,如果除去活動圖中的并行活動描述以后,它就變成了流程圖。
演化圖的五要素:

  • 狀態:狀態是對象響應事件前后的不同面貌,狀態是某個時間段對象所保持的穩定態,目前的軟件計算都是基于穩定態的,對象的穩定態是對象的固有特征,一個對象的狀態一般是有限的。有限狀態的對象是容易計算的,對象的狀態越多,對象的狀態遷移越復雜,對象狀態可以想象成對象演化過程中的快照。
  • 事件:來自對象外界的刺激,通常的形式是消息的傳遞,只是相對對象而言發生了事件。事件是對象狀態發生改變的原動力。
  • 動作:動作是對象針對所發生事件所做的處理,實際上通常表現為某個方法被執行。
  • 活動:活動是動作激發的后續系統行為。
  • 條件:條件指事件發生所需要具備的條件。
    • 激發對象狀態改變的事件,通常有兩種類型:
    • 內部事件:從系統內部激發的事件,一個對象的方法(動作)調用,(通過事件激活)另一個對象方法(動作)。
    • 外部事件:從系統邊界外激發的事件,例如用戶的鼠標、鍵盤動作。

在這里插入圖片描述

  • 6。狀態機圖

描述某一對象聲明周期中需要關注的不同狀態,并會詳細描述刺激對象狀態改變的事件,以及對戲那個狀態改變時所采取的動作。
狀態機圖的符號集包括5個基本元素:

  • 初始狀態,它使用實心圓來繪制;
  • 狀態之間的轉換,它使用具有帶箭頭的線段來繪制;
  • 狀態,它使用圓角矩形來繪制;
  • 判斷點,它使用空心圓來繪制;
  • 一個或者多個終止點,它們使用內部包含實心圓的圓來繪制。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80175.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80175.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80175.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CPP_類和對象

面向對象: 更接近真實世界(關注各對象之間的關系,而非各步驟的進行) 將結構體升級成立類 類里面可以有:成員函數,成員變量 class Stack { public:void Init(int defaultCapacity4 ) {_a (int*)malloc(s…

極狐GitLab 如何撤銷變更?

極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有: 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 還原更改 (BASIC ALL) 在極狐GitLab 中,您可以還原單個提交或整個合并請求。 當您在 Git 中還原一個提交時&…

PNG透明免摳設計素材大全26000+

在當今的數字設計領域,尋找高質量且易于使用的素材是每個設計師的日常需求。今天,我們將為大家介紹一個超全面的PNG透明免摳設計素材大全,涵蓋多種風格、主題和應用場景,無論是平面設計、網頁設計還是多媒體制作,都能輕…

uniapp小程序使用echarts

1、引入插件 在Dcloud插件市場下載echarts插件&#xff1a;插件地址 2、頁面使用簡單示例&#xff1a; <template><view class"pie-view flex-center"><view style"width: 100%; height: 600rpx"><l-echart ref"chartRef&quo…

7-1 三種語言的單詞轉換

編寫程序實現&#xff1a;首先從鍵盤輸入若干個中文與英文單詞的偶對&#xff0c;以空行作結束標記&#xff1b;再輸入若干個英文與丹麥文單詞的偶對&#xff0c;以空行作結束標記。然后輸入一個中文單詞&#xff0c;輸出對應的丹麥文單詞&#xff1b;若不存在該單詞&#xff0…

開源AI守護童心——幼兒跌倒報警系統的智能安全革命

幼兒園是孩子們成長的樂園&#xff0c;但跌倒事件卻時常讓家長和園方憂心。教室、走廊、操場&#xff0c;幼兒的每一次意外跌倒都可能帶來安全隱患。傳統人工監管難以全天候覆蓋&#xff0c;反應速度也常受限。如何讓幼兒園更安全、更放心&#xff1f;幼兒跌倒報警系統&#xf…

Halcon應用:相機標定

提示&#xff1a;若沒有查找的算子&#xff0c;可以評論區留言&#xff0c;會盡快更新 Halcon應用&#xff1a;相機標定 前言一、Halcon應用&#xff1f;二、應用實戰1、圖像理解1.1、開始標定 前言 本篇博文主要用于記錄學習Halcon中算子的應用場景&#xff0c;及其使用代碼和…

Arduino示例代碼講解:Project 08 - Digital Hourglass 數字沙漏

Arduino示例代碼講解:Project 08 - Digital Hourglass 數字沙漏 Project 08 - Digital Hourglass 數字沙漏程序功能概述功能:硬件要求:輸出:代碼結構全局變量`setup()` 函數`loop()` 函數計時和點亮LED:讀取傾斜開關狀態:重置LED和計時器:運行過程注意事項Project 08 - …

《計算機視覺度量:從特征描述到深度學習》—深度學習圖像特征工程

傳統算法的圖像特征分析和描述&#xff0c;一直貫穿圖像算法的發展。2017年深度學習的出現&#xff0c;很多開發人員和技術人員認為&#xff0c;圖像特征分析這個概念可以被深度學習完全取代。很長一段時間以深度學習為主的視覺方案成為主流&#xff0c;逐漸淡化了傳統視覺的特…

零部件三維激光掃描檢測

制造業競爭激烈&#xff0c;零部件的精準檢測與三維數據的高效獲取&#xff0c;已成為企業確保產品質量、提升生產效率的核心要素。傳統檢測手段&#xff0c;往往因效率低下、精度不足&#xff0c;難以滿足復雜零部件的檢測需求。 傳統零部件檢測&#xff0c;檢測人員通常是手…

KafkaSpark

Kafka Kafka基本概念 卡夫卡是一個分布式、分布訂閱的消息系統&#xff0c;作為消息中間件使用。 設計上是一個分布式的、分區的和可復制的提交日志服務。 Kafka的優勢 分布式系統&#xff0c;易于擴展。 高吞吐量&#xff0c;支持發布和訂閱模式。 支持多地復制&#xff…

圖文結合 - 光伏系統產品設計PRD文檔 -(慧哥)慧知開源充電樁平臺

光伏系統產品設計PRD文檔 ?版本號?&#xff1a;1.0 ?修訂日期?&#xff1a;2023年10月 ?作者?&#xff1a; 一、文檔概述 1.1 背景與目標 ?行業背景?&#xff1a;全球光伏裝機量年增長20%&#xff0c;數字化運維需求迫切?用戶痛點?&#xff1a;現有系統存在數據延…

Eyecare-100K:首個覆蓋多模態、多任務的高質量眼科視覺指令數據集

2025-04-18 , 由浙江大學、哈爾濱工業大學、郴州市第一人民醫院、新加坡國立大學等機構合作創建了 Eyecare-100K數據集&#xff0c;這是首個涵蓋多種模態、任務和疾病的高質量眼科視覺指令數據集&#xff0c;為眼科智能診斷領域提供了關鍵資源&#xff0c;推動了醫學視覺語言模…

CoT-Drive:利用 LLM 和思維鏈提示實現自動駕駛的高效運動預測

25年3月來自澳門大學和 MIT 的論文“CoT-Drive: Efficient Motion Forecasting for Autonomous Driving with LLMs and Chain-of-Thought Prompting”。 準確的運動預測對于安全的自動駕駛 (AD) 至關重要。本研究提出 CoT-Drive&#xff0c;這是一種利用大語言模型 (LLM) 和思…

[FPGA基礎] RAM篇

Xilinx FPGA RAM 使用指南 1. 引言 隨機存取存儲器&#xff08;RAM&#xff09;是 Xilinx FPGA 設計中用于存儲和快速訪問數據的重要資源。Xilinx FPGA 提供多種 RAM 類型&#xff0c;包括塊 RAM&#xff08;Block RAM&#xff09;和分布式 RAM&#xff08;Distributed RAM&a…

Elasticsearch內核探秘:從Shard分配到網絡通信的深度實踐指南

#作者&#xff1a;孫德新 文章目錄 一、底層模塊深入解析之shard allocation1、shard allocation的介紹2、cluster level shard allocation介紹3、disk-based shard allocation介紹4、shard allocation awareness5、shard allocation filtering6、node下線時的shard延遲分配7、…

SQL Server 2022 常見問題解答:從安裝到優化的全場景指南

SQL Server 2022 作為微軟最新的數據庫管理系統&#xff0c;在性能、安全性和云集成方面帶來了多項革新。然而&#xff0c;用戶在實際使用中仍可能遇到各類問題。本文將圍繞安裝配置、性能優化、備份恢復、安全設置、高可用性方案、兼容性問題及錯誤代碼解析等核心場景&#xf…

57、Spring Boot 最佳實踐

Spring Boot 最佳實踐 一. 開發規范與代碼風格 編寫高質量的代碼不僅需要功能的實現,還需要遵循一定的規范和代碼風格,以提高代碼的可讀性、可維護性和協作效率。以下是 Spring Boot 開發中的一些關鍵規范和代碼風格建議。 1. 代碼命名規范 在編寫代碼時,命名是非常重要的…

??OSPF核心機制精要:選路、防環與設計原理?

一、OSPF選路規則解析 OSPF作為經典的鏈路狀態路由協議&#xff0c;其選路規則采用層次化優先級機制&#xff0c;不同路由類型遵循嚴格比較順序&#xff1a; 1. 路由類型優先級 優先級路由類型描述1域內路由通過1類、2類LSA生成2域間路由通過3類LSA生成3域外路由通過5類/7類…

1.1軟考系統架構設計師:系統架構的定義與作用 - 超簡記憶要點、知識體系全解、考點深度解析、真題訓練附答案及解析

超簡記憶要點 定義&#xff1a;結構決策 | 抽象概念 | 多視圖模型&#xff08;邏輯/物理/動態&#xff09;作用&#xff1a;解耦復雜需求 | 集成擴展 | 指導開發&#xff08;藍圖&#xff09;要素&#xff1a;構件&#xff08;原子/復合&#xff09; | 連接件&#xff08;API/…