全知全能-UML2.0-概述

原文鏈接:https://wiki.mbalib.com/wiki/UML

爲了能詳細的剖析UML,這裏採用6W2H分解法,根據目的和問題一個一個去解決UML是什麼,能幹什麼,有什麼好處,怎麼幹,以及用什麼來UML。

先把提綱列在這裏。What,Which,Why,Who,When,Where,How,How much.

What:

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

UML集成了Booch,OMT和麪向對象軟件工程的概念,將這些方法融合爲單一的,通用的,並且可以廣泛使用的建模語言。UML打算成爲可以對併發和分佈式系統的標準建模語言。

UML並不是一個工業標準,但在Object Management Group的主持和資助下,UML正在逐漸成爲工業標準。OMG 之前曾經呼籲業界向其提供有關物件導向的理論及實現的方法,以便製作一個嚴謹的軟體塑模語言(software modeling language)。有很多業界的領袖亦真誠地迴應OMG,幫助她建立一個業界標準。

說了這麼多其實是爲了讓自己的思維鋪展開來,全面去感受UML,但UML的最終目的是爲了建模。模就是模型,就像我們平時看到的車模,船模,以及各種武器模型,就是以真實的事物爲基礎,在這個基礎上爲了突出該事物的某些或全部特點而製作出的一個類似的東西。通常這個模型裏比真實的物品或器具要小,通常也未必具備該真實物品的實際功能,但在外形方面還是有很多相似之處的。

這在軟件開發之中同樣適用,只不過這個相似的地方是在軟件的某些框架結構或者數據信息的流向等,用肉眼可見的圖表表示出來,讓人在視覺上對該軟件項目或功能在輪廓及結構上有相應的瞭解和認識。但實際上建模所產生的事物,並不具備實際項目的功能,但不能阻止我們在該模型的基礎之上思路更加清晰的進行軟件開發和項目管理。

在某種程度上,可以說UML就像軟件開發的圖紙一樣。

UML的模型:

UML模型的分類:鑑於軟件系統開發從時間和空間的複雜性,UML本身也劃分了不同的模型對應不同的軟件開發的不同時期建模需求。其中主要分爲三類模型:

  • 功能模型:從用戶的角度展示系統的功能,包括用例圖。
  • 對象模型:採用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括類圖。
  • 動態模型:展現系統的內部行爲。包括序列圖,活動圖,狀態圖。

我們平時接觸的都是UML的各種圖,但是在這裏區分UML模型和UML圖是非常重要的。UML圖,包括用例圖、協作圖(通訊圖)、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中信息的圖形表達方式,但是UML模型獨立於UML圖存在。XML的當前版本只提供了模型信息的交換,而沒有提供圖信息的交換。

UML使用一套與Java語言或其他面嚮對象語言等價物,同時也是本體論等價物的圖形標記。

UML並不是一個方法學,也不要求使用一個方法學,但是UML對於Rational 統一過程來說是必不可少的。

UML圖形:

UML2.0中一共定義了13種圖示(diagrams)。爲方便了解,可分類上面圖形中的結構。

結構性圖形(Structure diagrams)強調的是系統式的建模:

  • 類別圖(Class diagram)
  • 元件圖(Component diagram)
  • 複合結構圖(Composite Structure diagram)
  • 部署圖(Deployment diagram)(實施圖)
  • 包圖(Package diagram)

行爲式圖形(behavior diagrams)強調系統模型中觸發的事件:

  • 活動圖(Activity diagram)
  • 狀態機圖(State Machine diagram)
  • 使用個案圖(Use Case diagram)(用例圖)

溝通性圖形(Interaction diagrams),屬於行爲圖形的子集合,強調系統模型中的資料流程:

  • 通信圖(Communication diagram)(協作圖)
  • 交互概述圖(Interaction overview diagram)(UM2.0)
  • 循序圖(Sequence diagram)
  • 時間圖(Timing diagram)(UML2.0)

協定狀態機是狀態機的子變種。它用來素在網路通訊協定模型。

UML並不限定UML要素型別非得是某圖形上的型別。一般來說,每個UML要素大約會出現在圖的所有型別。這種彈性在UML2.0部分被限定。

爲了要保持工程圖的傳統,在您的UML圖上加註用途、約束或意圖永遠無傷大雅。

UML的相關概念:

UML從來源中使用相當多的概念。我們將只定義於同一建模語言術語匯表。下面僅列代表性的概念。

  • 對於結構而言

執行者,屬性,類,元件,接口,對象,包

  • 對於行爲而言

活動,事件,訊息,方法,操作,狀態,用例

  • 對於關係而言

聚合,關聯,組合,相依,廣義化(而繼承)

  • 其他概念
  1. 構造型--這規範符號應用到的模型
  2. 多重性--多重性標記法與資料庫塑模基數對應,例如:1,0..1,1..*
  3. 角色
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章