簡(jiǎn)介
UML: UndefiedModelingLanguage 統(tǒng)一建模語言。
是面向?qū)ο筌浖臉?biāo)準(zhǔn)化建模語言。對(duì)軟件系統(tǒng)進(jìn)行可視化建模的一種語言。UML為面向?qū)ο箝_發(fā)系統(tǒng)的產(chǎn)品進(jìn)行說明、可視化、和編制文檔的一種標(biāo)準(zhǔn)語言。
特點(diǎn):簡(jiǎn)單,統(tǒng)一。
引言:
1)什么是模型?
模型是對(duì)現(xiàn)實(shí)世界的形狀或狀態(tài)的抽象模擬和簡(jiǎn)化。
2)為什么要建模?
為了能夠更好地理解正在開發(fā)的系統(tǒng)。
通過建模,可以達(dá)到四個(gè)目的:
a.有助于按照需求對(duì)系統(tǒng)進(jìn)行可視化的分析
b.能夠系統(tǒng)的結(jié)構(gòu)或行為
c.給出了知道構(gòu)造系統(tǒng)的模板
d.對(duì)做出的決策進(jìn)行文檔化
網(wǎng)上對(duì)UML評(píng)論:
主要用在設(shè)計(jì)和分析階段,但是 UML 不適合用來做代碼生成。
使用 UML 來分析和設(shè)計(jì),可以讓大家對(duì)整個(gè)系統(tǒng)有個(gè)更全面的認(rèn)知。
UML的7種視圖

每個(gè)視圖的簡(jiǎn)介:

UML的七種視圖各有各自的特點(diǎn),各自有各自的作用。
只有正確的認(rèn)識(shí)七種視圖才能對(duì)UML的九種圖進(jìn)行更加詳細(xì)、深入的學(xué)習(xí)。
UML的九種圖是七種視圖的具體表現(xiàn)形式。
每一種視圖中都包含一個(gè)或多種圖。
UML有7種視圖,9種圖。
UML 的 9種圖
1)用例圖
【概念】描述用戶需求,從用戶的角度描述系統(tǒng)的功能。
【描述方法】橢圓表示某個(gè)用例;任性符號(hào)表示角色。
【目的】幫組開發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求。
【用例圖】

2)靜態(tài)圖
a.類圖
【概念】顯示系統(tǒng)的靜態(tài)結(jié)構(gòu),表示不同的實(shí)體是如何相關(guān)聯(lián)的。
【描述方式】三個(gè)矩形。

【目的】表示一個(gè)邏輯類或者實(shí)現(xiàn)類,邏輯類通常是用戶的業(yè)務(wù)所涉及的事物;實(shí)現(xiàn)類是程序員處理的實(shí)體
【類圖】

b.對(duì)象圖
【概念】類圖的一個(gè)實(shí)例,描述系統(tǒng)在具體時(shí)間點(diǎn)上鎖包含的對(duì)象以及各個(gè)對(duì)象的關(guān)系。
【對(duì)象圖】

3)交互圖
用來描述對(duì)象之間的交互關(guān)系。
a.序列圖(順序圖)
【概念】描述對(duì)象之間的交互順序,著重體現(xiàn)對(duì)象間的消息傳遞的事件順序。
【描述方式】橫跨圖的頂部,每個(gè)框表示每個(gè)類的實(shí)例或?qū)ο?;類?shí)例名稱和類名稱使用冒號(hào)分開。
【目的】顯示流程中不同對(duì)象之間的調(diào)用關(guān)系,還可以顯示不同對(duì)象的不同調(diào)用。
【序列圖】

b.協(xié)作圖
【概念】
描述對(duì)象之間的合作關(guān)系,側(cè)重對(duì)象之間的消息傳遞
4)行為圖
描述系統(tǒng)的動(dòng)態(tài)模型和對(duì)象之間的交互關(guān)系
a.狀態(tài)圖
【概念】描述對(duì)象的所有狀態(tài)以及事件發(fā)生而引起的狀態(tài)之間的轉(zhuǎn)移
【描述方式】
起始點(diǎn):實(shí)心圓
狀態(tài)之間的轉(zhuǎn)換:使用開箭頭的線段
狀態(tài):圓角矩形
判斷點(diǎn):空心圓
一個(gè)或多個(gè)終止點(diǎn):內(nèi)部包含實(shí)心圓的圓
【目的】表示某個(gè)類所處的不同狀態(tài)以及該類在這些狀態(tài)中的轉(zhuǎn)換過程
b.活動(dòng)圖
【概念】描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)時(shí)間的約束關(guān)系
【描述方式】
起始點(diǎn):實(shí)心圓
活動(dòng):圓角矩形
終止點(diǎn):內(nèi)部包含實(shí)心圓的圓
泳道:實(shí)際執(zhí)行活動(dòng)的對(duì)象
【目的】表示兩個(gè)或多個(gè)對(duì)象之間在處理某個(gè)活動(dòng)時(shí)的過程控制流程
【活動(dòng)圖】

活動(dòng)圖和狀態(tài)圖區(qū)別:

5)實(shí)現(xiàn)圖
a.構(gòu)件圖(Component diagrams)
【概念】描述代碼構(gòu)件的物理結(jié)構(gòu)以及各構(gòu)件之間的依賴關(guān)系
【描述方式】構(gòu)件
【目的】提供系統(tǒng)的物理視圖,根據(jù)系統(tǒng)的代碼構(gòu)件顯示系統(tǒng)代碼的整個(gè)物理結(jié)構(gòu)
【構(gòu)架圖】

b.部署圖(Deployment diagrams)
【概念】系統(tǒng)中硬件的物理體系結(jié)構(gòu)
【描述方式】
三維立方體表示部件
節(jié)點(diǎn)名稱位于立方體上部
【目的】顯示系統(tǒng)的硬件和軟件的物理結(jié)構(gòu)
【部署圖】

九種UML圖詳解到此為止。
用例圖詳解
九種圖中,用例圖使用的最廣泛。
1)概念
用例圖是由參與者、用例以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的動(dòng)態(tài)視圖。
用例是系統(tǒng)中的一個(gè)功能單元,描述一個(gè)系統(tǒng)做什么(what)的信息,并不是怎么(how)做。用例圖的作用是描述參與者和用例的關(guān)系,表示系統(tǒng)的用戶使用了系統(tǒng)中的哪些用例。
2)組成
用例圖組成的概念,我們通過一張圖學(xué)習(xí):

我們重點(diǎn)講解用例組成中用例之間的關(guān)聯(lián)。
a.包含
【表示方式】
虛線箭頭 + 《 include》;箭頭由基礎(chǔ)用例指向被包含用例
【作用】
提高用例模型的可維護(hù)性;簡(jiǎn)化描述避免多個(gè)用例中重復(fù)描述同一段行為或?qū)ν欢涡袨槊枋霾灰恢隆?br>
【包含圖】

b.擴(kuò)展
【表示方式】虛線箭頭 + 《extend》;箭頭指向基礎(chǔ)用例
【作用】一定條件下,擴(kuò)展用例為基礎(chǔ)用例增加新的行為
【擴(kuò)展圖】

c.泛化
【表示方式】實(shí)線空三角箭頭;箭頭指向父用例
【作用】子用例繼承父用例所有的結(jié)構(gòu)、行為和關(guān)系,是父用例的一種特殊形式
【泛化圖】

擴(kuò)展關(guān)系和包含關(guān)系的比較:
1、擴(kuò)展關(guān)系:基礎(chǔ)用例提供一個(gè)或多個(gè)插入點(diǎn),擴(kuò)展用例為插入點(diǎn)提供需要插入的行為
包含關(guān)系中只有一個(gè)插入點(diǎn)
2、擴(kuò)展關(guān)系:基礎(chǔ)用例執(zhí)行,擴(kuò)展不一定執(zhí)行
包含關(guān)系:基礎(chǔ)用例執(zhí)行,包含用例必須執(zhí)行
3、擴(kuò)展關(guān)系:即使沒有擴(kuò)展用例,基礎(chǔ)用例本身是完整的
包含關(guān)系:沒有包含用例,基礎(chǔ)用例本身不完整
為大家簡(jiǎn)單的舉一個(gè)機(jī)房收費(fèi)系統(tǒng)的小例子:
