統一建模語言

出自Local Chinese Wikipedia
(重新導向自UML
跳至導覽 跳至搜尋

Template:NoteTA 腳本錯誤:沒有「redirect hatnote」這個模塊。

File:UML logo.svg
UML的標誌

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

這個語言由葛來迪·布區伊瓦爾·雅各布森詹姆士·蘭寶於1994年至1995年間,在Template:Link-en公司中開發,於1996年又進一步發展。UML集成了Template:LeTemplate:Le面向對象程序設計的概念,將這些方法融合為單一的,通用的,並且可以廣泛使用的建模語言。UML打算成為可以對並發和分佈式系統的標準建模語言。

1997年,UML被對象管理組織接納為標準,並在此之後受該組織管理。2005年,UML被國際標準化組織接納為一種標準[1],自此,該標準被定期修訂以涵蓋UML的最新版本[2]。然而,在軟件工程中,大多數從業者不使用UML,而是產生非正式的手繪圖;不過,這些圖例中仍往往包括UML的元素[3]Template:Rp

模型[編輯]

File:OO-historie.jpg
面向對象分析的歷史

在UML系統開發中有三個主要的模型:

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

區分UML模型和UML圖是非常重要的,UML圖,包括用例圖、協作圖、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中信息的圖形表達方式,但是UML模型獨立於UML圖存在。UML的當前版本只提供了模型信息的交換,而沒有提供圖信息的交換。

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

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

圖形[編輯]

File:UML diagrams overview.svg
UML圖示結構
File:UML Use Case diagram.svg
使用個案圖實例
File:UML state diagram.png
狀態圖實例

UML 2.2中一共定義了14種圖示。為方便了解,可分類成右側的結構。

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

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

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

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從來源中使用相當多的概念。下面僅列代表性的概念。

對於結構而言

執行者屬性元件接口對象

對於行為而言

活動Template:Le消息方法Template:Le用例

對於關係而言

聚合關聯組合相依廣義化(或繼承)。

其他概念

File:UML Diagrams.jpg
各式UML

UML應用程式[編輯]

開源/自由軟件[編輯]

參見[編輯]

參考文獻[編輯]

Template:Reflist

外部連結[編輯]

Template:Sister project

Template:- Template:ISO Template:UML Template:數據模型 Template:軟件工程 Template:Authority control