複製鏈接
請複製以下鏈接發送給好友

統一建模語言

鎖定
統一建模語言(Unified Modeling Language,UML)是一種為面向對象系統的產品進行説明、可視化和編制文檔的一種標準語言,是非專利的第三代建模和規約語言。UML是面向對象設計的建模工具,獨立於任何具體程序設計語言。 [1] 
中文名
統一建模語言
外文名
UML
別    名
標準建模語言
創作年代
1997年
作    用
支持模型化和軟件開發
產    源
OOA&D,OOAD

目錄

統一建模語言簡介

軟件建模語言 軟件建模語言
UML作為一種統一的軟件建模語言具有廣泛的建模能力。UML是在消化、吸收、提煉至今存在的所有軟件建模語言的基礎上提出的,集百家之所長,它是軟件建模語言的集大成者。UML還突破了軟件的限制,廣泛吸收了其他領域的建模方法,並根據建模的一般原理,結合了軟件的特點,因此具有堅實的理論基礎和廣泛性。UML不僅可以用於軟件建模,還可以用於其他領域的建模工作。 [1] 
UML立足於對事物的實體、性質、關係、結構、狀態和動態變化過程的全程描述和反映。UML可以從不同角度描述人們所觀察到的軟件視圖,也可以描述在不同開發階段中的軟件的形態。UML可以建立需求模型、邏輯模型、設計模型和實現模型等,但UML在建立領域模型方面存在不足,需要進行補充。 [1] 
作為一種建模語言,UML有嚴格的語法和語義規範。UML建立在元模型理論基礎上,包括4層元模型結構,分別是基元模型、元模型、模型和用户對象。4層結構層層抽象,下一層是上一層的實例。UML中的所有概念和要素均有嚴格的語義規範。 [1] 
UML採用一組圖形符號來描述軟件模型,這些圖形符號具有簡單、直觀和規範的特點,開發人員學習和掌握起來比較簡單。所描述的軟件模型,可以直觀地理解和閲讀,由於具有規範性,所以能夠保證模型的準確、一致。 [1] 

統一建模語言作用

概括起來説,UML主要有以下作用: [2] 
(1)為軟件系統建立可視化模型。
UML符號具有良好的語義,不會引起歧義;基於UML的可視化模型,使系統結構直觀、易於理解;使用UML進行軟件系統的模型不但有利於系統開發人員和系統用户的交流,還有利於系統維護。模型是系統的藍圖,它可以對開發人員的規劃進行補充,模型可以幫助開發人員規劃要建的系統。有了正確的模型就可以實現正確的系統設計,保證用户的要求得到滿足,系統能在需求改變時站得住腳。對於一個軟件系統,模型就是開發人員為系統設計的一組視圖。這組視圖不僅描述了用户需要的功能,還描述了怎樣去實現這些功能。 [2] 
(2)為軟件系統建立構件。
UML不是面向對象的編程語言,但它的模型可以直接對應到各種各樣的編程語言。例如,它可以使用代碼生成器工具將UML模型轉換為多種程序設計語言代碼,如可生成C++,XML,DTDJAVAVisual basic等語言的代碼,或使用反向生成器工具將程序源代碼轉換為UML;甚至還可以生成關係數據庫中的表。 [2] 
(3)為軟件系統建立文檔。
UML可以為系統的體系結構及其所有細節建立文檔。不同的UML模型圖可以作為項目不同階段的軟件開發文檔。 [2] 

統一建模語言模型

UML系統開發中有三個主要的模型: [3] 
  • 功能模型:從用户的角度展示系統的功能,包括用例圖。 [3] 
  • 對象模型:採用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括類別圖、對象圖。 [3] 
  • 動態模型:展現系統的內部行為。包括序列圖,活動圖,狀態圖。 [3] 

統一建模語言組成

UML由模型元素(Model Element)、圖(Diagram)、視圖(View)和通用機制(General Mechanism)等幾個部分組成。

統一建模語言模型元素

代表面向對象中的類、對象、消息和關係等概念,是構成圖的最基本的常面向對象系統分析與設計方法用概念。 [2] 

統一建模語言

是模型元素集的圖形表示,通常是由弧(關係)和頂點(其他模型元素)相互連接構成的。 [2] 

統一建模語言視圖

是表達系統的某一方面的特徵的UMI,建模元素的子集,由多個圖構成,是在某一個抽象層上,對系統的抽象表示。 [2] 

統一建模語言通用機制

用於表示其他信息,比如註釋、模型元素的語義等。另外,UML還提供擴展機制,使UML語言能夠適應一個特殊的方法(或過程),或擴充至一個組織或用户。 [2] 

統一建模語言圖例

區分UML模型和UML圖是非常重要的,UML圖,包括用例圖、協作圖、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中信息的圖形表達方式,但是UML模型獨立於UML圖存在。UML的當前版本只提供了模型信息的交換,而沒有提供圖信息的交換。 [3] 
UML使用一套與Java語言或其他面嚮對象語言等價物,同時也是本體論等價物的圖形標記。 [3] 
UML並不是一個方法學,也不要求使用一個方法學,但是UML對於Rational統一過程來説是必不可少的。 [3] 
下面UML中的主要圖例的功用做一個簡單介紹: [3] 
(1)用例圖
描述角色以及角色與用例之間的連接關係。説明是誰要使用系統,以及他們使用該系統可以做些什麼。一個用例圖包含了多個模型元素,如系統、參與者和用例,並且顯示了這些元素之間的各種關係,如泛化、關聯和依賴。 [3] 
(2)類圖
類圖 類圖
類圖是描述系統中的類,以及各個類之間的關係的靜態視圖。能夠讓開發人員在正確編寫代碼以前對系統有一個全面的認識。類圖是一種模型類型,確切地説,是一種靜態模型類型。類圖表示類、接口和它們之間的協作關係。 [3] 
(3)對象圖
與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關係,而是對象之間的關係。 [3] 
(4)活動圖
描述用例要求所要進行的活動,以及活動間的約束關係,有利於識別並行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。 [3] 
(5)狀態圖
描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件,可以捕獲對象、子系統和系統的生命週期。它可以告知一個對象可以擁有的狀態,並且事件(如消息的接收、時間的流逝、錯誤、條件變為真等)會怎麼隨着時間的推移來影響這些狀態。一個狀態圖應該連接到所有具有清晰的可標識狀態和複雜行為的類;該圖可以確定類的行為,以及該行為如何根據當前的狀態變化,也可以展示哪些事件將會改變類的對象的狀態。狀態圖是對類圖的補充。 [3] 
(6)序列圖(時序圖)
序列圖是用來顯示參與者如何以一系列順序的步驟與系統的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調消息是如何在對象之間被髮送和接收的。 [3] 
(7)協作圖
和序列圖相似,顯示對象間的動態合作關係。可以看成是類圖和順序圖的交集,協作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調時間和順序,則使用序列圖;如果強調上下級關係,則選擇協作圖;這兩種圖合稱為交互圖。 [3] 
(8)構件圖(組件圖)
構件圖 構件圖
描述代碼構件的物理結構以及各種構建之間的依賴關係。用來建模軟件的組件及其相互之間的關係,這些圖由構件標記符和構件之間的關係構成。在組件圖,構件時軟件單個組成部分,它可以是一個文件,產品、可執行文件和腳本等。 [3] 
(9)部署圖(配置圖)
用於建模系統的物理部署。例如,計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發人員、系統集成人員和測試人員。部署圖用於表示一組物理結點的集合及結點間的相互關係,從而建立了系統物理層面的模型。 [3] 
參考資料
  • 1.    錢雪忠,王月海主編;陳國俊,徐華,錢瑛副主編.數據庫原理及應用:北京郵電大學出版社,2015.04:第209頁
  • 2.    李香菊,孫麗,謝修娟,操鳳萍主編;朱林副主編.軟件工程課程設計教程:北京郵電大學出版社,2016.01:第42頁
  • 3.    陳建國,冉陳鍵,李礁主編.C#程序設計及項目實踐:浙江大學出版社,2014.02:第42頁