軟體工程/UML 簡介
統一建模語言是一種標準化的通用建模語言,如今由物件管理組織 (OMG) 作為事實上的行業標準進行管理。 [1] UML 包含一組圖形表示技術,用於建立軟體密集型系統的視覺化模型。 [2]
UML 由 James Rumbaugh、Grady Booch 和 Ivar Jacobson 發明。1994 年,Rational Software Corporation 從通用電氣公司聘請了 James Rumbaugh,該公司成為當時兩種最流行的面向物件建模方法的來源:Rumbaugh 的面向物件建模技術 (OMT),更適合面向物件分析 (OOA),以及 Grady Booch 的 Booch 方法,更適合面向物件設計 (OOD)。他們很快得到了 Ivar Jacobson 的協助,他是面向物件軟體工程 (OOSE) 方法的建立者。Jacobson 於 1995 年加入 Rational,此前他的公司 Objectory AB [3] 被 Rational 收購。
統一建模語言 (UML) 用於指定、視覺化、修改、構建和記錄正在開發的面向物件軟體密集型系統的工件。 [4] UML 提供了一種標準方式來視覺化系統的架構藍圖,包括活動、參與者、業務流程、資料庫模式、元件、程式語言語句和可重用軟體元件等元素。 [5]
UML 結合了資料建模 (實體關係圖)、業務建模 (工作流)、物件建模和元件建模的技術。它可以與所有流程一起使用,貫穿整個軟體開發生命週期,並且跨越不同的實現技術。 [6]
區分 UML 模型和系統的一組圖表很重要。圖表是系統模型的部分圖形表示。該模型還包含驅動模型元素和圖表的文件。
UML 圖表代表了系統模型的兩種不同檢視 [7]
- 靜態(或結構)檢視:使用物件、屬性、操作和關係來強調系統的靜態結構。結構檢視包括類圖和組合結構圖。
- 動態(或行為)檢視:透過顯示物件之間的協作以及物件內部狀態的變化來強調系統的動態行為。此檢視包括時序圖、活動圖和狀態機圖。
在 UML 2.2 中,有 14 種類型的圖表,分為兩類。 [8] 七種圖表型別代表結構資訊,另外七種代表一般行為型別,包括四種代表互動的不同方面。這些圖表可以按照層次結構進行分類,如下面的圖表所示

結構圖強調了建模系統中必須存在的事物。由於結構圖代表了結構,因此它們被廣泛用於記錄軟體系統的軟體架構。
- 類圖:透過顯示系統的類、它們的屬性以及類之間的關係來描述系統的結構。
- 元件圖:描述軟體系統如何被拆分為元件,並顯示這些元件之間的依賴關係。
- 組合結構圖:描述類的內部結構以及這種結構實現的協作。
- 部署圖:描述系統實現中使用的硬體以及部署在硬體上的執行環境和工件。
- 物件圖:顯示特定時間點建模系統的結構的完整檢視或部分檢視。
- 包圖:透過顯示這些分組之間的依賴關係來描述系統如何被拆分為邏輯分組。
- 概要圖:在元模型級別運作,將構造型顯示為具有 <<構造型>> 構造型的類,將概要檔案顯示為具有 <<概要檔案>> 構造型的包。擴充套件關係(帶封閉實心箭頭頭的實線)表示給定構造型擴充套件的元模型元素。
行為圖強調了建模系統中必須發生的事情。由於行為圖說明了系統的行為,因此它們被廣泛用於描述軟體系統的功能。
- 用例圖:根據參與者、他們的目標(以用例表示)以及這些用例之間的任何依賴關係來描述系統提供的功能。
- 活動圖:描述系統中元件的業務和操作步驟流程。活動圖顯示了整體控制流程。
- 狀態機圖:描述系統的狀態和狀態轉換。
互動圖是行為圖的一個子集,強調了建模系統中事物的控制流程和資料流
- 時序圖:以訊息序列的形式顯示物件如何相互通訊。還指示了物件相對於這些訊息的生命週期。
- 通訊圖:以順序訊息的形式顯示物件或部件之間的互動。它們代表了從類圖、時序圖和用例圖中獲取的資訊的組合,描述了系統的靜態結構和動態行為。
- 互動概述圖:提供一個概述,其中節點代表通訊圖。
- 時序圖:一種特定的互動圖型別,重點關注時間約束。

要繪製 UML 圖表,您只需要一支鉛筆和一張紙。但是,對於軟體工程師來說,這似乎有點過時,因此我們大多數人都會使用工具。最簡單的工具只是繪圖程式,如 Microsoft Visio 或 Dia。這樣生成的圖表看起來很漂亮,但實際上並沒有那麼有用,因為它們不包括程式碼生成功能。
因此,在決定使用 UML 建模工具(有時也稱為 CASE 工具)時 [9],您應該確保它允許進行程式碼生成,甚至更好,它還應該允許進行逆向工程。兩者結合起來也稱為雙向工程。任何嚴肅的工具都應該能夠做到這一點。最後,UML 模型可以透過使用 XMI 交換格式在 UML 工具之間交換,因此您應該檢查您選擇的工具是否支援這一點。
由於 Rational Software Corporation 可以說是“發明”了 UML,因此最知名的 UML 建模工具是 IBM Rational Rose。其他工具包括 Rational Rhapsody、Visual Parardigm、MagicDraw UML、StarUML、ArgoUML、Umbrello、BOUML、PowerDesigner、Visio 和 Dia。一些流行的開發環境也提供 UML 建模工具,例如 Eclipse、NetBeans 和 Visual Studio。 [10]
- ↑ http://www.omg.org/ 物件管理組織
- ↑ http://en.wikipedia.org/w/index.php?title=Unified_Modeling_Language&oldid=413683022 統一建模語言
- ↑ Objectory AB,被稱為 Objectory System,由 Ivar Jacobson 於 1987 年創立。1991 年,它被收購併成為愛立信的子公司。
- ↑ 維基百科:FOLDOC (2001)。 統一建模語言 最後更新時間為 2002 年 1 月 3 日。訪問日期為 2009 年 2 月 6 日。
- ↑ Grady Booch,Ivar Jacobson 和 Jim Rumbaugh (2000) OMG 統一建模語言規範,版本 1.3 第一版:2000 年 3 月。檢索日期為 2008 年 8 月 12 日。
- ↑ Satish Mishra (1997)。 "視覺化建模與統一建模語言 (UML) : UML 簡介"。Rational Software Corporation。訪問日期為 2008 年 11 月 9 日。
- ↑ Jon Holt 電氣工程師學會 (2004)。系統工程的 UML:觀測輪子 IET,2004,ISBN 0863413544。第 58 頁
- ↑ UML 超結構規範版本 2.2。OMG,2009 年 2 月。
- ↑ http://en.wikipedia.org/wiki/Computer-aided_software_engineering 計算機輔助軟體工程
- ↑ http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools 統一建模語言工具列表