統(tǒng)一建模語(yǔ)言(UML,英語(yǔ):Unified Modeling Language)也稱作標(biāo)準(zhǔn)建模語(yǔ)言,由一個(gè)叫OMG的組織于1997年提出,旨在為開發(fā)團(tuán)隊(duì)提供一種標(biāo)準(zhǔn)通用的設(shè)計(jì)語(yǔ)言來(lái)開發(fā)和構(gòu)建計(jì)算機(jī)應(yīng)用。它通過統(tǒng)一的表示方法,使得不同知識(shí)背景的領(lǐng)域?qū)<遥到y(tǒng)分析、設(shè)計(jì)、開發(fā)人員以及用戶能夠更為方便的交流問題。通過使用UML,團(tuán)隊(duì)人員能夠閱讀和交流系統(tǒng)架構(gòu)和設(shè)計(jì)規(guī)劃–就像建筑工人多年來(lái)所使用的建筑設(shè)計(jì)圖一樣。UML以融合了多種面向?qū)ο蠼7椒?,?jiǎn)潔的圖形符號(hào),直觀而強(qiáng)大的表達(dá)能力,得到了工業(yè)界和學(xué)術(shù)界的廣泛認(rèn)可。可以說(shuō),UML已成為了實(shí)際上的工業(yè)標(biāo)準(zhǔn),目前最新的版本是UML 2.0。
UML模型
在UML系統(tǒng)開發(fā)中有三個(gè)主要的模型:
- 功能模型:從用戶的角度展示系統(tǒng)的功能,包括用例圖。
- 對(duì)象模型:采用對(duì)象,屬性,操作,關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和基礎(chǔ),包括類別圖、對(duì)象圖。
- 動(dòng)態(tài)模型:展現(xiàn)系統(tǒng)的內(nèi)部行為。包括序列圖,活動(dòng)圖,狀態(tài)圖。
UML圖
UML提供了多種類型的模型描述圖(diagram),在交流和開發(fā)過程中使用這些圖能使得開發(fā)中的應(yīng)用程序的更易理解。當(dāng)然,UML的內(nèi)涵遠(yuǎn)不只是這些模型描述圖,但是對(duì)于一般應(yīng)用場(chǎng)合,這些圖對(duì)這門語(yǔ)言及其用法背后的基本原理提供了很好的介紹。通過把標(biāo)準(zhǔn)的UML圖放進(jìn)工作產(chǎn)品中,精通UML的人員就更加容易加入該項(xiàng)目并迅速進(jìn)入角色。最常用的UML圖包括:用例圖、類圖、序列圖、狀態(tài)圖、活動(dòng)圖、組件圖和部署圖等。UML的視圖通常被分為四類:

一、用例圖:(用于建立需求模型)
用例圖展現(xiàn)了一組用例、參與者(actor)以及它們之間的關(guān)系。用例圖從用戶角度描述系統(tǒng)的功能,并指出功能的執(zhí)行者。
二、靜態(tài)圖:
- 類圖(ClassDiagram)。展現(xiàn)了一組對(duì)象、接口、協(xié)作和它們之間的關(guān)系,包括繼承、關(guān)聯(lián)、依賴和聚合等。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命周期都是有效的,是面向?qū)ο笙到y(tǒng)的建模中最常見的圖。顯示系統(tǒng)的靜態(tài)結(jié)構(gòu)
- 對(duì)象圖(ObjectDiagram)。展現(xiàn)了一組對(duì)象以及它們之間的關(guān)系。對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)示。
- 包圖:(Package diagram)。包圖描述系統(tǒng)的分解結(jié)構(gòu),表示包與包之間的關(guān)系,包括繼承、構(gòu)成與依賴關(guān)系 。包由子包及類組成。
三、行為圖:(描述系統(tǒng)的動(dòng)態(tài)行為)
- 交互圖(Interactive diagram)。用于描述對(duì)象間的消息傳遞,由一組對(duì)象和它們之間的關(guān)系組成,包含它們之間可能傳遞的消息。交互圖又分為序列圖和協(xié)作圖:
- 順序圖:強(qiáng)調(diào)對(duì)象之間消息發(fā)送的時(shí)間順序;
- 合作圖:強(qiáng)調(diào)收發(fā)消息的對(duì)象的結(jié)構(gòu)組織、動(dòng)態(tài)協(xié)作關(guān)系。
- 狀態(tài)圖(StateDiagram)。由狀態(tài)、轉(zhuǎn)換、事件和活動(dòng)組成,描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)的轉(zhuǎn)移條件與響應(yīng)動(dòng)作。通常狀態(tài)圖是對(duì)類圖的補(bǔ)充,僅需為那些有多個(gè)狀態(tài)的、行為隨外界環(huán)境而改變的類畫狀態(tài)圖。
- 活動(dòng)圖(ActiveDiagram)?;顒?dòng)圖描述系統(tǒng)為完成某項(xiàng)功能而執(zhí)行的操作序列,這些序列可以并發(fā)和同步?;顒?dòng)圖中包含控制流和信息流,有助于更好的理解并發(fā)操作。
四、實(shí)現(xiàn)圖:(Implementation diagram)
- 構(gòu)件圖(ComponentDiagram)。描述軟件實(shí)現(xiàn)系統(tǒng)的組成和分布狀況。部件圖有助于分析和理解組件之間的依賴關(guān)系。
- 部署圖(DeploymentDiagram)。描述作為軟件系統(tǒng)運(yùn)行環(huán)境的硬件及網(wǎng)絡(luò)的物理體系結(jié)構(gòu),其節(jié)點(diǎn)表示實(shí)際的計(jì)算機(jī)和設(shè)備,邊表示節(jié)點(diǎn)之間的物理連接關(guān)系,也可以顯示連接的類型及節(jié)點(diǎn)之間的依賴性。
目前,UML已成功應(yīng)用于電信、金融、政府、電子、國(guó)防、航天航空、制造與工業(yè)自動(dòng)化、醫(yī)療、交通、電子商務(wù)等領(lǐng)域中。在這些領(lǐng)域中,UML的建模包括大型、復(fù)雜、實(shí)時(shí)、分布式、集中式數(shù)據(jù)或者計(jì)算,以及嵌入式系統(tǒng)等,而且還用于軟件再生工程、質(zhì)量管理、過程管理、配置管理的各方面。UML展現(xiàn)了一系列最佳工程實(shí)踐,這些最佳實(shí)踐在對(duì)大規(guī)模,復(fù)雜系統(tǒng)進(jìn)行建模方面,特別是在軟件架構(gòu)層次已經(jīng)被多次驗(yàn)證過而且卓有成效。
以上是關(guān)于UML的簡(jiǎn)單介紹,關(guān)于各種模式、圖的細(xì)節(jié)以及UML的常見開發(fā)流程,吳小松也在不斷的學(xué)習(xí)和深化,并在后續(xù)的文章中發(fā)布,歡迎各位朋友提供寶貴的建議。