統一建模語言(UML,英語:Unified Modeling Language)是非專利的第三代建模和規約語言。UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、面向對象的、軟件密集系統的製品的開放方法。UML展示了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行建模方面,特別是在軟件架構層次已經被驗證有效。php
UML集成了Booch,OMT和面向對象軟件工程的概念,將這些方法融合爲單一的,通用的,而且能夠普遍使用的建模語言。UML打算成爲能夠對併發和分佈式系統的標準建模語言。程序員
UML並非一個工業標準,但在Object Management Group的主持和資助下,UML正在逐漸成爲工業標準。OMG以前曾經呼籲業界向其提供有關對象導向的理論及實現的方法,以便製做一個嚴謹的軟件建模語言(Software Modeling Language)。有不少業界的領袖亦真誠地迴應OMG,幫助她創建一個業界標準。架構
在UML系統開發中有三個主要的模型:併發
區分UML模型和UML圖是很是重要的,UML圖,包括用例圖、協做圖、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中信息的圖形表達方式,可是UML模型獨立於UML圖存在。XML的當前版本只提供了模型信息的交換,而沒有提供圖信息的交換。分佈式
UML使用一套與Java語言或其餘面嚮對象語言等價物,同時也是本體論等價物的圖形標記。oop
UML並非一個方法學,也不要求使用一個方法學,可是UML對於Rational 統一過程來講是必不可少的。spa
UML 2.2中一共定義了14種圖示(diagrams)。爲方便了解,可分類成右側的結構。3d
結構性圖形(Structure diagrams)強調的是系統式的建模:xml
靜態圖(static diagram)對象
實現圖(implimentation diagram)
剖面圖(Profile diagram)
複合結構圖(Composite structure diagram)
行爲式圖形(Behavior diagrams)強調系統模型中觸發的事件:
交互性圖形(Interaction diagrams),屬於行爲圖形的子集合,強調系統模型中的資料流程:
通訊圖(Communication diagram)
交互概述圖(Interaction overview diagram,UML 2.0)
時序圖(Sequence diagram)
時間圖(UML Timing Diagram,UML 2.0)
協定狀態機是狀態機的子變種。它用來塑造網路通信協定模型。
UML並不限定UML要素型別非得是某圖形上的型別。通常來講,每一個UML要素大約會出如今圖的全部型別。這種彈性在UML 2.0部分被限定。
爲了要保持工程圖的傳統,在您的UML圖上加註用途、約束、或意圖永遠無傷大雅。
UML 2爲了符合模型驅動架構(Model Driven Architecture)的需求作了大幅度的修改除在圖形基礎上擴充及變化了部份的展示方式外,也增長了一些圖形標準元件,比前一版多出了由循序圖與互動圖所混合而成的互動概圖(Interaction Overview Diagram)、強調時間點的時序圖(Timing Diagram)與合成結構圖(Composite Structure Diagram),此外,在UML2中,UML1合做圖轉變爲通信圖(Communication Diagram),且在循序圖中也添加了互動框(Interaction Frame)的概念,還有增長一些運算子(如sd、loop、alt等)。同時,UML2支援模型驅動架構(MDA)倡議,提供穩定的基礎架構,允許軟件開發程序增添自動化做業。此外,MDA把大型的系統分解成幾個元件模型,並與其餘模型保持連結,使得UML更加精確。
UML歷來源中使用至關多的概念。咱們將之定義於統一建模語言術語匯表。下面僅列表明性的概念。
對於結構而言
對於行爲而言
對於關係而言
聚合(Aggregate):是表示總體與部分的一類關聯關係,是「弱」的包含(has a)關係,成分類別能夠不依靠聚合類別而單獨存在。例如,池塘與(池塘中 的)鴨子。再例如教授與課程就是一種聚合關係。彙集可能不涉及兩個以上的類別。圖形以空心的菱形與實線來表示。
其餘概念
構造型—這規範符號應用到的模型
多重性—多重性標記法與資料庫建模基數對應,例如:1, 0..1, 1..*
角色