




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章
面向?qū)ο蠹夹g(shù)與UMLXX大學(xué)XX系XXX軟件工程教程電子科技大學(xué)出版社學(xué)習(xí)目標(biāo)l
掌握面向?qū)ο蟮幕靖拍?;l
了解UML圖的作用;l
掌握UML常用圖形的繪制方法。目錄010203面向?qū)ο蠹夹g(shù)概述UML概述UML圖04本章小結(jié)05面向?qū)ο蠹夹g(shù)概述面向?qū)ο蠓椒ê突靖拍?1面向?qū)ο蠓椒ê?jiǎn)介面向?qū)ο蠓椒嫦驅(qū)ο竺?/p>
向
對(duì)
象
方
法
(
O
b
j
e
c
t-
O
r
i
e
n
t
e
d
所謂面向?qū)ο缶褪腔趯?duì)象概Method)是一種把面向?qū)ο蟮乃枷霊?yīng)用于
念,以對(duì)象為中心,以類(lèi)和繼軟件開(kāi)發(fā)過(guò)程中,指導(dǎo)開(kāi)發(fā)活動(dòng)的系統(tǒng)方
承為構(gòu)造機(jī)制,來(lái)認(rèn)識(shí)、理解法,簡(jiǎn)稱(chēng)OO
(Object-Oriented)方法,
、刻畫(huà)客觀世界和設(shè)計(jì)、構(gòu)建是建立在“對(duì)象”概念基礎(chǔ)上的方法學(xué)。
相應(yīng)的軟件系統(tǒng)。面向?qū)ο蟪绦蛟O(shè)計(jì)優(yōu)點(diǎn)1
與人類(lèi)習(xí)慣的思維方式一致2穩(wěn)定性好3
開(kāi)發(fā)時(shí)間短,效率高,可靠性高面向?qū)ο蟪绦蛟O(shè)計(jì)優(yōu)點(diǎn)4較易開(kāi)發(fā)大型軟件產(chǎn)品可維護(hù)性好5面向?qū)ο蟮幕靖拍睿?)對(duì)象(object)對(duì)象是客觀存在,要研究的事和物。對(duì)象是問(wèn)題域中某個(gè)實(shí)體的抽象,設(shè)立某個(gè)對(duì)象就反映了軟件系統(tǒng)保存有關(guān)它的信息并具有與它進(jìn)行交互的能力。一個(gè)對(duì)象通常由對(duì)象名、屬性和操作三個(gè)部分組成。面向?qū)ο蟮幕靖拍睿?)類(lèi)(class)“類(lèi)”就是對(duì)具有相同屬性和相同操作的一組相似對(duì)象的集合。有相同或相似性質(zhì)的對(duì)象的抽象就是類(lèi)。對(duì)象的抽象是類(lèi),類(lèi)的具體化就是對(duì)象,也可以說(shuō)類(lèi)的實(shí)例是對(duì)象。類(lèi)具有屬性,它是對(duì)象的狀態(tài)的抽象。類(lèi)具有操作,它是對(duì)象的行為的抽象。面向?qū)ο蟮幕靖拍睿?)消息(Message)軟件對(duì)象通過(guò)相互間傳遞消息來(lái)相互作用和通信。通常一個(gè)消息由下述三個(gè)部分組成。①對(duì)象名:接收消息的對(duì)象。②消息名:要求接收對(duì)象完成的操作。③參數(shù):執(zhí)行操作時(shí)的參數(shù)或者操作返回的結(jié)果。面向?qū)ο蟮幕靖拍睿?)方法(Method)方法,就是對(duì)象所能執(zhí)行的操作,也就是類(lèi)中所定義的服務(wù)。在面向?qū)ο蟪绦蛘Z(yǔ)言中把方法稱(chēng)為成員函數(shù)。類(lèi)中操作的實(shí)現(xiàn)過(guò)程叫做方法,一個(gè)方法有方法名、返回值、參數(shù)、方法體。面向?qū)ο蟮幕靖拍睿?)屬性(Attribute)屬性,就是類(lèi)中所定義的數(shù)據(jù),是對(duì)客觀世界實(shí)體所具有的性質(zhì)的抽象。類(lèi)的每個(gè)實(shí)例都有自己特有的屬性值。在面向?qū)ο蟪绦蛘Z(yǔ)言中把屬性稱(chēng)為數(shù)據(jù)成員。面向?qū)ο蟮幕靖拍睿?)封裝(Encapsulation)封裝性是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ)。對(duì)象是封裝的最基本單位。使用一個(gè)對(duì)象的時(shí)候,只需要知道他向外界提供的接口形式而無(wú)需知道它的數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié)和實(shí)現(xiàn)操作的算法。面向?qū)ο蟮幕靖拍顚?shí)現(xiàn)封裝性的條件如下:①有一個(gè)清晰的邊界。②有確定的接口(即協(xié)議)。③受保護(hù)的內(nèi)部實(shí)現(xiàn)。封裝性也就是信息隱藏,通過(guò)封裝把對(duì)象的實(shí)現(xiàn)細(xì)節(jié)對(duì)外界隱藏起來(lái)了。面向?qū)ο蟮幕靖拍睿?)繼承(Inheritance)繼承性是子類(lèi)自動(dòng)共享父類(lèi)數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制。繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言不同于其它語(yǔ)言的最重要的特點(diǎn)。子類(lèi)可以繼承其父類(lèi)的所有屬性和操作,子類(lèi)中還可以定義自己特有的屬性和操作。所有子類(lèi)的屬性和操作是子類(lèi)中的定義部分和父類(lèi)中的定義部分的總和。面向?qū)ο蟮幕靖拍钜粋€(gè)類(lèi)可以定義為另一個(gè)更一般的類(lèi)的特殊情況,如“轎車(chē)”類(lèi)是“汽車(chē)”類(lèi)的特殊情況,這時(shí)可以稱(chēng)一般類(lèi)是特殊類(lèi)的父類(lèi),特殊類(lèi)是一般類(lèi)的子類(lèi)。例如,“汽車(chē)”類(lèi)是“轎車(chē)”類(lèi)的父類(lèi),“轎車(chē)”類(lèi)是“汽車(chē)”類(lèi)的子類(lèi)。同樣“汽車(chē)”類(lèi)還可以是“交通工具”類(lèi)的子類(lèi),“交通工具”類(lèi)是“汽車(chē)”類(lèi)的父類(lèi)。這樣可以形成類(lèi)的一般到特殊的層次關(guān)系,如圖8.2所示。面向?qū)ο蟮幕靖拍顖D8.2
一般特殊關(guān)系面向?qū)ο蟮幕靖拍睿?)多態(tài)性(Polymorphism)多態(tài)性是指相同的操作、函數(shù)或過(guò)程可作用于多種類(lèi)型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象,收到同一消息可以產(chǎn)生不同的結(jié)果。面向?qū)ο蟮幕靖拍睿?)重載(Overloading)函數(shù)重載:同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。運(yùn)算符重載:同一個(gè)運(yùn)算符可以施加于不同類(lèi)型的操作數(shù)上。重載進(jìn)一步提高了面向?qū)ο笙到y(tǒng)的靈活性和可讀性。UML概述UML-Unified
Model
Language
統(tǒng)一建模語(yǔ)言02UML概述◆
UML-Unified
ModelLanguage統(tǒng)一建模語(yǔ)言,又稱(chēng)標(biāo)準(zhǔn)建模語(yǔ)言。是用來(lái)對(duì)軟件密集系統(tǒng)進(jìn)行可視化建模的一種語(yǔ)言,它用一組”專(zhuān)用符號(hào)描述軟件模型。UML的定義包括UML語(yǔ)義和UML表示法兩個(gè)元素?!?/p>
它適用于系統(tǒng)開(kāi)發(fā)的全過(guò)程,用定義完善的符號(hào)來(lái)圖形化地展現(xiàn)一個(gè)軟件系統(tǒng)。UML概述◆
從使用角度將UML的常用圖分為結(jié)構(gòu)和行為圖,其中共有六種結(jié)構(gòu)圖和七種行為圖?!?/p>
結(jié)構(gòu)圖也稱(chēng)為靜態(tài)模型圖,主要是用來(lái)強(qiáng)”調(diào)系統(tǒng)的建模?!?/p>
行為圖也稱(chēng)為動(dòng)態(tài)模型圖,主要用來(lái)強(qiáng)調(diào)系統(tǒng)模型中觸發(fā)的事件UML圖03用例模型概述◆
用例圖用來(lái)描述角色以及角色與用例之間的連接關(guān)系。說(shuō)明的是誰(shuí)要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么?!?/p>
用例模型描述的外部參與者所理解的系統(tǒng)功能。用例模型用于需求分析階段?!?/p>
首先,描述了待開(kāi)發(fā)系統(tǒng)的功能需求:其次,把系統(tǒng)開(kāi)發(fā)視做黑盒子,從外部參與者的角度來(lái)理解系統(tǒng);第三,參與了需求分析之后各階段的開(kāi)發(fā)工作。用例的組成◆
一個(gè)用例由以系統(tǒng)邊界、參與者、用例和關(guān)系要素構(gòu)成。1)系統(tǒng)邊界◆
系統(tǒng)邊界是定義由誰(shuí)或什么(即:參與者)使用系統(tǒng),系統(tǒng)能夠?yàn)槟男﹨⑴c者提供什么特定利益(即用例)?!?/p>
系統(tǒng)邊界在UML中繪制為方框,用系統(tǒng)的名稱(chēng)作為標(biāo)簽,參與者繪制在邊界外部,用例繪制在邊界內(nèi)部。一個(gè)棋盤(pán)管理系統(tǒng)的邊界如書(shū)上的圖8.3所示。用例的組成圖8.3
棋盤(pán)管理系統(tǒng)邊界用例的組成2)參與者(活動(dòng)者,Actor)(1)參與者的表示參與者是與系統(tǒng)交互的人或物,它代表外部實(shí)體。參與者是一個(gè)群體概念,代表的是一類(lèi)能夠使用某個(gè)功能的人或物。圖8.4
參與者的表示用例的組成(2)參與者間的關(guān)系如果一個(gè)角色的操作是由另一個(gè)角色代理完成的,先建立該角色到另外角色之間的依賴(lài)。圖8.5
角色之間的關(guān)系用例的組成(3)怎樣識(shí)別參與者對(duì)于參與者通過(guò)以下幾個(gè)問(wèn)題來(lái)確認(rèn)?!?/p>
誰(shuí)向系統(tǒng)提供信息?◆
誰(shuí)從系統(tǒng)獲取信息?◆
誰(shuí)操作系統(tǒng)?◆
誰(shuí)維護(hù)系統(tǒng)?◆
系統(tǒng)使用哪些外部資源?◆
系統(tǒng)是否和已經(jīng)存在的系統(tǒng)交互?用例(UseCase)◆
一個(gè)用例實(shí)質(zhì)上是用戶(hù)與計(jì)算機(jī)系統(tǒng)之間的一次典型的交互作用,它代表的是系統(tǒng)的一個(gè)完整的功能?!?/p>
用例具有以下特點(diǎn)。①
用例代表某些用戶(hù)可見(jiàn)的功能,實(shí)現(xiàn)一個(gè)具體的用戶(hù)目標(biāo);②用例由參與者激活,并提供確切的值給參與者;③
用例可大可小,但它必須是對(duì)一個(gè)具體的用戶(hù)目標(biāo)實(shí)現(xiàn)的完整描述。用例(UseCase)◆
用例是一個(gè)類(lèi),它代表一類(lèi)功能而不是使用該功能的某個(gè)具體事例?!?/p>
用例的實(shí)例是系統(tǒng)的一種實(shí)際使用方法,通常把用例的實(shí)例稱(chēng)為腳本。腳本是系統(tǒng)的一次具體執(zhí)行過(guò)程。關(guān)系(Relationship)◆
用例圖中有以下四種基本關(guān)系。關(guān)聯(lián)(association)包含(include)擴(kuò)展(extend)泛化(generalization)關(guān)系(Relationship)①
關(guān)聯(lián)關(guān)系描述參與者與用例之間的關(guān)系,用單向箭頭,表示誰(shuí)啟動(dòng)用例。圖8.7
關(guān)聯(lián)關(guān)系②
包含關(guān)系是指兩個(gè)用例之間的關(guān)系。其中一個(gè)用例(基本用例,base
use
case)的行為包含了另一個(gè)用例(包含用例,inclusion
use
case)的行為。圖8.10
包含關(guān)系關(guān)系(Relationship)③
擴(kuò)展關(guān)系◆
一個(gè)用例可以被定義為基礎(chǔ)用例的增量擴(kuò)展,稱(chēng)作擴(kuò)展關(guān)系?!?/p>
擴(kuò)展關(guān)系是把新的行為插入到已有用例中的方法。◆
基礎(chǔ)用例即使沒(méi)有擴(kuò)展用例也是完整的。如圖所示訂貨購(gòu)物用例和VIP打折用例之間的關(guān)系為擴(kuò)展關(guān)系。關(guān)系(Relationship)圖8.11
擴(kuò)展關(guān)系關(guān)系(Relationship)④
泛化關(guān)系◆
一個(gè)用例和幾種情形的用例間構(gòu)成泛化關(guān)系?!?/p>
往往父用例表示為抽象用例,任何父用例出現(xiàn)的地方子用例也可出現(xiàn)?!?/p>
如圖所示。電話預(yù)定用例和網(wǎng)上預(yù)訂用例是父用例預(yù)訂的具體用例,之間是泛化關(guān)系。圖8.13
泛化關(guān)系建立用例模型1)發(fā)現(xiàn)參與者2)獲取用例例8.3:有一業(yè)務(wù)需求列表如下,要求為其構(gòu)建一個(gè)用例圖。①系統(tǒng)可以供教師使用,為學(xué)生記錄成績(jī)。②系統(tǒng)根據(jù)需要?jiǎng)?chuàng)建報(bào)告卡。③系統(tǒng)允許用戶(hù)瀏覽記錄的成績(jī)。建立用例模型建立用例圖步驟:第一步:首先需要詢(xún)問(wèn)業(yè)務(wù)需求的提出者以獲取更多的信息。第二步:確定系統(tǒng)的邊界范圍,找出系統(tǒng)中的參與者和用例。第三步:細(xì)化每個(gè)用例。第四步:建立用例模型結(jié)構(gòu)。圖8.14
系統(tǒng)用例圖類(lèi)圖◆
類(lèi)圖是描述系統(tǒng)中的類(lèi),以及各個(gè)類(lèi)之間關(guān)系的靜態(tài)視圖。是一種靜態(tài)模型類(lèi)型?!?/p>
類(lèi)圖表示類(lèi)、接口和它們之間的協(xié)作關(guān)系?!?/p>
在系統(tǒng)分析階段,類(lèi)圖主要用于顯示角色和提供系統(tǒng)行為實(shí)體的職責(zé);類(lèi)圖◆
在系統(tǒng)設(shè)計(jì)階段,類(lèi)圖主要用于捕捉組成系統(tǒng)體系結(jié)構(gòu)的類(lèi)結(jié)構(gòu);◆
在系統(tǒng)編碼階段,根據(jù)類(lèi)圖中的類(lèi)及它們之間的關(guān)系實(shí)現(xiàn)系統(tǒng)的功能。類(lèi)圖的組成◆
類(lèi)圖是定義其他圖的基礎(chǔ),在類(lèi)圖的基礎(chǔ)上,狀態(tài)圖、協(xié)作圖等進(jìn)一步描述了系統(tǒng)其他方面的特性。◆類(lèi)描述一類(lèi)對(duì)象的屬性和行為。在UML中,類(lèi)的可視化表示為一個(gè)劃分成三個(gè)格子的長(zhǎng)方形?!?/p>
在系統(tǒng)編碼階段,根據(jù)類(lèi)圖中的類(lèi)及它們之間的關(guān)系實(shí)現(xiàn)系統(tǒng)的功能。圖8.15
類(lèi)的圖形符號(hào)類(lèi)之間的關(guān)系1)關(guān)聯(lián)關(guān)系關(guān)聯(lián)表示兩個(gè)類(lèi)之間存在某種語(yǔ)義上的聯(lián)系。①
普通關(guān)聯(lián)◆
普通關(guān)聯(lián)是最常見(jiàn)的關(guān)聯(lián)關(guān)系?!?/p>
如果關(guān)聯(lián)是單向的,則成為導(dǎo)航關(guān)聯(lián),其符號(hào)是用實(shí)際箭頭鏈接兩個(gè)類(lèi)。圖8.16
普通關(guān)聯(lián)類(lèi)之間的關(guān)系②
聚集聚集也稱(chēng)為集合,是關(guān)聯(lián)的特例。聚集表示的是類(lèi)與類(lèi)之間是整個(gè)與部分的關(guān)系?!?/p>
共享聚集:如果在聚集關(guān)系中處于部分方的對(duì)象可同時(shí)參與多個(gè)處于整體方對(duì)象的構(gòu)成,則該聚集稱(chēng)為共享聚集?!?/p>
復(fù)合聚集:如果部分類(lèi)完全隸屬于整體類(lèi),部分與整體共存,整體不存在了部分也會(huì)隨之消失(或失去存在價(jià)值),則該聚集稱(chēng)為復(fù)合聚集(簡(jiǎn)稱(chēng)為組成)。類(lèi)之間的關(guān)系2)泛化關(guān)系◆
UML中的泛化關(guān)系就是通常所說(shuō)的繼承關(guān)系,它是通用元素和具體元素之間的一種分類(lèi)關(guān)系?!?/p>
具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息。◆
在UML中,用一端為空心三角形的連線表示泛化關(guān)系,三角形的頂角緊挨著通用元素。類(lèi)之間的關(guān)系圖8.20
泛化關(guān)系類(lèi)之間的關(guān)系3)依賴(lài)關(guān)系◆
依賴(lài)關(guān)系描述兩個(gè)模型元素(類(lèi)、用例等)之間的語(yǔ)義連接關(guān)系;其中一個(gè)模型元素是獨(dú)立的,另一個(gè)模型元素不是獨(dú)立的,它依賴(lài)于獨(dú)立的模型元素,◆
在UML的類(lèi)圖中,用帶箭頭的虛線連接有依賴(lài)關(guān)系的兩個(gè)類(lèi),箭頭指向獨(dú)立的類(lèi)。在虛線上可以帶一個(gè)版本的標(biāo)簽,具體說(shuō)明依賴(lài)的種類(lèi)。圖8.21友元依賴(lài)關(guān)系建立類(lèi)圖建立類(lèi)圖主要遵守以下步驟。1)分析問(wèn)題域,確定需求;2)尋找類(lèi),確定類(lèi)的含義和職責(zé);3)定義類(lèi)的屬性和操作;4)確定類(lèi)之間的關(guān)系;5)精化類(lèi)和類(lèi)間的關(guān)系;6)繪制類(lèi)圖。UML中類(lèi)的三種主要版型UML中類(lèi)有三種主要的版型:邊界類(lèi)、控制類(lèi)和實(shí)體類(lèi)。1)邊界類(lèi):邊界類(lèi)位于系統(tǒng)與外界的交界處2)實(shí)體類(lèi):實(shí)體類(lèi)保存要放進(jìn)持久存儲(chǔ)體(數(shù)據(jù)庫(kù)/文件等)的信息。3)控制類(lèi)是負(fù)責(zé)管理或控制其他類(lèi)工作的類(lèi)。對(duì)象圖◆
對(duì)象圖顯示類(lèi)的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類(lèi)。它描述的不是類(lèi)之間的關(guān)系,而是對(duì)象之間的關(guān)系?!?/p>
對(duì)象是類(lèi)的實(shí)例,對(duì)象之間的連接是類(lèi)之間關(guān)聯(lián)的實(shí)例,因此,對(duì)象圖可以看做是類(lèi)圖的實(shí)例。對(duì)象圖◆
對(duì)象名有下列三種表示格式。第一種格式如對(duì)象名:類(lèi)名,即對(duì)象名在前,類(lèi)名在后,中間用冒號(hào)連接。第二種格式如:類(lèi)名,這種格式用于尚未給對(duì)象命名的情況,注意,類(lèi)名前的冒號(hào)不能省略。第三種格式如對(duì)象名,這種格式省略類(lèi)名。對(duì)象圖圖8.29
對(duì)象圖順序圖◆
順序圖又稱(chēng)序列圖,描述對(duì)象之間的動(dòng)態(tài)交互關(guān)系,著重表現(xiàn)對(duì)象間消息傳遞的時(shí)間順序?!?/p>
順序圖是用來(lái)顯示參與者如何以一系列順序的步驟與系統(tǒng)的對(duì)象交互的模型?!?/p>
順序圖由四部分組成:參與者、生命線、激活期與消息。順序圖的組成(1)參與者參與者(actor)或者對(duì)象(object)具有以下四個(gè)特點(diǎn)①參與者和對(duì)象按照從左到右的順序排列;②
一般最多兩個(gè)參與者,他們分列兩端。啟動(dòng)這個(gè)用例的參與者往往排在最左邊,接收消息的參與者則排在最右端;順序圖的組成③
對(duì)象從左到右按照重要性排列或按照消息先后順序排列;④
將對(duì)象置于順序圖的頂部意味著在交互開(kāi)始的時(shí)候?qū)ο缶鸵呀?jīng)存在了,如果對(duì)象的位置不在頂部,那么表示對(duì)象是在交互的過(guò)程中被創(chuàng)建的。順序圖的組成(2)生命線(lifeline)①每個(gè)對(duì)象都有自己的生命線,用來(lái)表示在該用例中一個(gè)對(duì)象在一段時(shí)間內(nèi)的存在;②垂直的虛線;③如果對(duì)象生存周期結(jié)束,則用注銷(xiāo)符號(hào)表示。圖8.31生命線順序圖的組成(3)激活期(activation)/
控制焦點(diǎn)(focus
ofcontrol)1)對(duì)象在一段時(shí)間內(nèi)獲得了焦點(diǎn),也稱(chēng)激活期;2)對(duì)象執(zhí)行某個(gè)動(dòng)作的時(shí)期;3)空心矩形條;4)激活期的長(zhǎng)短意味著對(duì)象執(zhí)行某個(gè)動(dòng)作的時(shí)間有多長(zhǎng),可以通過(guò)約束來(lái)限制執(zhí)行時(shí)間的長(zhǎng)短。順序圖的組成圖8.32
激活期順序圖的組成(4)消息(message)◆
消息是對(duì)象間交互信息的主要方式?!?/p>
消息具有如下三個(gè)特點(diǎn):1)順序圖中,盡力保持消息的順序是從左到右排列的。2)一個(gè)順序圖的消息流開(kāi)始于左上方,消息2的位置比消息1低,這意味著消息2的順序比消息1要遲。3)順序圖中消息編號(hào)可顯示,也可不顯示。順序圖的組成主要的消息介紹:1)調(diào)用消息。消息的發(fā)送者把控制傳遞給消息的接收者,等待接收者返回或放棄控制,可以表示同步。2)異步消息。消息的發(fā)送者把控制傳遞給消息的接收者,然后繼續(xù)自己的工作,不等待接收者返回或放棄控制。3)返回消息(Return)。表示消息的返回。消息上方放置返回值,也可以不畫(huà)出,直接隱含。虛線箭頭表示,虛線表示返回消息。順序圖的組成4)阻止消息。消息的發(fā)送者傳遞消息給接收者,
如果接收者無(wú)法立即接收,則發(fā)送者放棄該消息。5)超時(shí)消息。消息的發(fā)送者發(fā)出消息給接收者并按指定時(shí)間等待,
若接收者無(wú)法在指定時(shí)間內(nèi)接收,
則發(fā)送者放棄該消息。6)自調(diào)用。某對(duì)象自己調(diào)用自己的操作,用嵌套的矩形條表示。建立順序圖的步驟1)確定交互過(guò)程的上下文;2)識(shí)別參與交互過(guò)程的對(duì)象;3)為每個(gè)對(duì)象設(shè)置生命線;4)從引發(fā)這個(gè)交互過(guò)程的初始消息開(kāi)始,
在生命線之間自頂向下依次畫(huà)出隨后的各個(gè)消息;5)如果需要嵌套或表示消息發(fā)生的時(shí)間點(diǎn),使用控制焦點(diǎn);6)如果需要說(shuō)明時(shí)間約束,則在消息旁邊加上約束說(shuō)明;7)如果需要,可以為每個(gè)消息設(shè)置前置條件和后置條件。協(xié)作圖◆
協(xié)作圖用于描述互相合作的對(duì)象間的交互關(guān)系和鏈接關(guān)系?!?/p>
協(xié)作圖則著重體現(xiàn)交互對(duì)象間的動(dòng)態(tài)連接關(guān)系?!?/p>
如果強(qiáng)調(diào)上下級(jí)關(guān)系,選擇用協(xié)作圖◆
協(xié)作圖包含了三個(gè)元素,即對(duì)象(Object)、鏈(Link)、消息(Message)。圖8.42
協(xié)作圖建立協(xié)作圖建立協(xié)作圖的步驟如下。①確定交互過(guò)程的上下文。②識(shí)別參與交互過(guò)程的對(duì)象。③如果需要,為每個(gè)對(duì)象設(shè)置初始特性。④確定對(duì)象之間的鏈,及沿著鏈的消息。狀態(tài)圖◆
狀態(tài)機(jī)圖用來(lái)描述一個(gè)特定對(duì)象的所有可能狀態(tài),以及引起狀態(tài)轉(zhuǎn)換的事件?!?/p>
一個(gè)狀態(tài)機(jī)圖包括一系列狀態(tài)、事件以及狀態(tài)之間的轉(zhuǎn)移?!?/p>
狀態(tài):所有對(duì)象都具有狀態(tài),狀態(tài)是對(duì)象執(zhí)行了一系列活動(dòng)后的結(jié)果。當(dāng)某個(gè)事件發(fā)生后,對(duì)象的狀態(tài)將發(fā)生變化。一個(gè)狀態(tài)機(jī)圖只能有一個(gè)初始狀態(tài),而最終狀態(tài)則可以有多個(gè)。狀態(tài)圖◆
狀態(tài)轉(zhuǎn)換:狀態(tài)機(jī)圖中兩個(gè)狀態(tài)之間帶箭頭的連線稱(chēng)為狀態(tài)轉(zhuǎn)換。狀態(tài)的變遷通常是由事件觸發(fā)的,此時(shí)應(yīng)在轉(zhuǎn)移上標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。狀態(tài)圖圖8.50描述了顧客在ATM機(jī)上進(jìn)行操作時(shí)經(jīng)歷的幾種狀態(tài)以及各種狀態(tài)之間轉(zhuǎn)換的條件。圖8.50
狀態(tài)機(jī)圖活動(dòng)圖◆
活動(dòng)圖用來(lái)描述事物或?qū)ο蟮幕顒?dòng)變化流程,是一種表述業(yè)務(wù)過(guò)程、工作流的技術(shù)。◆
活動(dòng)圖描述了從活動(dòng)到活動(dòng)的流。從本質(zhì)上說(shuō),是一個(gè)流程圖,它顯示出一個(gè)過(guò)程的各個(gè)步驟。是UML中對(duì)系統(tǒng)動(dòng)態(tài)方面建模的圖之一。◆
活動(dòng)圖的組成:活動(dòng)圖由活動(dòng)、活動(dòng)流、分支與合并、分叉與匯合、泳道和對(duì)象流六要素組成。圖8.51
活動(dòng)圖活動(dòng)圖的組成1)活動(dòng)活動(dòng)(Action):
是活動(dòng)圖主要結(jié)點(diǎn),用兩邊為弧的條形框表示,中間為活動(dòng)名?;顒?dòng)分為簡(jiǎn)單活動(dòng)和復(fù)合活動(dòng)。簡(jiǎn)單活動(dòng)為不能再分解的活動(dòng),如圖8.52所示;復(fù)合活動(dòng)是可以再分解的復(fù)雜活動(dòng),如圖8.53所示?;顒?dòng)圖的組成2)活動(dòng)流活動(dòng)流(Action
Flow)用來(lái)描述活動(dòng)之間的有向關(guān)系,反映一個(gè)活動(dòng)向另外一個(gè)活動(dòng)之間的轉(zhuǎn)移。用帶箭頭的實(shí)線表示,如圖8.54所示?;顒?dòng)圖的轉(zhuǎn)換一般不需要特定事件的觸發(fā),自動(dòng)轉(zhuǎn)換?;顒?dòng)圖的組成3)分支與合并分支活動(dòng)流要根據(jù)不同的條件決定轉(zhuǎn)換的去向。分支包括一個(gè)入轉(zhuǎn)換和多個(gè)出轉(zhuǎn)換。出轉(zhuǎn)換之間是互斥的;合并包括多個(gè)入轉(zhuǎn)換和一個(gè)出轉(zhuǎn)換,如圖8.55所示。圖8.55
分支與合并活動(dòng)圖的組成4)分叉與匯合分叉與匯合用來(lái)對(duì)并發(fā)的控制流建模。分叉用于將活動(dòng)流分為兩個(gè)或多個(gè)并發(fā)運(yùn)行的分支,如圖8.56所示?;顒?dòng)圖的組成如圖8.57所示,處理訂貨活動(dòng)分叉成結(jié)帳活動(dòng)和運(yùn)貨活動(dòng),之后又匯合成通知客戶(hù)活動(dòng)。圖8.57分叉與匯合實(shí)例活動(dòng)圖的組成5)泳道泳道(swim
lane)是活動(dòng)圖中的區(qū)域劃分,每一個(gè)泳道代表一個(gè)責(zé)任區(qū)域,指明活動(dòng)是由誰(shuí)負(fù)責(zé)的或發(fā)起的。一個(gè)泳道中包括一組相關(guān)活動(dòng)。圖8.58
泳道活動(dòng)圖的組成6)
對(duì)象流對(duì)象流反映活動(dòng)與對(duì)象之間的依賴(lài)關(guān)系,表示對(duì)象對(duì)活動(dòng)的作用或活動(dòng)對(duì)對(duì)象的影響,用依賴(lài)關(guān)系表示,如圖8.59所示。①
如果箭頭從活動(dòng)指向?qū)ο螅硎净顒?dòng)對(duì)對(duì)象的創(chuàng)建、修改或撤銷(xiāo)等的影響;②
如果箭頭從對(duì)象指向活動(dòng),表示該活動(dòng)將使用所指向的對(duì)象。圖8.59
對(duì)象流建立活動(dòng)圖下面這些步驟描述了繪制活動(dòng)圖的基本任務(wù),這些任務(wù)都以迭代的方式執(zhí)行。1)確定活動(dòng)圖的范圍;2)增加起點(diǎn)和終點(diǎn);3)添加活動(dòng);4)添加活動(dòng)間的轉(zhuǎn)變;5)添加決策點(diǎn);6)找出可并行活動(dòng)之處?;顒?dòng)圖和狀態(tài)圖的比較◆
描述對(duì)象不同。狀態(tài)圖描述對(duì)象狀態(tài)及狀態(tài)之間的轉(zhuǎn)移,以狀態(tài)為中心;活動(dòng)圖描述從活動(dòng)到活動(dòng)的控制流,以活動(dòng)為中心?!?/p>
使用場(chǎng)合不同。狀態(tài)圖描述對(duì)象在其生存周期中的行為狀態(tài)變化;活動(dòng)圖描述過(guò)程的流程變化?!?/p>
目的不同?;顒?dòng)圖的主要目的是描述動(dòng)作及動(dòng)作的結(jié)果——對(duì)象狀態(tài)改變。如果狀態(tài)轉(zhuǎn)換的觸發(fā)事件是內(nèi)部動(dòng)作的完成,可以用活動(dòng)圖描述;當(dāng)狀態(tài)轉(zhuǎn)換的觸發(fā)事件是外部事件時(shí),常用狀態(tài)機(jī)圖來(lái)表示。包圖◆
包圖用于描述系統(tǒng)的分層結(jié)構(gòu),由包或類(lèi)組成,表示包與包之間的關(guān)系?!?/p>
包是一種組合機(jī)制。把各種各樣的模型元素通過(guò)內(nèi)在的語(yǔ)義關(guān)系連在一起,形成一個(gè)高內(nèi)聚、低耦合的整體就叫做包?!?/p>
包通常用于對(duì)模型的組織管理,因此有時(shí)又把包稱(chēng)為子系統(tǒng)。包圖◆
包的內(nèi)容:構(gòu)成包的模型元素稱(chēng)為包的內(nèi)容,包的內(nèi)容可以是一個(gè)類(lèi)圖也可以是另一個(gè)包圖。包與包之間不能共用一個(gè)相同的模型元素。◆
包的依賴(lài)和繼承:包與包之間允許建立依賴(lài)、泛化和細(xì)化等關(guān)系。圖8.66
包圖構(gòu)件圖和部署圖◆
構(gòu)件圖是描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴(lài)關(guān)系。用來(lái)建模軟件的構(gòu)件及其相互之間的關(guān)系,這些圖由構(gòu)件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。圖8.67
構(gòu)件圖構(gòu)件圖和部署圖◆
部署圖是用來(lái)建模系統(tǒng)的物理部署?!?/p>
部署圖也稱(chēng)配置圖。部署圖描述的是處理器、硬件設(shè)備和軟件構(gòu)建在運(yùn)行時(shí)的架構(gòu),它顯示系統(tǒng)硬件的物理拓?fù)浣Y(jié)構(gòu),以及在此結(jié)構(gòu)上運(yùn)行的軟件,也可以顯示硬件節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和通信路徑、節(jié)點(diǎn)上運(yùn)行的軟件構(gòu)建、軟件構(gòu)建包含的邏輯單元(對(duì)象、類(lèi))等。構(gòu)件圖和部署圖◆
部署圖常用于幫助理解分布式系統(tǒng)。1)節(jié)點(diǎn)和連接節(jié)點(diǎn)代表一個(gè)物理設(shè)備及在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 港口碼頭建設(shè)安全施工方案及措施
- 汽車(chē)制造項(xiàng)目經(jīng)理部各崗位職責(zé)他
- JL1901年度供應(yīng)鏈管理內(nèi)部審核計(jì)劃
- 熱力管網(wǎng)施工安全文明施工措施
- 三年級(jí)上冊(cè)地方課程教學(xué)計(jì)劃推進(jìn)他
- 2025年度幼兒園團(tuán)支部團(tuán)隊(duì)建設(shè)計(jì)劃
- 物流運(yùn)輸警示教育懺悔錄心得體會(huì)
- 護(hù)理質(zhì)量安全事件調(diào)查職責(zé)
- 教師信息技術(shù)教學(xué)方法創(chuàng)新計(jì)劃
- 期貨模擬交易心得體會(huì)及技術(shù)應(yīng)用
- 培訓(xùn)課件:血糖監(jiān)測(cè)
- 工傷保險(xiǎn)待遇申請(qǐng)表
- 【藝恩】JELLYCAT品牌洞察報(bào)告
- 2025年中考物理終極押題猜想(廣東省卷專(zhuān)用)(原卷版)
- DB36-T 2037-2024 地質(zhì)災(zāi)害治理工程施工監(jiān)理規(guī)范
- 《公路建設(shè)項(xiàng)目文件管理規(guī)程》
- 無(wú)人機(jī)物流運(yùn)輸操作規(guī)程
- 國(guó)家開(kāi)放大學(xué)電大《藥劑學(xué)》期末試題題庫(kù)及答案
- 國(guó)家開(kāi)放大學(xué)《Web開(kāi)發(fā)基礎(chǔ)》形考任務(wù)實(shí)驗(yàn)1-5參考答案
- 工程債權(quán)轉(zhuǎn)讓合同模板
- 高考英語(yǔ)考綱詞匯3500詞(珍藏版)
評(píng)論
0/150
提交評(píng)論