統一的建模語言
統一建模語言( UML )是一種通用的視覺建模語言,旨在提供一種可視化系統設計的標準方法。
UML為許多類型的圖表提供了標準符號,可以將其大致分為三個主要組:行為圖,互動圖和結構圖。
UML的創建最初是出於標準化不同符號系統和軟件設計方法的願望而激發的。它是在1994年至1995年在理性軟件上開發的,直到1996年,它們的進一步發展。
1997年,UML被對像管理小組(OMG)採用,此後一直由該組織管理。 2005年,國際標準化組織(ISO)和國際電子技術委員會(IEC)也出版了UML作為ISO/IEC 19501標準。從那時起,該標准進行了定期修訂,以涵蓋UML的最新修訂。
在軟件工程中,大多數從業人員不使用UML,而是製作非正式的手繪圖。但是,這些圖通常包括UML的元素。
歷史
在UML 1.0之前
自1990年代下半葉以來,UML一直在發展,並源於1980年代末和1990年代初開發的面向對象的編程方法。時間軸(參見圖像)顯示了面向對象的建模方法和符號的歷史記錄的亮點。
它最初基於Booch方法的符號,對像模型技術(OMT)和面向對象的軟件工程(OOSE),並將其集成到單個語言中。
理性軟件公司於1994年從通用電氣公司僱用了詹姆斯·倫波(James Rumbaugh) ,此後,該公司成為了當天最受歡迎的兩種最受歡迎的面向對象建模方法的來源:Rumbaugh的對像模型技術(OMT)和Grady Booch的方法。伊瓦爾·雅各布森(Ivar Jacobson)很快得到了他們的努力,這是面向對象的軟件工程(OOSE)方法的創建者,他於1995年在Rational中加入了他們。
UML 1.x
在這三個(Rumbaugh,Jacobson和Booch)的技術領導下,一個名為UML Partners的財團成立了1996年,以完成統一的建模語言(UML)規範,並將其提交給對像管理小組(OMG )進行標準化。該合作夥伴關係還包含其他有關方面(例如HP , DEC , IBM和Microsoft )。聯盟於1997年1月向OMG提出了UML Partners的UML 1.0草案。在同月,UML合作夥伴組成了一個小組,旨在定義由Cris Kobryn主持並由Ed Eykholt管理的語言構造的確切含義,以最終確定規範並將其與其他標準化工作集成在一起。這項工作的結果是UML 1.1,於1997年8月提交了OMG,並於1997年11月由OMG通過。
首次發行後,成立了一個工作組來改善語言,該語言發布了幾個次要修訂,即1.3、1.4和1.5。
它產生的標準(以及原始標準)被認為是模棱兩可和不一致的。
基數符號
與數據庫Chen,Bachman和ISO ER圖一樣,類模型也被指定用於使用“ look-across”紅衣主教,即使有幾位作者( Merise ,Elmasri&Navathe等)更喜歡相同的角色或“尋找角色”以及最低和最大紅衣主教。最近的研究人員(Feinerer,Dulleea等人)表明,當將UML和ER圖所使用的“外觀”技術嚴格大於2時應用於n -arry關係時,效率較低,相干性較低。
費納雷說:“如果我們在UML協會使用的Look-across語義下運作,就會出現問題。Hartmann研究了這種情況,並顯示瞭如何以及為什麼不同的轉換失敗。”和:“正如我們將在接下來的幾頁中看到的那樣,外觀解釋引入了幾個困難,這些困難阻止了簡單機制從二進制的關聯擴展。”
UML 2
UML 2.0主要修訂替換了2005年的1.5版,該版本是通過擴大財團開發的,以進一步改善語言,以反映其功能使用的新體驗。
儘管UML 2.1從未作為正式規範發布,但版本2.1.1和2.1.2於2007年出現,其次是2009年2月2.2日。UML2.3於2010年5月正式發布。UML2.4.1於2011年8月正式發布。 UML 2.5於2012年10月作為“進度”版本發布,並於2015年6月正式發布。正式版本2.5.1於2017年12月採用。
UML 2.x規格有四個部分:
- 定義圖表符號和語義的上層結構及其模型元素
- 定義上層結構所基於的核心元模型的基礎架構
- 定義模型元素規則的對象約束語言(OCL)
- UML圖互換定義瞭如何交換UML 2圖佈局
在UML 2.4.1之前,這些標準的最新版本是:
- UML上層建築2.4.1版本
- UML基礎架構版本2.4.1
- OCL版本2.3.1
- UML圖Interchange版本1.0。
自2.5版以來,已簡化了UML規範(沒有上層建築和基礎架構),現在這些標準的最新版本是:
- UML規範2.5.1
- OCL版本2.4
修訂工作組將繼續更新和改進,他們解決了該語言的任何問題。
設計
UML提供了一種在圖中可視化系統架構藍圖的方法,包括:
儘管最初用於面向對象的設計文檔,但UML已擴展到較大的設計文檔集(如上所述),並在許多情況下被發現。
軟件開發方法
UML本身不是開發方法。但是,它旨在與當時面向對象的軟件開發方法兼容,例如OMT , BOOCH方法,對象,尤其是RUP ,最初打算在合理軟件開始工作時使用它。
造型
區分系統模型和系統圖集很重要。圖是系統模型的部分圖形表示。一組圖不需要完全覆蓋模型並刪除圖不會改變模型。該模型還可能包含驅動模型元素和圖表的文檔(例如書面用例)。
UML圖代表系統模型的兩個不同視圖:
- 靜態(或結構)視圖:使用對象,屬性,操作和關係強調系統的靜態結構。它包括類圖和複合結構圖。
- 動態(或行為)視圖:通過顯示對象之間的協作以及對象內部狀態的更改來強調系統的動態行為。此視圖包括序列圖,活動圖和狀態機圖。
可以通過使用XML元數據交換(XMI)格式在UML工具之間交換UML模型。
在UML中,行為建模的關鍵工具之一是由OOSE引起的用例模型。用例是指定係統所需用法的一種方式。通常,它們用於捕獲系統的要求,即係統應該做什麼。
圖
UML 2具有多種類型的圖表,分為兩類。某些類型代表結構信息,其餘類型代表了一般的行為類型,包括一些代表相互作用不同方面的行為。這些圖可以在層次上分類,如以下類圖所示:
這些圖可能包含註釋或註釋,以說明用法,約束或意圖。
結構圖
結構圖代表系統的靜態方面。它強調了要建模的系統中必須存在的事物。由於結構圖代表結構,因此它們廣泛用於記錄軟件系統的軟件體系結構。例如,組件圖描述瞭如何將軟件系統分為組件,並顯示這些組件之間的依賴項。
行為圖
行為圖代表系統的動態方面。它強調了正在建模的系統中必鬚髮生的事情。由於行為圖說明了系統的行為,因此廣泛使用它們來描述軟件系統的功能。例如,活動圖描述了系統中組件的業務和運營分步活動。
互動圖
互動圖(行為圖的一個子集)強調了要建模的系統中事物之間的控制和數據流。例如,序列圖顯示了對像如何相互交流有關消息序列。
元模型
對像管理組(OMG)開發了一個元模型體系結構來定義UML,稱為Meta-Object設施。 MOF被設計為四層架構,如右圖所示。它在頂部提供了一個稱為M3層的元模型。該M3模型是Meta-Object設施用於構建元模型的語言,稱為M2模型。
第2層元對象設施模型的最突出的例子是UML元模型,它描述了UML本身。這些M2模型描述了M1層的元素,因此描述了M1模型。例如,這些是用UML編寫的模型。最後一層是M0層或數據層。它用於描述系統的運行時實例。
可以使用稱為刻板印象的機制擴展元模型。布萊恩·亨德森·塞勒斯(Brian Henderson-Sellers)和塞薩爾·岡薩雷斯·佩雷斯(Cesar Gonzalez-Perez)在“ UML 1.x和2.0中的刻板印像機制”中批評這是不足/站不住的。
採用
早在2013年,UML就在許多情況下被OMG銷售,但主要針對的是成功開發的軟件開發。
它有時被視為設計銀彈的設計,這導致了問題。 UML濫用包括過度使用(使用該系統的每個部分設計,這是不必要的),並假設新手可以使用它來設計。
它被認為是一種大型語言,具有許多結構。有些人(包括雅各布森)認為UML的規模阻礙了學習(並因此使用)。
由於缺乏使用,Visual Studio女士在2016年對UML的支持下降。
根據Google趨勢,UML自2004年以來一直在穩步下降。