新手必讀:UML入門

更新 發佈閱讀 6 分鐘

Ⅰ. 什麼是UML?

UML(Unified Modeling Language)是一個通用的視覺化建模語言標準,用於對軟體進行描述、視覺化處理、建構和建立軟體系統製品的文件。

提到語言,很多小夥伴開始產生恐懼了,你腦中可能會飄過SQL、Java、C#、PHP這些語言,它們可能讓不少人望而卻步。

raw-image

各種程式設計語言

但UML不是程式設計語言,而是一種視覺化的建模語言。之所以稱它為語言,因為UML提供了用於交流的詞彙及規則,使用者在這些詞彙與規則框架下可以對同一軟體進行無障礙的交流,使各種使用者對於同一事物產生相同的認識。

Ⅱ. 為什麼要統一建模語言

上個世紀60年代末期開始,隨著電腦科技的不斷普及,人們對軟體的需求量與日俱增,軟體的規模也不斷擴大,軟體的複雜度也日益增加。由於缺乏科學的理論指導,造成軟體的開發進度難以保障,軟體開發成本不斷爬升,不斷變化的使用者需求對無法保證品質的軟體也是雪上加霜,又沒有相關的文件資料作為參考,使軟體維護變得異常困難。人們形象的稱為軟體危機。

怎麼辦?那必須把軟體開發工作當作工程來幹。因此,軟體工程的概念也應運而生。軟體工程旨在研究軟體生產的客觀規律,建立軟體生產的相關概念、原則、方法、技術和工具,以指導軟體生產活動。當然取得了令人滿意的效果。

隨著人們對軟體工程研究的不斷深入,物件導向的程式設計進入人們的視野。從1980年代到90年代初,誕生了許多物件導向的分析與設計方法,也出現了一大堆介紹物件導向方法的書籍。這有點像百家爭鳴的感覺。每位書籍作者都領導者一群實踐者,這些方法有很多相似之處,但又有細微的差別。

這給同一領域的實踐者也帶來困惑,在談論同一件事時,他們可能拿出不同的物件導向表示方法,這嚴重阻礙了他們對同一件事的理解和交流。

這時候,有人提議,我們統一一下,用相同的標準吧。眾人似乎沒聽到他的呼聲,無人理睬。有一個組織叫OMG(Object Management Group)也嘗試對物件導向進行標準化,但只收到所有方法學家的一封公開抗議信。

Martin Fowler在談到這個情形時,在其著作《UML精粹:標準物件建模語言簡明指南的作者》中講了一則笑話:

A:方法學家和恐怖份子之間有什麼差別呢?

B:恐怖份子可以談判。

raw-image

物件導向表示方法差距巨大

在1995 OOPSLA(Object-Oriented Programming Systems,Languages and Applications)年度會議上,Grady Booch和Jim Rumbaugh首次公開描述了他們合併後的方法,即統一方法文件0.8(Unitied Method)。

經過一系列的各方較量,1997年1月,各方組織一起提交了方法標準的建議書,Rational和其他組織一起協作,發布了UML文檔1.0版本,這也是第一次被叫作統一建模語言。

又經過各方較量的過程,OMG採納1.1版作為官方的OMG標準。又經過一系列修改,UML1.4和UML1.5已經比較成熟,如Rational Rose 2003就是基於這樣的標準而發展出來的。

許多人們在談論UML時,會把創造者的功勞主要歸於Grady Booch、Ivar Jacobson和Jim Rumbaugh,把他們稱為「三友」(Three Amigos)。

當然也有人表示了反對,認為他們在前期做出了一定的貢獻,但在後期OMG委員會的人員做了很多貢獻,而三人中Jim Rumbaugh在後期是唯一做出貢獻的人。

Ⅲ. UML統一了什麼?

方法和表示法方面

在以往出現的方法和表示法方面,UML合併了許多物件導向方法中被普遍接受的概念,對每個概念,UML都給出了清晰的定義、表示法和相關術語。使用UML可以對現有的各種方法建立的模型進行描述,並比原來的方法描述得更好。

軟體週期方面

在軟體開發的生命期方面,UML對開發的要求具有無縫性。開發過程中的不同階段可以採用相同的一整套概念和表示法,在同一個模型中,它們可以混合使用,而不必轉換概念和表示法。這種無縫性對迭代的漸進式軟體開發至關重要。

在應用領域方面

在應用領域方面,UML適用於各種領域的建模,包括大型的、複雜的、即時的、分散的、集中式資料或計算的、嵌入式的系統等。

程式語言和開發平台方面

在實現的程式語言和開發平台方面,UML可應用於運行各種不同的程式實作語言和開發平台的系統。

開發過程方面

在開發過程方面,UML是一種建模語言,不是對開發過程的細節進行描述的工具。就像通用程式設計語言可以進行許多風格的程式設計一樣。

內部概念方面

在內在概念方面,UML特別注意揭示和表達各種概念之間的內在連結。試圖用多種適用於已知和未知情況的辦法來掌握建模中的概念,這個過程會增強對概念及其適用性的理解。這不是統一各種標準的初衷,但卻是統一各種標準最重要的結果之一。

Ⅳ. UML的組成

UML的組成可以使用下圖來說明:

raw-image

UML基本構造區塊與圖形分類

目前,UML的最新版本已發展到了UML2.5版,也從原有的9種類型的圖增加到了13種。有人認為UML本身的複雜性可能超過了軟體建模本身。

以上就是UML的基礎介紹,UML作為軟體工程中不可或缺的建模語言,其發展歷程不僅見證了軟體設計理念的進步,更凸顯了其在促進團隊溝通、優化系統設計、加速開發流程中的關鍵作用。透過本文的基礎介紹,相信你不僅能深刻理解UML的歷史脈絡,更能掌握其在需求分析、系統設計及文件編制等方面的廣泛應用。

建立UML圖→

留言
avatar-img
留言分享你的想法!
avatar-img
ProcessOn的沙龍
3會員
121內容數
分享心智圖與流程圖使用技巧
ProcessOn的沙龍的其他內容
2025/09/10
在商業競爭日益激烈的今天,企業不僅需要優質的產品和服務,還需要深入理解消費者的心理。消費心理學作為研究消費者行為和決策的學科,揭示了許多潛在的心理動機和決策機制。透過掌握這些心理學原理,企業可以優化行銷策略,提升銷售業績,並在市場中佔有優勢。
Thumbnail
2025/09/10
在商業競爭日益激烈的今天,企業不僅需要優質的產品和服務,還需要深入理解消費者的心理。消費心理學作為研究消費者行為和決策的學科,揭示了許多潛在的心理動機和決策機制。透過掌握這些心理學原理,企業可以優化行銷策略,提升銷售業績,並在市場中佔有優勢。
Thumbnail
2025/09/08
串聯與並聯電路圖是電子設計的基礎,也是理解複雜系統(如電力網路、神經網路)的簡化模型。透過掌握其核心特性與繪製方法,工程師可以有效實現從概念驗證到產品落地的全流程。本文將帶你入門了解串聯電路與並聯電路。
Thumbnail
2025/09/08
串聯與並聯電路圖是電子設計的基礎,也是理解複雜系統(如電力網路、神經網路)的簡化模型。透過掌握其核心特性與繪製方法,工程師可以有效實現從概念驗證到產品落地的全流程。本文將帶你入門了解串聯電路與並聯電路。
Thumbnail
2025/09/05
專案進度管理是專案管理中至關重要的一環,它確保專案按時完成,並在預算內達到預期的成果。本文將詳細介紹如何進行專案進度管理,包括制定計劃、監控進度、應對變更以及使用工具和技術來優化流程。
Thumbnail
2025/09/05
專案進度管理是專案管理中至關重要的一環,它確保專案按時完成,並在預算內達到預期的成果。本文將詳細介紹如何進行專案進度管理,包括制定計劃、監控進度、應對變更以及使用工具和技術來優化流程。
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
在這個章節中,我們介紹了HTML的基本概念,包括其作為結構化標記語言的特性、應用領域,以及主要使用者。這些知識為後續的深入學習和實踐奠定了基礎,幫助讀者了解HTML在現代網頁開發中的重要性。
Thumbnail
在這個章節中,我們介紹了HTML的基本概念,包括其作為結構化標記語言的特性、應用領域,以及主要使用者。這些知識為後續的深入學習和實踐奠定了基礎,幫助讀者了解HTML在現代網頁開發中的重要性。
Thumbnail
樣板模式的定義極為簡單,卻是大型系統程式、WEB/APP應用框架的設計核心,完美展現設計模式的價值: 簡單、高效、強大。
Thumbnail
樣板模式的定義極為簡單,卻是大型系統程式、WEB/APP應用框架的設計核心,完美展現設計模式的價值: 簡單、高效、強大。
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News