UML是什么?UML常用图以及建模工具有哪些?
“
在做項(xiàng)目設(shè)計(jì)方案的時(shí)候,理解為需求后,我們都會(huì)做技術(shù)設(shè)計(jì)方案,這個(gè)時(shí)候就需要用到UML建模,涉及到UML常用圖形以及工具畫(huà)圖,以下我會(huì)詳細(xì)介紹UML圖形和我個(gè)人推薦的UML建模工具。
UML即Unified Model Language,是一種建模語(yǔ)言,也是標(biāo)準(zhǔn)建模語(yǔ)言。在軟件開(kāi)發(fā)中,當(dāng)系統(tǒng)規(guī)模比較復(fù)雜時(shí),需要用圖形抽象地來(lái)表達(dá)復(fù)雜的概念,讓整個(gè)軟件設(shè)計(jì)更具有可讀性,可理解性,以便盡早發(fā)現(xiàn)軟件設(shè)計(jì)時(shí)存在的潛在問(wèn)題,從而降低開(kāi)發(fā)風(fēng)險(xiǎn)。同時(shí),也極大地方便了業(yè)務(wù)人員與開(kāi)發(fā)人員之間的交流。
UML常用建模圖
UML標(biāo)準(zhǔn)建模語(yǔ)言中5種主要的類(lèi)型圖:
1、用例圖:指的是從用戶(hù)角度來(lái)描述系統(tǒng)功能,并且指明各功能操作者。
2、靜態(tài)圖:包含的是類(lèi)圖和對(duì)象圖。類(lèi)圖是一種靜態(tài)模型類(lèi)型,是用來(lái)表示類(lèi)之間的聯(lián)系、類(lèi)的屬性以及操作,在系統(tǒng)的整個(gè)生命周期都是有效的。對(duì)象圖則是類(lèi)圖的一個(gè)實(shí)例,使用的標(biāo)識(shí)幾乎與類(lèi)圖一致,但是其生命周期有限,只能在系統(tǒng)中某一時(shí)間段內(nèi)存在。
3、交互圖:包含的是時(shí)序圖和協(xié)作圖,是用來(lái)描述對(duì)象之間的交互關(guān)系。時(shí)序圖強(qiáng)調(diào)的是對(duì)象之間的消息發(fā)送順序,是對(duì)象之間動(dòng)態(tài)合作關(guān)系。協(xié)作圖則是用來(lái)描述對(duì)象之間的協(xié)作關(guān)系,既顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系,又顯示對(duì)象以及它們之間的關(guān)系。時(shí)序圖用來(lái)強(qiáng)調(diào)時(shí)間和順序,協(xié)作圖則用來(lái)強(qiáng)強(qiáng)調(diào)上下級(jí)的關(guān)系。
4、行為圖:包含的是活動(dòng)圖和狀態(tài)圖,是用來(lái)描述系統(tǒng)的動(dòng)態(tài)模型于組成對(duì)象之間的交互關(guān)系。活動(dòng)圖描述的是為了滿(mǎn)足用例要求所進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,方便識(shí)別并進(jìn)行活動(dòng)。狀態(tài)圖是類(lèi)的補(bǔ)充,是用來(lái)描述類(lèi)的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。
5、實(shí)現(xiàn)圖:包含的是部署圖和組件圖。部署圖是用來(lái)表示建模系統(tǒng)的物理部署。組件圖則用來(lái)表示建模軟件的組織以及其相互之間的關(guān)系。
UML建模時(shí)常見(jiàn)的9種圖:
1、用例圖:
用例圖是需求分析的產(chǎn)物,主要是用來(lái)描述用戶(hù)是如何使用一個(gè)系統(tǒng)的,是用戶(hù)所能觀察和使用到的系統(tǒng)功能的模型圖。
2、類(lèi)圖:
UML類(lèi)圖,是用來(lái)描述系統(tǒng)中的類(lèi)以及各個(gè)類(lèi)之間的關(guān)系。系統(tǒng)中可以有多個(gè)類(lèi)圖,單個(gè)類(lèi)圖則只是表達(dá)了系統(tǒng)的一個(gè)方面。類(lèi)圖可以幫助我們?cè)谡_編寫(xiě)代碼之前對(duì)系統(tǒng)有個(gè)很全面的認(rèn)識(shí),是建模中最常見(jiàn)的一種類(lèi)型圖。
3、對(duì)象圖:
對(duì)象圖描述的是一組對(duì)象之間的關(guān)系,而不是類(lèi)之間的關(guān)系。它是類(lèi)圖的變體,但是又與之不同,對(duì)象顯示的類(lèi)的多個(gè)對(duì)象而不是實(shí)際的類(lèi)。
4、活動(dòng)圖:
UML活動(dòng)圖,顧名思義就是UML的動(dòng)態(tài)模型的一種圖形,對(duì)于系統(tǒng)的功能建模特別重要。它用來(lái)描述滿(mǎn)足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。簡(jiǎn)單來(lái)講,就是表示在處理某個(gè)活動(dòng)時(shí),兩個(gè)或者更多類(lèi)對(duì)象之間的過(guò)程控制流。
5、狀態(tài)圖:
UML狀態(tài)圖,用于顯示狀態(tài)機(jī),即描述一個(gè)對(duì)象所處的可能狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。用狀態(tài)圖建模可以幫助開(kāi)發(fā)人員分析復(fù)雜對(duì)象的各種狀態(tài)的轉(zhuǎn)換,以及對(duì)象何時(shí)執(zhí)行怎樣的動(dòng)作。
6、時(shí)序圖:
UML時(shí)序圖,又叫序列圖或者順序圖,是一種用來(lái)描述對(duì)象之間傳送消息的時(shí)間順序,是用來(lái)表示用例中的行為順序。
7、協(xié)作圖:
UML協(xié)作圖(又叫通信圖)是一種作用于顯示對(duì)象之間如何進(jìn)行交互以執(zhí)行特點(diǎn)用例或用例中特點(diǎn)部分行為的交互圖,它強(qiáng)調(diào)的是發(fā)送和接收消息的對(duì)象之間的組織結(jié)構(gòu)。
8、組件圖:
UML組件圖(又叫構(gòu)件圖),是用來(lái)描述在軟件系統(tǒng)中遵從并實(shí)現(xiàn)一組接口的物力的、可替換的軟件模塊。它所表現(xiàn)的是一種系統(tǒng)靜態(tài)實(shí)現(xiàn)的結(jié)構(gòu),能夠幫助開(kāi)發(fā)人員對(duì)系統(tǒng)組成達(dá)成一致的認(rèn)識(shí)。
9、部署圖:
UML 部署圖是一個(gè)用來(lái)描述系統(tǒng)的硬件配置和部署以及軟件的構(gòu)件和模塊在不同節(jié)點(diǎn)上分布的模型圖。它能夠幫助系統(tǒng)相關(guān)人員了解系統(tǒng)中各個(gè)構(gòu)件部署在什么硬件上以及硬件之間的交互關(guān)系。
UML中的各種圖之間的區(qū)別:
1、各有其側(cè)重點(diǎn):比如說(shuō)用例圖側(cè)重于描述用戶(hù)的需求,而類(lèi)圖則側(cè)重于描述系統(tǒng)的具體實(shí)現(xiàn)。
2、所描述的方面各不相同:比如類(lèi)圖是用來(lái)描述系統(tǒng)結(jié)構(gòu)的,序列圖則是用來(lái)描述系統(tǒng)行為的。
3、抽象的層次也不盡相同:比如頭見(jiàn)圖是用來(lái)描述系統(tǒng)的模塊結(jié)構(gòu),抽象層次比較高,而對(duì)象圖則用來(lái)描述具體的模塊實(shí)現(xiàn),抽象層次就比較低。
UML工具
Visio
Visio 原來(lái)僅僅是一種畫(huà)圖工具,能夠用來(lái)描述各種圖形(從電路圖到房屋結(jié)構(gòu)圖),也是到VISIO2000才開(kāi)始引進(jìn)軟件分析設(shè)計(jì)功能到代碼生成的全部功能,它可以說(shuō)是目前最能夠用圖形方式來(lái)表達(dá)各種商業(yè)圖形用途的工具。
Rational Rose
ROSE是直接從UML發(fā)展而誕生的設(shè)計(jì)工具,它的出現(xiàn)就是為了對(duì)UML建模的支持,ROSE一開(kāi)始沒(méi)有對(duì)數(shù)據(jù)庫(kù)端建模的支持,但是在現(xiàn)在的版本中已經(jīng)加入數(shù)據(jù)庫(kù)建模的功能。ROSE主要是在開(kāi)發(fā)過(guò)程中的各種語(yǔ)義、模塊、對(duì)象以及流程,狀態(tài)等描述比較好,主要體現(xiàn)在能夠從各個(gè)方面和角度來(lái)分析和設(shè)計(jì),使軟件的開(kāi)發(fā)藍(lán)圖更清晰,內(nèi)部結(jié)構(gòu)更加明朗(但是它的結(jié)構(gòu)僅僅對(duì)那些對(duì)掌握UML的開(kāi)發(fā)人員,也就是說(shuō)對(duì)客戶(hù)了解系統(tǒng)的功能和流程等并不一定很有效),對(duì)系統(tǒng)的代碼框架生成有很好的支持。但對(duì)數(shù)據(jù)庫(kù)的開(kāi)發(fā)管理和數(shù)據(jù)庫(kù)端的迭代不是很好。
PowerDesign
PowerDesigner原來(lái)是對(duì)數(shù)據(jù)庫(kù)建模而發(fā)展起來(lái)的一種數(shù)據(jù)庫(kù)建模工具。直到7.0版才開(kāi)始對(duì)面向?qū)ο蟮拈_(kāi)發(fā)的支持,后來(lái)又引入了對(duì)UML的支持。但是由于PowerDesigner側(cè)重不一樣,所以它對(duì)數(shù)據(jù)庫(kù)建模的支持很好,支持了能夠看到的90%左右的數(shù)據(jù)庫(kù),對(duì)UML的建模使用到的各種圖的支持比較滯后。但是在最近得到加強(qiáng)。
Enterprise Architect(EA)
Enterprise Architect是一個(gè)全功能的、基于UML的visual CASE工具,主要用于設(shè)計(jì)、編寫(xiě)、構(gòu)建并管理以目標(biāo)為導(dǎo)向的軟件系統(tǒng)。它支持用戶(hù)案例、商務(wù)流程模式以及動(dòng)態(tài)的圖表、分類(lèi)、界面、協(xié)作、結(jié)構(gòu)以及物理模型。此外,它還支持C++、Java、Visual Basic、Delphi、C#以及VB.Net。
這個(gè)是我用過(guò)的最好的UML工具之一,個(gè)人推薦使用。
Umlet
開(kāi)源的免費(fèi)UML工具,這個(gè)軟件實(shí)際上是用JAVA寫(xiě)的,還有有一套簡(jiǎn)化的語(yǔ)言,提供用編碼的方式畫(huà)時(shí)序圖等各種圖,也可以用code的方式自定義頁(yè)面元素。
最后,UML建模除了畫(huà)圖本身以外,最重要的是理清整個(gè)設(shè)計(jì)方案思路,這一點(diǎn)才UML畫(huà)圖的精髓所在。
總結(jié)
以上是生活随笔為你收集整理的UML是什么?UML常用图以及建模工具有哪些?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring Cloud源码分析(四)Z
- 下一篇: HDFS NameNode重启优化