統一建模語言(UML,Unified Modeling Language)

  • Something about UML:

統一建模語言UML英語Unified Modeling Language)是非專利的第三代建模規約語言。UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、面向對象的、軟件密集系統的製品的開放方法。UML展示了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行建模方面,特別是在軟件架構層次已經被驗證有效。php

UML集成了BoochOMT面向對象軟件工程的概念,將這些方法融合爲單一的,通用的,而且能夠普遍使用的建模語言。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)強調系統模型中觸發的事件:

活動圖(Activity diagram)

狀態圖(State Machine diagram)

用例圖(Use Case Diagram)

交互性圖形(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歷來源中使用至關多的概念。咱們將之定義於統一建模語言術語匯表。下面僅列表明性的概念。

對於結構而言

執行者屬性元件接口對象

對於行爲而言

活動(UML)事件(UML)消息(UML)方法(UML)操做(UML)狀態(UML)用例(UML)

對於關係而言

 聚合(Aggregate):是表示總體與部分的一類關聯關係,是「弱」的包含(has a)關係,成分類別能夠不依靠聚合類別而單獨存在。例如,池塘與(池塘中   的)鴨子。再例如教授課程就是一種聚合關係。彙集可能不涉及兩個以上的類別。圖形以空心的菱形與實線來表示。

關聯( Association)表明一個家族的聯繫。 關聯能夠命名,並結束一個關聯能夠飾以角色名稱,全部權指標,多重性,可視性,以及其餘屬性。目前定義有五種不一樣類型的關聯。雙向(Bi-directional)和單向(uni-directional)的關聯是最多見的。
組合 (Composition):是一類「強」的總體與部分的包含關係。成分類別必須依靠合成類別而存在。合成類別徹底擁有成分類別,負責建立、銷燬成分類別。例如汽車與化油器,又例如公司與公司部門就是一種組成關係。圖形以實心的菱形與實線表示。
相依:
廣義化/繼承 (Generalize :又稱通常化、一般化、廣泛化、概化,是指將事物的定義進行修改或者補充以使其適用於更加大的範圍。 一個將事物廣義化的簡單例子是歸類。

其餘概念

構造型—這規範符號應用到的模型

多重性—多重性標記法與資料庫建模基數對應,例如:1, 0..1, 1..*

角色

相關文章
相關標籤/搜索