《軟件工程》課件-第8章 面向?qū)ο蠹夹g(shù)與UML_第1頁
《軟件工程》課件-第8章 面向?qū)ο蠹夹g(shù)與UML_第2頁
《軟件工程》課件-第8章 面向?qū)ο蠹夹g(shù)與UML_第3頁
《軟件工程》課件-第8章 面向?qū)ο蠹夹g(shù)與UML_第4頁
《軟件工程》課件-第8章 面向?qū)ο蠹夹g(shù)與UML_第5頁
已閱讀5頁,還剩93頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第8章

面向?qū)ο蠹夹g(shù)與UMLXX大學(xué)XX系XXX軟件工程教程電子科技大學(xué)出版社學(xué)習(xí)目標(biāo)l

掌握面向?qū)ο蟮幕靖拍睿籰

了解UML圖的作用;l

掌握UML常用圖形的繪制方法。目錄010203面向?qū)ο蠹夹g(shù)概述UML概述UML圖04本章小結(jié)05面向?qū)ο蠹夹g(shù)概述面向?qū)ο蠓椒ê突靖拍?1面向?qū)ο蠓椒ê喗槊嫦驅(qū)ο蠓椒嫦驅(qū)ο竺?/p>

(

O

b

j

e

c

t-

O

r

i

e

n

t

e

d

所謂面向?qū)ο缶褪腔趯ο蟾臡ethod)是一種把面向?qū)ο蟮乃枷霊?yīng)用于

念,以對象為中心,以類和繼軟件開發(fā)過程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方

承為構(gòu)造機(jī)制,來認(rèn)識(shí)、理解法,簡稱OO

(Object-Oriented)方法,

、刻畫客觀世界和設(shè)計(jì)、構(gòu)建是建立在“對象”概念基礎(chǔ)上的方法學(xué)。

相應(yīng)的軟件系統(tǒng)。面向?qū)ο蟪绦蛟O(shè)計(jì)優(yōu)點(diǎn)1

與人類習(xí)慣的思維方式一致2穩(wěn)定性好3

開發(fā)時(shí)間短,效率高,可靠性高面向?qū)ο蟪绦蛟O(shè)計(jì)優(yōu)點(diǎn)4較易開發(fā)大型軟件產(chǎn)品可維護(hù)性好5面向?qū)ο蟮幕靖拍睿?)對象(object)對象是客觀存在,要研究的事和物。對象是問題域中某個(gè)實(shí)體的抽象,設(shè)立某個(gè)對象就反映了軟件系統(tǒng)保存有關(guān)它的信息并具有與它進(jìn)行交互的能力。一個(gè)對象通常由對象名、屬性和操作三個(gè)部分組成。面向?qū)ο蟮幕靖拍睿?)類(class)“類”就是對具有相同屬性和相同操作的一組相似對象的集合。有相同或相似性質(zhì)的對象的抽象就是類。對象的抽象是類,類的具體化就是對象,也可以說類的實(shí)例是對象。類具有屬性,它是對象的狀態(tài)的抽象。類具有操作,它是對象的行為的抽象。面向?qū)ο蟮幕靖拍睿?)消息(Message)軟件對象通過相互間傳遞消息來相互作用和通信。通常一個(gè)消息由下述三個(gè)部分組成。①對象名:接收消息的對象。②消息名:要求接收對象完成的操作。③參數(shù):執(zhí)行操作時(shí)的參數(shù)或者操作返回的結(jié)果。面向?qū)ο蟮幕靖拍睿?)方法(Method)方法,就是對象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。在面向?qū)ο蟪绦蛘Z言中把方法稱為成員函數(shù)。類中操作的實(shí)現(xiàn)過程叫做方法,一個(gè)方法有方法名、返回值、參數(shù)、方法體。面向?qū)ο蟮幕靖拍睿?)屬性(Attribute)屬性,就是類中所定義的數(shù)據(jù),是對客觀世界實(shí)體所具有的性質(zhì)的抽象。類的每個(gè)實(shí)例都有自己特有的屬性值。在面向?qū)ο蟪绦蛘Z言中把屬性稱為數(shù)據(jù)成員。面向?qū)ο蟮幕靖拍睿?)封裝(Encapsulation)封裝性是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ)。對象是封裝的最基本單位。使用一個(gè)對象的時(shí)候,只需要知道他向外界提供的接口形式而無需知道它的數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié)和實(shí)現(xiàn)操作的算法。面向?qū)ο蟮幕靖拍顚?shí)現(xiàn)封裝性的條件如下:①有一個(gè)清晰的邊界。②有確定的接口(即協(xié)議)。③受保護(hù)的內(nèi)部實(shí)現(xiàn)。封裝性也就是信息隱藏,通過封裝把對象的實(shí)現(xiàn)細(xì)節(jié)對外界隱藏起來了。面向?qū)ο蟮幕靖拍睿?)繼承(Inheritance)繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制。繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語言不同于其它語言的最重要的特點(diǎn)。子類可以繼承其父類的所有屬性和操作,子類中還可以定義自己特有的屬性和操作。所有子類的屬性和操作是子類中的定義部分和父類中的定義部分的總和。面向?qū)ο蟮幕靖拍钜粋€(gè)類可以定義為另一個(gè)更一般的類的特殊情況,如“轎車”類是“汽車”類的特殊情況,這時(shí)可以稱一般類是特殊類的父類,特殊類是一般類的子類。例如,“汽車”類是“轎車”類的父類,“轎車”類是“汽車”類的子類。同樣“汽車”類還可以是“交通工具”類的子類,“交通工具”類是“汽車”類的父類。這樣可以形成類的一般到特殊的層次關(guān)系,如圖8.2所示。面向?qū)ο蟮幕靖拍顖D8.2

一般特殊關(guān)系面向?qū)ο蟮幕靖拍睿?)多態(tài)性(Polymorphism)多態(tài)性是指相同的操作、函數(shù)或過程可作用于多種類型的對象上并獲得不同的結(jié)果。不同的對象,收到同一消息可以產(chǎn)生不同的結(jié)果。面向?qū)ο蟮幕靖拍睿?)重載(Overloading)函數(shù)重載:同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。運(yùn)算符重載:同一個(gè)運(yùn)算符可以施加于不同類型的操作數(shù)上。重載進(jìn)一步提高了面向?qū)ο笙到y(tǒng)的靈活性和可讀性。UML概述UML-Unified

Model

Language

統(tǒng)一建模語言02UML概述◆

UML-Unified

ModelLanguage統(tǒng)一建模語言,又稱標(biāo)準(zhǔn)建模語言。是用來對軟件密集系統(tǒng)進(jìn)行可視化建模的一種語言,它用一組”專用符號描述軟件模型。UML的定義包括UML語義和UML表示法兩個(gè)元素?!?/p>

它適用于系統(tǒng)開發(fā)的全過程,用定義完善的符號來圖形化地展現(xiàn)一個(gè)軟件系統(tǒng)。UML概述◆

從使用角度將UML的常用圖分為結(jié)構(gòu)和行為圖,其中共有六種結(jié)構(gòu)圖和七種行為圖?!?/p>

結(jié)構(gòu)圖也稱為靜態(tài)模型圖,主要是用來強(qiáng)”調(diào)系統(tǒng)的建模。◆

行為圖也稱為動(dòng)態(tài)模型圖,主要用來強(qiáng)調(diào)系統(tǒng)模型中觸發(fā)的事件UML圖03用例模型概述◆

用例圖用來描述角色以及角色與用例之間的連接關(guān)系。說明的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。◆

用例模型描述的外部參與者所理解的系統(tǒng)功能。用例模型用于需求分析階段。◆

首先,描述了待開發(fā)系統(tǒng)的功能需求:其次,把系統(tǒng)開發(fā)視做黑盒子,從外部參與者的角度來理解系統(tǒng);第三,參與了需求分析之后各階段的開發(fā)工作。用例的組成◆

一個(gè)用例由以系統(tǒng)邊界、參與者、用例和關(guān)系要素構(gòu)成。1)系統(tǒng)邊界◆

系統(tǒng)邊界是定義由誰或什么(即:參與者)使用系統(tǒng),系統(tǒng)能夠?yàn)槟男﹨⑴c者提供什么特定利益(即用例)?!?/p>

系統(tǒng)邊界在UML中繪制為方框,用系統(tǒng)的名稱作為標(biāo)簽,參與者繪制在邊界外部,用例繪制在邊界內(nèi)部。一個(gè)棋盤管理系統(tǒng)的邊界如書上的圖8.3所示。用例的組成圖8.3

棋盤管理系統(tǒng)邊界用例的組成2)參與者(活動(dòng)者,Actor)(1)參與者的表示參與者是與系統(tǒng)交互的人或物,它代表外部實(shí)體。參與者是一個(gè)群體概念,代表的是一類能夠使用某個(gè)功能的人或物。圖8.4

參與者的表示用例的組成(2)參與者間的關(guān)系如果一個(gè)角色的操作是由另一個(gè)角色代理完成的,先建立該角色到另外角色之間的依賴。圖8.5

角色之間的關(guān)系用例的組成(3)怎樣識(shí)別參與者對于參與者通過以下幾個(gè)問題來確認(rèn)?!?/p>

誰向系統(tǒng)提供信息?◆

誰從系統(tǒng)獲取信息?◆

誰操作系統(tǒng)?◆

誰維護(hù)系統(tǒng)?◆

系統(tǒng)使用哪些外部資源?◆

系統(tǒng)是否和已經(jīng)存在的系統(tǒng)交互?用例(UseCase)◆

一個(gè)用例實(shí)質(zhì)上是用戶與計(jì)算機(jī)系統(tǒng)之間的一次典型的交互作用,它代表的是系統(tǒng)的一個(gè)完整的功能。◆

用例具有以下特點(diǎn)。①

用例代表某些用戶可見的功能,實(shí)現(xiàn)一個(gè)具體的用戶目標(biāo);②用例由參與者激活,并提供確切的值給參與者;③

用例可大可小,但它必須是對一個(gè)具體的用戶目標(biāo)實(shí)現(xiàn)的完整描述。用例(UseCase)◆

用例是一個(gè)類,它代表一類功能而不是使用該功能的某個(gè)具體事例?!?/p>

用例的實(shí)例是系統(tǒng)的一種實(shí)際使用方法,通常把用例的實(shí)例稱為腳本。腳本是系統(tǒng)的一次具體執(zhí)行過程。關(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)系,用單向箭頭,表示誰啟動(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ò)展,稱作擴(kuò)展關(guān)系。◆

擴(kuò)展關(guān)系是把新的行為插入到已有用例中的方法?!?/p>

基礎(chǔ)用例即使沒有擴(kuò)展用例也是完整的。如圖所示訂貨購物用例和VIP打折用例之間的關(guān)系為擴(kuò)展關(guān)系。關(guān)系(Relationship)圖8.11

擴(kuò)展關(guān)系關(guān)系(Relationship)④

泛化關(guān)系◆

一個(gè)用例和幾種情形的用例間構(gòu)成泛化關(guān)系。◆

往往父用例表示為抽象用例,任何父用例出現(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é)生記錄成績。②系統(tǒng)根據(jù)需要?jiǎng)?chuàng)建報(bào)告卡。③系統(tǒng)允許用戶瀏覽記錄的成績。建立用例模型建立用例圖步驟:第一步:首先需要詢問業(yè)務(wù)需求的提出者以獲取更多的信息。第二步:確定系統(tǒng)的邊界范圍,找出系統(tǒng)中的參與者和用例。第三步:細(xì)化每個(gè)用例。第四步:建立用例模型結(jié)構(gòu)。圖8.14

系統(tǒng)用例圖類圖◆

類圖是描述系統(tǒng)中的類,以及各個(gè)類之間關(guān)系的靜態(tài)視圖。是一種靜態(tài)模型類型?!?/p>

類圖表示類、接口和它們之間的協(xié)作關(guān)系?!?/p>

在系統(tǒng)分析階段,類圖主要用于顯示角色和提供系統(tǒng)行為實(shí)體的職責(zé);類圖◆

在系統(tǒng)設(shè)計(jì)階段,類圖主要用于捕捉組成系統(tǒng)體系結(jié)構(gòu)的類結(jié)構(gòu);◆

在系統(tǒng)編碼階段,根據(jù)類圖中的類及它們之間的關(guān)系實(shí)現(xiàn)系統(tǒng)的功能。類圖的組成◆

類圖是定義其他圖的基礎(chǔ),在類圖的基礎(chǔ)上,狀態(tài)圖、協(xié)作圖等進(jìn)一步描述了系統(tǒng)其他方面的特性。◆類描述一類對象的屬性和行為。在UML中,類的可視化表示為一個(gè)劃分成三個(gè)格子的長方形?!?/p>

在系統(tǒng)編碼階段,根據(jù)類圖中的類及它們之間的關(guān)系實(shí)現(xiàn)系統(tǒng)的功能。圖8.15

類的圖形符號類之間的關(guān)系1)關(guān)聯(lián)關(guān)系關(guān)聯(lián)表示兩個(gè)類之間存在某種語義上的聯(lián)系。①

普通關(guān)聯(lián)◆

普通關(guān)聯(lián)是最常見的關(guān)聯(lián)關(guān)系。◆

如果關(guān)聯(lián)是單向的,則成為導(dǎo)航關(guān)聯(lián),其符號是用實(shí)際箭頭鏈接兩個(gè)類。圖8.16

普通關(guān)聯(lián)類之間的關(guān)系②

聚集聚集也稱為集合,是關(guān)聯(lián)的特例。聚集表示的是類與類之間是整個(gè)與部分的關(guān)系?!?/p>

共享聚集:如果在聚集關(guān)系中處于部分方的對象可同時(shí)參與多個(gè)處于整體方對象的構(gòu)成,則該聚集稱為共享聚集。◆

復(fù)合聚集:如果部分類完全隸屬于整體類,部分與整體共存,整體不存在了部分也會(huì)隨之消失(或失去存在價(jià)值),則該聚集稱為復(fù)合聚集(簡稱為組成)。類之間的關(guān)系2)泛化關(guān)系◆

UML中的泛化關(guān)系就是通常所說的繼承關(guān)系,它是通用元素和具體元素之間的一種分類關(guān)系?!?/p>

具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息?!?/p>

在UML中,用一端為空心三角形的連線表示泛化關(guān)系,三角形的頂角緊挨著通用元素。類之間的關(guān)系圖8.20

泛化關(guān)系類之間的關(guān)系3)依賴關(guān)系◆

依賴關(guān)系描述兩個(gè)模型元素(類、用例等)之間的語義連接關(guān)系;其中一個(gè)模型元素是獨(dú)立的,另一個(gè)模型元素不是獨(dú)立的,它依賴于獨(dú)立的模型元素,◆

在UML的類圖中,用帶箭頭的虛線連接有依賴關(guān)系的兩個(gè)類,箭頭指向獨(dú)立的類。在虛線上可以帶一個(gè)版本的標(biāo)簽,具體說明依賴的種類。圖8.21友元依賴關(guān)系建立類圖建立類圖主要遵守以下步驟。1)分析問題域,確定需求;2)尋找類,確定類的含義和職責(zé);3)定義類的屬性和操作;4)確定類之間的關(guān)系;5)精化類和類間的關(guān)系;6)繪制類圖。UML中類的三種主要版型UML中類有三種主要的版型:邊界類、控制類和實(shí)體類。1)邊界類:邊界類位于系統(tǒng)與外界的交界處2)實(shí)體類:實(shí)體類保存要放進(jìn)持久存儲(chǔ)體(數(shù)據(jù)庫/文件等)的信息。3)控制類是負(fù)責(zé)管理或控制其他類工作的類。對象圖◆

對象圖顯示類的多個(gè)對象實(shí)例,而不是實(shí)際的類。它描述的不是類之間的關(guān)系,而是對象之間的關(guān)系。◆

對象是類的實(shí)例,對象之間的連接是類之間關(guān)聯(lián)的實(shí)例,因此,對象圖可以看做是類圖的實(shí)例。對象圖◆

對象名有下列三種表示格式。第一種格式如對象名:類名,即對象名在前,類名在后,中間用冒號連接。第二種格式如:類名,這種格式用于尚未給對象命名的情況,注意,類名前的冒號不能省略。第三種格式如對象名,這種格式省略類名。對象圖圖8.29

對象圖順序圖◆

順序圖又稱序列圖,描述對象之間的動(dòng)態(tài)交互關(guān)系,著重表現(xiàn)對象間消息傳遞的時(shí)間順序?!?/p>

順序圖是用來顯示參與者如何以一系列順序的步驟與系統(tǒng)的對象交互的模型。◆

順序圖由四部分組成:參與者、生命線、激活期與消息。順序圖的組成(1)參與者參與者(actor)或者對象(object)具有以下四個(gè)特點(diǎn)①參與者和對象按照從左到右的順序排列;②

一般最多兩個(gè)參與者,他們分列兩端。啟動(dòng)這個(gè)用例的參與者往往排在最左邊,接收消息的參與者則排在最右端;順序圖的組成③

對象從左到右按照重要性排列或按照消息先后順序排列;④

將對象置于順序圖的頂部意味著在交互開始的時(shí)候?qū)ο缶鸵呀?jīng)存在了,如果對象的位置不在頂部,那么表示對象是在交互的過程中被創(chuàng)建的。順序圖的組成(2)生命線(lifeline)①每個(gè)對象都有自己的生命線,用來表示在該用例中一個(gè)對象在一段時(shí)間內(nèi)的存在;②垂直的虛線;③如果對象生存周期結(jié)束,則用注銷符號表示。圖8.31生命線順序圖的組成(3)激活期(activation)/

控制焦點(diǎn)(focus

ofcontrol)1)對象在一段時(shí)間內(nèi)獲得了焦點(diǎn),也稱激活期;2)對象執(zhí)行某個(gè)動(dòng)作的時(shí)期;3)空心矩形條;4)激活期的長短意味著對象執(zhí)行某個(gè)動(dòng)作的時(shí)間有多長,可以通過約束來限制執(zhí)行時(shí)間的長短。順序圖的組成圖8.32

激活期順序圖的組成(4)消息(message)◆

消息是對象間交互信息的主要方式。◆

消息具有如下三個(gè)特點(diǎn):1)順序圖中,盡力保持消息的順序是從左到右排列的。2)一個(gè)順序圖的消息流開始于左上方,消息2的位置比消息1低,這意味著消息2的順序比消息1要遲。3)順序圖中消息編號可顯示,也可不顯示。順序圖的組成主要的消息介紹:1)調(diào)用消息。消息的發(fā)送者把控制傳遞給消息的接收者,等待接收者返回或放棄控制,可以表示同步。2)異步消息。消息的發(fā)送者把控制傳遞給消息的接收者,然后繼續(xù)自己的工作,不等待接收者返回或放棄控制。3)返回消息(Return)。表示消息的返回。消息上方放置返回值,也可以不畫出,直接隱含。虛線箭頭表示,虛線表示返回消息。順序圖的組成4)阻止消息。消息的發(fā)送者傳遞消息給接收者,

如果接收者無法立即接收,則發(fā)送者放棄該消息。5)超時(shí)消息。消息的發(fā)送者發(fā)出消息給接收者并按指定時(shí)間等待,

若接收者無法在指定時(shí)間內(nèi)接收,

則發(fā)送者放棄該消息。6)自調(diào)用。某對象自己調(diào)用自己的操作,用嵌套的矩形條表示。建立順序圖的步驟1)確定交互過程的上下文;2)識(shí)別參與交互過程的對象;3)為每個(gè)對象設(shè)置生命線;4)從引發(fā)這個(gè)交互過程的初始消息開始,

在生命線之間自頂向下依次畫出隨后的各個(gè)消息;5)如果需要嵌套或表示消息發(fā)生的時(shí)間點(diǎn),使用控制焦點(diǎn);6)如果需要說明時(shí)間約束,則在消息旁邊加上約束說明;7)如果需要,可以為每個(gè)消息設(shè)置前置條件和后置條件。協(xié)作圖◆

協(xié)作圖用于描述互相合作的對象間的交互關(guān)系和鏈接關(guān)系?!?/p>

協(xié)作圖則著重體現(xiàn)交互對象間的動(dòng)態(tài)連接關(guān)系?!?/p>

如果強(qiáng)調(diào)上下級關(guān)系,選擇用協(xié)作圖◆

協(xié)作圖包含了三個(gè)元素,即對象(Object)、鏈(Link)、消息(Message)。圖8.42

協(xié)作圖建立協(xié)作圖建立協(xié)作圖的步驟如下。①確定交互過程的上下文。②識(shí)別參與交互過程的對象。③如果需要,為每個(gè)對象設(shè)置初始特性。④確定對象之間的鏈,及沿著鏈的消息。狀態(tài)圖◆

狀態(tài)機(jī)圖用來描述一個(gè)特定對象的所有可能狀態(tài),以及引起狀態(tài)轉(zhuǎn)換的事件?!?/p>

一個(gè)狀態(tài)機(jī)圖包括一系列狀態(tài)、事件以及狀態(tài)之間的轉(zhuǎn)移?!?/p>

狀態(tài):所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動(dòng)后的結(jié)果。當(dāng)某個(gè)事件發(fā)生后,對象的狀態(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)之間帶箭頭的連線稱為狀態(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)圖用來描述事物或?qū)ο蟮幕顒?dòng)變化流程,是一種表述業(yè)務(wù)過程、工作流的技術(shù)?!?/p>

活動(dòng)圖描述了從活動(dòng)到活動(dòng)的流。從本質(zhì)上說,是一個(gè)流程圖,它顯示出一個(gè)過程的各個(gè)步驟。是UML中對系統(tǒng)動(dòng)態(tài)方面建模的圖之一?!?/p>

活動(dòng)圖的組成:活動(dòng)圖由活動(dòng)、活動(dòng)流、分支與合并、分叉與匯合、泳道和對象流六要素組成。圖8.51

活動(dòng)圖活動(dòng)圖的組成1)活動(dòng)活動(dòng)(Action):

是活動(dòng)圖主要結(jié)點(diǎn),用兩邊為弧的條形框表示,中間為活動(dòng)名。活動(dòng)分為簡單活動(dòng)和復(fù)合活動(dòng)。簡單活動(dòng)為不能再分解的活動(dòng),如圖8.52所示;復(fù)合活動(dòng)是可以再分解的復(fù)雜活動(dòng),如圖8.53所示。活動(dòng)圖的組成2)活動(dòng)流活動(dòng)流(Action

Flow)用來描述活動(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)分叉與匯合分叉與匯合用來對并發(fā)的控制流建模。分叉用于將活動(dòng)流分為兩個(gè)或多個(gè)并發(fā)運(yùn)行的分支,如圖8.56所示。活動(dòng)圖的組成如圖8.57所示,處理訂貨活動(dòng)分叉成結(jié)帳活動(dòng)和運(yùn)貨活動(dòng),之后又匯合成通知客戶活動(dòng)。圖8.57分叉與匯合實(shí)例活動(dòng)圖的組成5)泳道泳道(swim

lane)是活動(dòng)圖中的區(qū)域劃分,每一個(gè)泳道代表一個(gè)責(zé)任區(qū)域,指明活動(dòng)是由誰負(fù)責(zé)的或發(fā)起的。一個(gè)泳道中包括一組相關(guān)活動(dòng)。圖8.58

泳道活動(dòng)圖的組成6)

對象流對象流反映活動(dòng)與對象之間的依賴關(guān)系,表示對象對活動(dòng)的作用或活動(dòng)對對象的影響,用依賴關(guān)系表示,如圖8.59所示。①

如果箭頭從活動(dòng)指向?qū)ο?,表示活?dòng)對對象的創(chuàng)建、修改或撤銷等的影響;②

如果箭頭從對象指向活動(dòng),表示該活動(dòng)將使用所指向的對象。圖8.59

對象流建立活動(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)圖的比較◆

描述對象不同。狀態(tài)圖描述對象狀態(tài)及狀態(tài)之間的轉(zhuǎn)移,以狀態(tài)為中心;活動(dòng)圖描述從活動(dòng)到活動(dòng)的控制流,以活動(dòng)為中心。◆

使用場合不同。狀態(tài)圖描述對象在其生存周期中的行為狀態(tài)變化;活動(dòng)圖描述過程的流程變化。◆

目的不同。活動(dòng)圖的主要目的是描述動(dòng)作及動(dòng)作的結(jié)果——對象狀態(tài)改變。如果狀態(tài)轉(zhuǎn)換的觸發(fā)事件是內(nèi)部動(dòng)作的完成,可以用活動(dòng)圖描述;當(dāng)狀態(tài)轉(zhuǎn)換的觸發(fā)事件是外部事件時(shí),常用狀態(tài)機(jī)圖來表示。包圖◆

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

包是一種組合機(jī)制。把各種各樣的模型元素通過內(nèi)在的語義關(guān)系連在一起,形成一個(gè)高內(nèi)聚、低耦合的整體就叫做包。◆

包通常用于對模型的組織管理,因此有時(shí)又把包稱為子系統(tǒng)。包圖◆

包的內(nèi)容:構(gòu)成包的模型元素稱為包的內(nèi)容,包的內(nèi)容可以是一個(gè)類圖也可以是另一個(gè)包圖。包與包之間不能共用一個(gè)相同的模型元素。◆

包的依賴和繼承:包與包之間允許建立依賴、泛化和細(xì)化等關(guān)系。圖8.66

包圖構(gòu)件圖和部署圖◆

構(gòu)件圖是描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴關(guān)系。用來建模軟件的構(gòu)件及其相互之間的關(guān)系,這些圖由構(gòu)件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。圖8.67

構(gòu)件圖構(gòu)件圖和部署圖◆

部署圖是用來建模系統(tǒng)的物理部署?!?/p>

部署圖也稱配置圖。部署圖描述的是處理器、硬件設(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)建包含的邏輯單元(對象、類)等。構(gòu)件圖和部署圖◆

部署圖常用于幫助理解分布式系統(tǒng)。1)節(jié)點(diǎn)和連接節(jié)點(diǎn)代表一個(gè)物理設(shè)備及在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論