類圖
-
概述
類圖(Class Diagram)是面向?qū)ο笙到y(tǒng)建模中最常用和最重要的圖比规,是定義其它圖的基礎(chǔ)。
類圖主要是用來顯示系統(tǒng)中的類嚣州、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系的一種靜態(tài)模型咕痛。
類圖不僅用于可視化描述和記錄系統(tǒng)的不同方面,也為構(gòu)建可執(zhí)行代碼的軟件應(yīng)用程序扣甲。
類圖描述一類的屬性和操作,也對(duì)系統(tǒng)的約束。被廣泛應(yīng)用于類圖的建模的面向?qū)ο蟮南到y(tǒng)中救崔,因?yàn)樗鼈兪俏ㄒ坏模梢灾苯佑成涞矫嫦驅(qū)ο笳Z言的 UML 圖捏顺。
類圖顯示集合的類六孵,接口,關(guān)聯(lián)幅骄,協(xié)作和約束劫窒,它也被稱為作為結(jié)構(gòu)圖。
-
目的
- 分析和設(shè)計(jì)應(yīng)用程序的靜態(tài)視圖;
- 描述一個(gè)系統(tǒng)的責(zé)任;
- 基地組件圖和部署圖;
- 正向和逆向工程拆座。
-
示例
車的類圖結(jié)構(gòu)為<<abstract>>烛亦,表示車是一個(gè)抽象類;
它有兩個(gè)繼承類:小汽車和自行車懂拾;它們之間的關(guān)系為實(shí)現(xiàn)關(guān)系煤禽,使用帶空心箭頭的虛線表示;
小汽車為與SUV之間也是繼承關(guān)系岖赋,它們之間的關(guān)系為泛化關(guān)系檬果,使用帶空心箭頭的實(shí)線表示;
小汽車與發(fā)動(dòng)機(jī)之間是組合關(guān)系唐断,使用帶實(shí)心箭頭的實(shí)線表示选脊;
學(xué)生與班級(jí)之間是聚合關(guān)系,使用帶空心箭頭的實(shí)線表示脸甘;
學(xué)生與身份證之間為關(guān)聯(lián)關(guān)系恳啥,使用一根實(shí)線表示;
學(xué)生上學(xué)需要用到自行車丹诀,與自行車是一種依賴關(guān)系钝的,使用帶箭頭的虛線表示;
對(duì)象圖
-
概述
UML 對(duì)象圖和類圖一樣反映系統(tǒng)的靜態(tài)過程铆遭,但它是從實(shí)際的或原型化的情景來表達(dá)的硝桩。
UML 對(duì)象圖顯示某時(shí)刻對(duì)象和對(duì)象之間的關(guān)系。一個(gè)UML對(duì)象圖可看成一個(gè)類圖的特殊用例枚荣,實(shí)例和類可在其中顯示碗脊。
UML 對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)橄妆。
由于對(duì)象存在生命周期衙伶,因此UML對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在祈坠。
-
目的
對(duì)象圖的目的與類圖類似。
不同的是矢劲,一個(gè)類圖代表一個(gè)抽象的模型颁虐,包括類和它們之間的關(guān)系卧须。但是另绩,由于對(duì)象存在生命周期,因此UML對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。
這意味著對(duì)象圖是更接近實(shí)際的系統(tǒng)行為隘击。目的是在一個(gè)特定的時(shí)刻捕捉到靜態(tài)的系統(tǒng)視圖虱肄。
對(duì)象圖的目的概述如下:
正向和逆向工程;
一個(gè)系統(tǒng)的對(duì)象間的關(guān)系;
一個(gè)交互的靜態(tài)視圖揭璃;
了解對(duì)象的行為和他們的關(guān)系從實(shí)用的角度來看。
-
示例
上面的對(duì)象圖代表訂單管理系統(tǒng),顧客在一個(gè)特定的時(shí)間下單缩举。它具有顧客官套、訂單、特殊訂單和一般訂單四個(gè)對(duì)象∫峡祝現(xiàn)在客戶對(duì)象(C)是與三個(gè)訂單對(duì)象(O1奶赔,O2和O3)。這些訂單對(duì)象相關(guān)聯(lián)的特殊訂單和一般訂單對(duì)象(S1杠氢,S2和N1)站刑。顧客具有以下三個(gè)具有不同數(shù)目的訂單(12,32和40)鼻百,用于所考慮的特定的時(shí)間绞旅。
組件圖
-
概述
UML 組件圖(Component Diagram)又稱為構(gòu)件圖,他描述的是在軟件系統(tǒng)中遵從并實(shí)現(xiàn)一組接口的物理的温艇、可替換的軟件模塊因悲。
組件圖 = 構(gòu)件(Component)+接口(Interface)+關(guān)系(Relationship)+端口(Port)+連接器(Connector)。
UML 組件圖給提供了將要建立的系統(tǒng)的高層次的架構(gòu)視圖勺爱,這將幫助開發(fā)者開始建立實(shí)現(xiàn)的路標(biāo)晃琳,并決定關(guān)于任務(wù)分配及(或)增進(jìn)需求技能。
-
目的
組件圖是一種特殊的 UML 圖。與我們之前討論的 UML 圖標(biāo)的目的都不同卫旱。組件圖不描述該系統(tǒng)的功能人灼,但它描述了使用這些功能的組件。
所以從這一點(diǎn)來說顾翼,組件圖用于可視化在一個(gè)系統(tǒng)中的物理組件投放。這些組件包括庫,程序包适贸,文件等灸芳。
組件圖也被描述為一個(gè)靜態(tài)的實(shí)施的系統(tǒng)視圖,在一個(gè)特定的時(shí)刻拜姿,靜態(tài)執(zhí)行代表組織的組成部分耗绿。
一個(gè)單一的組件圖不能代表整個(gè)系統(tǒng),但圖的集合可用來代表整個(gè)砾隅。
組件圖的目的概括如下:
可視化系統(tǒng)的組成部分误阻。
構(gòu)建的可執(zhí)行文件,使用正向和反向工程晴埂。
描述的組織和組件的關(guān)系究反。
-
示例
在購買一件商品時(shí),我們首先是瀏覽商品儒洛,了解商品詳情精耐。在商品詳細(xì)頁面上,我們可以看到一個(gè)“加入購物車”琅锻∝酝#可以繪制網(wǎng)上商城組件圖,如上圖所示:購物車恼蓬、訂單惊完、庫存、支付管理組件处硬。
部署圖
-
概述
部署圖由節(jié)點(diǎn)以及節(jié)點(diǎn)之間的關(guān)系組成小槐。
部署圖描述的是系統(tǒng)運(yùn)行時(shí)的結(jié)構(gòu),展示了硬件的配置及其軟件如何部署到網(wǎng)絡(luò)結(jié)構(gòu)中荷辕。
部署圖通常用來幫助理解分布式系統(tǒng)凿跳,一個(gè)系統(tǒng)模型只有一個(gè)部署圖。
部署圖用于可視化的軟件組件部署的系統(tǒng)中的物理組件的拓?fù)浣Y(jié)構(gòu)疮方。
部署圖是用來描述一個(gè)系統(tǒng)的靜態(tài)部署視圖控嗜。
-
目的
部署圖與組件圖密切相關(guān),部署圖是用來描述軟件組件部署的硬件組件骡显;而組件圖是用來描述組件和顯示了它們是如何在硬件中部署疆栏。
UML的設(shè)計(jì)主要是把重點(diǎn)放在系統(tǒng)的軟件構(gòu)件曾掂。但是,這兩個(gè)圖是使用特殊圖表專注于軟件組件和硬件組件承边。
所以大多數(shù)的 UML 圖是用來處理邏輯組件遭殉,但把重點(diǎn)放在系統(tǒng)的硬件拓?fù)洳渴饒D石挂。
以下是部署圖的目的描述:
可視化系統(tǒng)的硬件拓?fù)洹?br>
描述用于部署軟件組件的硬件組件博助。
描述運(yùn)行時(shí)處理節(jié)點(diǎn)。
-
示例
用例圖
-
概述
用例圖捕捉了模擬系統(tǒng)中的動(dòng)態(tài)行為痹愚,并且描述了用戶富岳、需求以及系統(tǒng)功能單元之間的關(guān)系。
用例圖展示了一個(gè)外部用戶能夠觀察到的系統(tǒng)功能模型圖拯腮。
用例圖由主角窖式,用例和它們之間的關(guān)系組成。
-
目的
用例圖的目的是捕捉到一個(gè)系統(tǒng)的動(dòng)態(tài)方面动壤。
用例圖是用來收集系統(tǒng)的要求萝喘,包括內(nèi)部和外部的影響。這些要求大多是設(shè)計(jì)要求琼懊。所以阁簸,分析一個(gè)系統(tǒng)時(shí)要收集其功能用例和確定參與者。
簡(jiǎn)單來說哼丈,用例圖的目的如下:
用例圖用來收集系統(tǒng)的要求启妹。
用例圖用于獲取系統(tǒng)的外觀圖。
用例圖識(shí)別外部和內(nèi)部因素影響系統(tǒng)醉旦。
用例圖顯示要求之間的相互作用是參與者饶米。
-
示例
序列圖
-
概述
序列圖亦稱為時(shí)序圖或循序圖,是一種UML行為圖车胡。它通過描寫敘述對(duì)象之間發(fā)送消息的時(shí)間順序檬输,顯示多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作。它能夠表示用例的行為順序匈棘,當(dāng)運(yùn)行一個(gè)用例行為時(shí)褪猛,時(shí)序圖中的每條消息響應(yīng)了一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的觸發(fā)事件。
序列圖展示對(duì)象之間的交互羹饰,這些交互是指在場(chǎng)景或用例的時(shí)間流中發(fā)生的伊滋,序列圖屬于動(dòng)態(tài)建模。
序列圖的重點(diǎn)在消息序列上队秩,也就是說笑旺,描寫敘述消息是怎樣在對(duì)象間發(fā)送和接收的,表示對(duì)象之間傳送消息的時(shí)間順序馍资。
序列圖的組成元素:對(duì)象筒主、生命線、激活、消息乌妙。
-
目的
- 細(xì)化用例的表達(dá)使兔。將用例所描述的需求與功能轉(zhuǎn)化為更加正式、層次更加分明的細(xì)化表達(dá)藤韵。
- 有效地描述類職責(zé)的分配方式虐沥。根據(jù)順序圖中各對(duì)象之間的交互關(guān)系和發(fā)送的消息,來進(jìn)一步明確對(duì)象所屬類的職責(zé)泽艘。
- 豐富系統(tǒng)的使用語境的邏輯表達(dá)欲险。系統(tǒng)的使用語境即為系統(tǒng)可能的使用方式和使用環(huán)境。
-
示例
ATM機(jī)取款的需求描述如下:
用戶通過ATM機(jī)匹涮,插入銀行卡天试。系統(tǒng)提示輸入密碼,用戶輸入密碼然低。系統(tǒng)檢查密碼是否正確喜每,密碼正確用戶選擇取款。系統(tǒng)提示輸入取款金額雳攘。用戶輸入金額带兜,系統(tǒng)判斷其合法性。在獲取用戶輸入金額后来农,系統(tǒng)開始事物處理鞋真,減少賬戶金額,輸出相應(yīng)現(xiàn)金沃于。序列圖如下圖所示:
協(xié)作圖
-
概述
協(xié)作圖是動(dòng)態(tài)圖的另一種表現(xiàn)形式涩咖,強(qiáng)調(diào)參加交互的各對(duì)象結(jié)構(gòu)的信息。協(xié)作圖是一種類圖繁莹,包含類元角色和關(guān)聯(lián)角色檩互,而不僅僅是類元和關(guān)聯(lián)。協(xié)作圖強(qiáng)調(diào)參加交互的各對(duì)象的組織咨演。
序列圖的組成元素:對(duì)象闸昨、鏈接、消息薄风。
-
目的
協(xié)作圖中對(duì)象之間的消息傳遞來反映具體的使用語境的邏輯表達(dá)饵较,表示的是系統(tǒng)的一個(gè)行為,消息編號(hào)對(duì)應(yīng)了程序中嵌套調(diào)用的結(jié)構(gòu)和信號(hào)傳遞過程遭赂,顯示的對(duì)象之間的一種關(guān)系循诉。協(xié)作圖常用于過程的詳細(xì)設(shè)計(jì)。
-
示例
ATM機(jī)取現(xiàn)金100元的需求撇他,協(xié)作圖如下圖所示:
狀態(tài)圖
-
概述
UML狀態(tài)圖是圖表本身的名稱茄猫,主要用于描述對(duì)象具有的各種狀態(tài)狈蚤、狀態(tài)之間的轉(zhuǎn)換過程以及觸發(fā)狀態(tài)轉(zhuǎn)換的各種事件和條件。
UML狀態(tài)圖描述了一個(gè)狀態(tài)機(jī)划纽,可以被定義為一臺(tái)機(jī)器脆侮,它定義了一個(gè)對(duì)象,這些狀態(tài)控制外部或內(nèi)部事件的不同狀態(tài)勇劣。
狀態(tài)機(jī)由狀態(tài)靖避、轉(zhuǎn)換、事件芭毙、活動(dòng)和動(dòng)作五部分組成筋蓖。
- 狀態(tài):狀態(tài)指的是對(duì)象在其生命周期中的一種狀況卸耘,處于某個(gè)特定狀態(tài)中的對(duì)象必然會(huì)滿足某些條件退敦、執(zhí)行某些動(dòng)作或者是等待某些事件。一個(gè)狀態(tài)的生命周期是一個(gè)有限的時(shí)間階段蚣抗。
- 轉(zhuǎn)換:轉(zhuǎn)換指的是兩個(gè)不同狀態(tài)之間的一種關(guān)系侈百,表明對(duì)象在第一個(gè)狀態(tài)中執(zhí)行一定的動(dòng)作,并且在滿足某個(gè)特定條件下由某個(gè)事件觸發(fā)進(jìn)入第二個(gè)狀態(tài)翰铡。
- 事件:事件指的是發(fā)生在時(shí)間和空間上的對(duì)狀態(tài)機(jī)來講有意義的那些事情钝域。事件通常會(huì)引起狀態(tài)的變遷,促使?fàn)顟B(tài)機(jī)從一種狀態(tài)切換到另一種狀態(tài)锭魔,如信號(hào)例证、對(duì)象額度創(chuàng)建和銷毀等。
- 活動(dòng):活動(dòng)指的是狀態(tài)機(jī)中進(jìn)行的非原子操作迷捧。
- 動(dòng)作:動(dòng)作指的是狀態(tài)機(jī)中可以執(zhí)行的哪些原子操作织咧。所謂原子操作,指的是他們?cè)谶\(yùn)行的過程中不能被其他消息中斷漠秋,必須一直執(zhí)行下去笙蒙,以至最終導(dǎo)致狀態(tài)的變更或者返回一個(gè)值。
-
目的
UML狀態(tài)圖可以捕獲對(duì)象庆锦、子系統(tǒng)和系統(tǒng)的生命周期捅位,可以告知一個(gè)對(duì)象可以擁有的狀態(tài),并且事件(如消息的接收搂抒,時(shí)間的流逝艇搀、錯(cuò)誤、條件為真等)會(huì)怎樣隨著時(shí)間的推移來影響這些狀態(tài)求晶。一個(gè)狀態(tài)圖應(yīng)該連接到所有具有清晰的可標(biāo)志狀態(tài)和復(fù)雜行為的類焰雕;該圖可以確定類的行為以及該行為如何根據(jù)當(dāng)前的狀態(tài)而變化,也可以展示哪些事件將會(huì)改變類的對(duì)象的狀態(tài)誉帅。狀態(tài)圖主要是為了模擬響應(yīng)系統(tǒng)淀散。
以下是使用狀態(tài)圖的主要目的:
- 為了模擬系統(tǒng)的動(dòng)態(tài)環(huán)節(jié)右莱。
- 反應(yīng)系統(tǒng)模型生命周期。
- 一個(gè)對(duì)象來描述不同的狀態(tài)档插,在其生命周期的時(shí)間慢蜓。
- 定義一個(gè)狀態(tài)機(jī)模型狀態(tài)的對(duì)象。
-
示例
活動(dòng)圖
-
概述
UML活動(dòng)圖是 UML 的動(dòng)態(tài)模型的一種圖形郭膛,一般用來描述相關(guān)用例圖晨抡。
UML活動(dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)则剃。
UML活動(dòng)圖是一種特殊的狀態(tài)圖耘柱,它對(duì)于系統(tǒng)的功能建模特別重要,強(qiáng)調(diào)對(duì)象間的控制流程棍现。
UML活動(dòng)圖是一種表述過程基理调煎、業(yè)務(wù)過程以及工作流的技術(shù)。它可以用來對(duì)業(yè)務(wù)過程己肮、工作流建模士袄,也可以對(duì)用例實(shí)現(xiàn)甚至是程序?qū)崿F(xiàn)來建模。
UML活動(dòng)圖基本上是代表流程形成一個(gè)活動(dòng)到另一個(gè)活動(dòng)的流程圖谎僻÷α活動(dòng)可以被描述為一個(gè)系統(tǒng)的操作。
-
目的
UML活動(dòng)圖能夠捕捉到該系統(tǒng)的動(dòng)態(tài)行為艘绍,UML中其它的四個(gè)圖是用來顯示從一個(gè)對(duì)象到另一個(gè)消息流赤拒,但活動(dòng)圖是用來顯示消息流從一個(gè)活動(dòng)到另一個(gè)活動(dòng)圖。
活動(dòng)圖不僅用于可視化系統(tǒng)的動(dòng)態(tài)性質(zhì)诱鞠,也可用于通過使用正向和逆向工程技術(shù)來構(gòu)建可執(zhí)行的系統(tǒng)挎挖。唯一缺少的東西在活動(dòng)圖的消息部分。
它并不顯示任何消息流程從一個(gè)活動(dòng)到另一個(gè)般甲,活動(dòng)圖是一段時(shí)間視為流程圖肋乍。雖然圖中看起來像一個(gè)流程圖,但事實(shí)并非如此敷存。它顯示不同的流程墓造,如并行,分支锚烦,并發(fā)單觅闽。
以下是 UML 活動(dòng)圖目的描述:
- 繪制活動(dòng)流程系統(tǒng)。
- 描述的順序從一個(gè)活動(dòng)到另一個(gè)涮俄。
- 描述系統(tǒng)并行蛉拙,分支,并發(fā)流彻亲。
-
示例