為了了解UML,我們開篇先大致了解一些UML的概念。
我覺得這些概念看了之后大致有個印象就好了。
因為不在實際的過程中使用,沒有講到具體的圖的時候,很難理解。
特別是對象之間的關(guān)系,以及各種圖的分類和名稱。
但是,這個部分又不能不講。
UML發(fā)展至今其實是融合了很多大神的經(jīng)驗及智慧。
其初衷其實是為了發(fā)展出一套讓全世界從業(yè)人員都可以看懂的建模語言。
類似于軟件界的五線譜。
你即便不懂英語、日語、德語等等,你看一張UML圖,也能大致理解表達(dá)的意思,并且不用別人過多解釋。
所以我覺得如果你是要畫UML圖就要遵循UML的規(guī)范,而不是自創(chuàng)。
否則別人就會看不懂了。
然鵝,讓我一直很困惑的是,各個大廠的UML建模軟件卻完全各搞各的,沒有嚴(yán)格遵循規(guī)范。
可能也是因為UML本身也在不斷發(fā)展的緣故吧。
盡管如此,我還是建議大家盡量用規(guī)范的表達(dá)方法,這樣不容易產(chǎn)生歧義。
如果要用工具,那么至少在一個項目或者在公司內(nèi)部保持統(tǒng)一,并且給出圖例規(guī)范說明。
防止大家有理解不一致的地方,如果造成更多的困擾,那么就有違UML的初衷了。
什么是UML
具體的發(fā)展史大家可以自行度娘,或者去OMG的官網(wǎng)查看詳細(xì)信息。
在這里,我想特別標(biāo)注幾點我覺得很重要的信息:
UML起源于多種面向?qū)ο蠼7椒ǎ蒓MG開發(fā),目前已經(jīng)成為工業(yè)標(biāo)準(zhǔn)。
UML自1997年發(fā)布1.1版本以來,經(jīng)歷10年后,已經(jīng)發(fā)展到了2.5版本了。
UML的意義在于:
- 在發(fā)展的過程中,統(tǒng)一了Booch、OMT和OOSE等方法中的基本概念和符號。
- UML吸取了面向?qū)ο箢I(lǐng)域中各種優(yōu)秀思想,是開發(fā)者們根據(jù)最優(yōu)秀的OO方法和豐富的計算機(jī)科學(xué)實踐經(jīng)驗綜合提煉而成的。
- UML在演變的過程中還提出了一些新的概念,不斷推動著OO思想的發(fā)展。
為什么著重要提這幾點?
面向?qū)ο驩O,是UML的根本。
你想要理解UML,想要用好UML,一定要有OO的思維方式。
這也是我為什么會在列大綱的時候就專門列了一篇關(guān)于OO的介紹。
下一篇我們再詳細(xì)來說OO。
另外,我們需要注意的是,UML還在逐步發(fā)展中。
所以時不時的新版本出來,你會發(fā)現(xiàn)由多了幾種圖,有一些新的概念。
但是其實個人覺得沒有必要去追求所謂的最新版本,因為我們常用的幾種圖在UML2的版本中都涉及到了。
除非UML升級到UML3,否則基本上都是一些擴(kuò)展和補(bǔ)充。
我們的目的也不是進(jìn)行UML的專業(yè)研究,我們的目的是用起來。
所以呢,如果你想要買一些UML的書來看的話,關(guān)注一下書籍信息,UML1的就不要買了。
現(xiàn)在市面上大部分是UML2.3,UML2.4的。
看這個版本目前也差不多夠了。
UML組成
UML的組成主要有:事物、圖和關(guān)系。
- 事物是UML中重要的組成部分。
- 關(guān)系把各個元素緊密的聯(lián)系在一起。
- 圖是一種表達(dá)形式。
因為翻譯的關(guān)系,可能有的書上不這么描述。
不過問題不大,我們這篇的主要目的是讓大家有個大體上的印象。
下面這些概念看上去比較難理解,給這種抽象的東西下定義,真的挺難的。
后面在講到具體圖的時候回一一提及。
如果看不懂,也沒關(guān)系。
UML事物
UML主要包括四種事物:構(gòu)件、行為、分組和注釋。
構(gòu)件
構(gòu)件事物是UML模型的靜態(tài)部分、描述概念或者物理元素。
包括:
類 :是對象的抽象。后面會在類圖、包圖等中進(jìn)行詳細(xì)介紹。
接口 :描述了類或組件對外可見的動作。
協(xié)作 :一組事物相互作用的集合。
用例 :常見于用例圖,用來描述一系列動作。
組件 :抽象了的物理或邏輯的部分。
節(jié)點 :主要使用在部署圖中。
行為
交互 :實現(xiàn)某個功能的組件之間的消息集合。
狀態(tài)機(jī) :描述事物生命周期的狀態(tài)序列。
分組
主要由包實現(xiàn),描述事物的結(jié)構(gòu)組成。
注釋
對模型中的元素進(jìn)行說明、解釋。
關(guān)系
UML中主要的關(guān)系:依賴、關(guān)聯(lián)、泛化和實現(xiàn)。
依賴 Dependency
A元素的變化會影響B(tài)元素。
A被稱為獨立元素,被影響的B元素稱為依賴元素。
關(guān)聯(lián)Association
兩個對象之間的關(guān)系,在類圖、用例圖中很常見。
泛化Generalization
又稱為繼承,子繼承父。
在用例圖和類圖中比較常見。
實現(xiàn)Realization
條條大路通羅馬,每條路都可以實現(xiàn)到達(dá)羅馬的目的。
其他
還有一些關(guān)系會在具體降到類圖、用例圖等的時候再進(jìn)行介紹。
比如組合、聚合、包含、擴(kuò)展等等。
具體的如果感興趣,可以看《Think in UML》的第3章內(nèi)容,里面描述的比較詳盡。
UML的圖
UML包括眾多的圖,在《UML2 軟件建模:概念、規(guī)范和方法》中有這樣一張圖,看上去比較清晰,分享給大家。
主要分成兩大類:靜態(tài)圖、動態(tài)圖(也稱為行為圖)。
靜態(tài)圖
顧名思義,描述的是對象的靜態(tài)結(jié)構(gòu),與時間無關(guān)。
動態(tài)圖
描述的是對象的動態(tài)行為,除用例外,其他圖會隨著時間“流動”。
寫在最后
UML的圖其實很有意思的一點在于,相互獨立又相互驗證。
如果你在畫一個用例圖,那你就應(yīng)該關(guān)注用例。
什么執(zhí)行者有哪些操作、有哪些活動。
而不關(guān)注這些活動的狀態(tài)和觸發(fā)條件。
但是用例圖中的這些活動可以和活動圖的活動進(jìn)行對應(yīng)。
用例圖中的執(zhí)行者可以和活動圖中的角色進(jìn)行對應(yīng)。
活動圖中的階段可以映射到狀態(tài)機(jī)圖。
……
這也使得UML圖的維護(hù)更新比較耗費精力。
那我們干嘛還要用UML呢?
-
建模
+關(guān)注
關(guān)注
1文章
313瀏覽量
60858 -
UML
+關(guān)注
關(guān)注
0文章
122瀏覽量
30903 -
面向?qū)ο?/span>
+關(guān)注
關(guān)注
0文章
64瀏覽量
10003
發(fā)布評論請先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web2/M00/87/AF/wKgaomRmlIWAOms7AADSk-T8MIU069.png)
請問如何使用UML來設(shè)計嵌入式系統(tǒng)?
如何運(yùn)用UML分析設(shè)計占先式實時內(nèi)核?
UML在車載GPS終端設(shè)計中的應(yīng)用是什么?
UML教程設(shè)計核心技術(shù)
什么是UML
![什么是<b class='flag-5'>UML</b>](https://file1.elecfans.com//web2/M00/A5/76/wKgZomUMOI2ACkb4AAB8SnSRu1E419.jpg)
基于UML對象建模的財務(wù)軟件設(shè)計研究
![基于<b class='flag-5'>UML</b>對象建模的財務(wù)軟件設(shè)計研究](https://file.elecfans.com/web2/M00/49/53/poYBAGKhwKCAWmjYAAATsvVAq0A326.jpg)
什么是UML圖?常見的UML圖工具有哪些?
![什么是<b class='flag-5'>UML</b>圖?常見的<b class='flag-5'>UML</b>圖工具有哪些?](https://file.elecfans.com/web1/M00/BF/A2/pIYBAF7xUoOAGIsBAAAVjelUpRc014.png)
基于實時UML的雷達(dá)軟件設(shè)計
UML統(tǒng)一建模語言
![<b class='flag-5'>UML</b>統(tǒng)一建模語言](https://file1.elecfans.com/web2/M00/82/76/wKgaomRUZiCAee1IAAKHuoEsulY428.jpg)
UML相關(guān)基本知識介紹
![<b class='flag-5'>UML</b>相關(guān)基本知識介紹](https://file1.elecfans.com/web2/M00/82/77/wKgZomRUZ_SAFH_aAABczcHCTHU348.jpg)
UML狀態(tài)圖詳解
![<b class='flag-5'>UML</b>狀態(tài)圖詳解](https://file1.elecfans.com//web2/M00/82/93/wKgZomRZBI6AfgRsAAAeM68dVHI315.png)
UML時序圖詳解
![<b class='flag-5'>UML</b>時序圖詳解](https://file1.elecfans.com//web2/M00/82/CB/wKgZomRiSCiAJNKBAAAqAN5Omvk963.png)
評論