UML詳解,詳細介紹什么是UML:

UML詳解,詳細介紹:

UML概念:

1. UML-Unified Model Language

統(tǒng)一建模語言,又稱標準建模語言。是用來對軟件密集系統(tǒng)進行可視化建模的一種語言。UML的定義包括UML語義和UML表示法兩個元素

2. UML是由一堆圖組成的,包括:用例圖、類圖、對象圖、狀態(tài)轉(zhuǎn)換圖、活動圖、時序圖、包圖、協(xié)作圖、構(gòu)件圖、部署圖等。

UML作用:

幫助開發(fā)團隊以一種可視化的方式理解系統(tǒng)的功能需求,有利于隊員間在各個開發(fā)環(huán)節(jié)間確立溝通的標準,便于系統(tǒng)文檔的制和項目的管理。

UML主要模型:

1. 功能模型

從用戶的角度展示系統(tǒng)的功能,包括用例圖。

2. 對象模型

采用對象、屬性、操作、關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和基礎(chǔ),包括類圖、對象圖、包圖。

3. 動態(tài)模型

展現(xiàn)系統(tǒng)的內(nèi)部行為。 包括序列圖、活動圖、狀態(tài)圖。

一個小例子,幫助大家理解:

`車的類圖結(jié)構(gòu)為<<abstract>>,表示車是一個抽象類;

`它有兩個繼承類:小汽車和自行車;它們之間的關(guān)系為實現(xiàn)關(guān)系,使用帶空心箭頭的虛線表示;

`小汽車為與SUV之間也是繼承關(guān)系,它們之間的關(guān)系為泛化關(guān)系,使用帶空心箭頭的實線表示;

`小汽車與發(fā)動機之間是組合關(guān)系,使用帶實心箭頭的實線表示;

`學(xué)生與班級之間是聚合關(guān)系,使用帶空心箭頭的實線表示;

`學(xué)生與身份證之間為關(guān)聯(lián)關(guān)系,使用一根實線表示;

`學(xué)生上學(xué)需要用到自行車,與自行車是一種依賴關(guān)系,使用帶箭頭的虛線表示;

介紹下類之間的各種關(guān)系:

1. 泛化關(guān)系?: 泛化表示的是一種繼承關(guān)系

【表示方法】 : 帶空心三角箭頭的實線,箭頭指向父類

2. 實現(xiàn)關(guān)系?: 是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實現(xiàn)

【表示方法】 : 一條帶空心三角箭頭的虛線表示

3. 聚合關(guān)系?: 聚合關(guān)系用于表示實體對象之間的關(guān)系,表示整體由部分構(gòu)成的語義,且部分可以離開整體而單獨存在;例如一個部門由多個員工組成;

【表示方法】 : 一條帶空心菱形箭頭的實線表示,菱形指向整

4. 組合關(guān)系?: 與聚合關(guān)系一樣,組合關(guān)系同樣表示整體由部分構(gòu)成的語義;比如公司由多個部門組成;

【表示方法 】: 帶實心菱形箭頭的實線,菱形指向整體

5. 關(guān)聯(lián)關(guān)系?: 描述不同類的對象之間的結(jié)構(gòu)關(guān)系,是一種擁有的關(guān)系,它使一個類知道另一個類的屬性和方法,如學(xué)生和學(xué)校就是一種關(guān)聯(lián)關(guān)系

【表示方法 】: 雙向的關(guān)聯(lián)可以有兩個箭頭或者沒有箭頭,單向的關(guān)聯(lián)有一個箭頭。箭頭指向被擁有者

6. 依賴關(guān)系?: 是一種使用的關(guān)系,即一個類的實現(xiàn)需要另一個類的協(xié)助,所以要盡量不使用雙向的互相依賴.

【表示方法 】: 一條帶箭頭的虛線,箭頭指向被使用者

對UML中的各個圖的功用做一個簡單介紹:

用例圖:

描述角色以及角色與用例之間的連接關(guān)系。說明的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。一個用例圖包含了多個模型元素,如系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關(guān)系,如泛化、關(guān)聯(lián)和依賴。

類圖:

類圖是描述系統(tǒng)中的類,以及各個類之間的關(guān)系的靜態(tài)視圖。能夠讓我們在正確編寫代碼以前對系統(tǒng)有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態(tài)模型類型。類圖表示類、接口和它們之間的協(xié)作關(guān)系。

對象圖:

與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關(guān)系,而是對象之間的關(guān)系

包圖:

包圖用于描述系統(tǒng)的分層結(jié)構(gòu),由包或類組成,表示包與包之間的關(guān)系。

活動圖:

描述用例要求所要進行的活動,以及活動間的約束關(guān)系,有利于識別并行活動。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿足前面使用用例圖建模的商務(wù)需求。

狀態(tài)圖:

描述類的對象所有可能的狀態(tài),以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。可以捕獲對象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個對象可以擁有的狀態(tài),并且事件(如消息的接收、時間的流逝、錯誤、條件變?yōu)檎娴?會怎么隨著時間的推移來影響這些狀態(tài)。一個狀態(tài)圖應(yīng)該連接到所有具有清晰的可標識狀態(tài)和復(fù)雜行為的類;該圖可以確定類的行為,以及該行為如何根據(jù)當前的狀態(tài)變化,也可以展示哪些事件將會改變類的對象的狀態(tài)。狀態(tài)圖是對類圖的補充。

序列圖(順序圖):

序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統(tǒng)的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調(diào)消息是如何在對象之間被發(fā)送和接收的。

協(xié)作圖:

和序列圖相似,顯示對象間的動態(tài)合作關(guān)系。可以看成是類圖和順序圖的交集,協(xié)作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調(diào)時間和順序,則使用序列圖;如果強調(diào)上下級關(guān)系,則選擇協(xié)作圖;這兩種圖合稱為交互圖。

構(gòu)件圖(組件圖)

描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴關(guān)系。用來建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)件標記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件是軟件單個組成部分,它可以是一個文件,產(chǎn)品、可執(zhí)行文件和腳本等。

部署圖(配置圖)

是用來建模系統(tǒng)的物理部署。例如計算機和設(shè)備,以及它們之間是如何連接的。部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測試人員。部署圖用于表示一組物理結(jié)點的集合及結(jié)點間的相互關(guān)系,從而建立了系統(tǒng)物理層面的模型。

注:

一:這十種模型圖各有側(cè)重:

1:用例圖側(cè)重描述用戶需求,

2:類圖側(cè)重描述系統(tǒng)具體實現(xiàn);

二:描述的方面都不相同:

1:類圖描述的是系統(tǒng)的結(jié)構(gòu),

2:序列圖描述的是系統(tǒng)的行為;

三:抽象的層次也不同:

1:構(gòu)件圖描述系統(tǒng)的模塊結(jié)構(gòu),抽象層次較高,

2:類圖是描述具體模塊的結(jié)構(gòu),抽象層次一般,

3:對象圖描述了具體的模塊實現(xiàn),抽象層次較低。

在有的文獻書籍中,將這九種模型圖分為三大類

結(jié)構(gòu)分類、動態(tài)行為和模型管理

1:結(jié)構(gòu)分類包括用例圖、類圖、對象圖、構(gòu)件圖和部署圖,

2:動態(tài)行為包括狀態(tài)圖、活動圖、順序圖和協(xié)作圖,

3:模型管理則包含類圖。

UML是在開發(fā)階段,說明、可視化、構(gòu)建和書寫一個面向?qū)ο筌浖芗到y(tǒng)的制品的開放方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容