第 順序圖和協(xié)作圖_第1頁
第 順序圖和協(xié)作圖_第2頁
第 順序圖和協(xié)作圖_第3頁
第 順序圖和協(xié)作圖_第4頁
第 順序圖和協(xié)作圖_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學(xué)1第順序圖和協(xié)作圖6.1順序圖概述

順序圖的主要用途之一是用來為某個用例的泛化功能提供其所缺乏的解釋,即把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。

順序圖描述了對象之間傳遞消息的時間順序,用來表示用例中行為順序。用例常常被細(xì)化為一個或多個的順序圖。順序圖用一個二維圖描述系統(tǒng)中各個對象之間的交互關(guān)系。主要由四個標(biāo)記符組成:對象、生命線、消息和激活。

第1頁/共46頁6.1順序圖概述在順序圖中參加交互的各個對象沿橫軸排列,發(fā)起交互的對象通常放在左邊,其他對象依次放在右邊。這些對象發(fā)送和接收的消息沿縱軸方向按時間順序從上到下放置。該在順序圖中縱軸為時間軸。

順序圖清晰地描述了系統(tǒng)隨時間推移的控制流軌跡。圖中每個對象在單獨的一列中,每個對象符號放置在代表生成對象消息的箭頭末端,其垂直位置表示該對象第一次生成的時間。第2頁/共46頁6.2順序圖元素

順序圖描述了對象以及對象之間傳遞的消息,強(qiáng)調(diào)對象之間的交互是按照時間的先后順序發(fā)生的,這些特定順序發(fā)生的交互序列從開始到結(jié)束需要一定的時間。在順序圖中主要包括了以下四種元素:對象生命線激活消息第3頁/共46頁6.2順序圖元素類定義了對象可執(zhí)行的各種行為,但在面向?qū)ο笙到y(tǒng)中,行為的執(zhí)行者是對象,而不是類,因此在順序圖中通常描述的是對象層次而不是類層次。

面向?qū)ο蠓治鲋凶罨镜膯挝皇菍ο?,它代表現(xiàn)實世界中一個一個地具體事物。

在順序圖中使用一個方框表示一個對象,對象的名字下面有一個下劃線,一個學(xué)生對象“張三”如圖所示。

6.2.1對象張三第4頁/共46頁6.2順序圖元素在順序圖中也可以使用用例圖中的參與者圖符。如果一個對象在順序圖的第一個操作之前就已經(jīng)存在,那么該對象的圖符就應(yīng)該畫在順序圖的頂部。如果一個對象是在順序圖的交互過程中,由其他對象創(chuàng)建的,那么該對象就不應(yīng)該出現(xiàn)在順序圖的頂端,而應(yīng)該出現(xiàn)在創(chuàng)建該對象消息的末端。第5頁/共46頁6.2順序圖元素

對象在垂直方向拖出的虛線是對象的生命線,用于表示對象是存在的時間范圍。

對象的生命線是一個時間線,從順序圖的頂部一直延續(xù)到順序圖的底部,所用的長度取決于交互的維持長度。

6.2.2生命線第6頁/共46頁6.2順序圖元素

對象生命線上的窄矩形條被稱為激活,激活表示該對象正在執(zhí)行某個操作,圖符如圖所示。激活條的長短表示執(zhí)行操作的時間。一個被激活的對象要么執(zhí)行自己的代碼,要么等待另一個對象的返回結(jié)果。

6.2.3激活第7頁/共46頁6.2順序圖元素

激活在順序圖中不能夠單獨存在必須與生命線連在一起使用,當(dāng)一條消息被傳遞給對象的時候,該消息將觸發(fā)該對象的某個行為,此時該對象就被激活了。通常情況下,表示激活的矩形的頂點是消息和生命線交匯的地方,表示對象從此時起開始獲得控制權(quán),而矩形的底部則表示該次交互已經(jīng)結(jié)束,或?qū)ο蟮囊呀?jīng)交控制權(quán)交出。

第8頁/共46頁6.2順序圖元素

在順序圖中,對象都不是孤立存在的,這些對象之間是通過消息進(jìn)行通訊。對象通過相互傳遞消息來進(jìn)行相互作用。使用消息是用來說明順序圖中不同活動對象之間的通信過程。一個消息可以激發(fā)一個對象的某個操作,完成一定的功能。

6.2.4消息順序圖中,消息由從一個對象的生命線指向另一個對象的生命線的直線箭頭表示,箭頭上標(biāo)注要發(fā)送的消息名。在消息的起點隱含著發(fā)送事件,消息的終點隱含著接收事件。

第9頁/共46頁6.2順序圖元素

在順序圖中消息的次序是由它們在垂直軸上的位置來決定的,在垂直軸上靠上的消息先發(fā)送,靠下的消息后發(fā)送。在UML中,消息的發(fā)送方和消息的接收方可以是同一個對象。也就是說,對象也可以將消息發(fā)送給自己本身,也就是自己給自己發(fā)送消息

在UML中,每一條消息可以帶有一個名稱說明,可以帶參數(shù)。消息還可以包含條件以限制它們只在滿足條件時才能被發(fā)送。條件標(biāo)注在消息的名稱上的方括號中。

第10頁/共46頁6.2順序圖元素從消息和消息端的元模型可以得知,消息包含了消息種類(messagekind)和消息性質(zhì)(messagesort)兩個屬性。

消息中包括四種消息種類:

完整消息(completemessage):一般常見的消息都是完整消息,該消息的發(fā)送事件和接受事件都是存在的。

迷途消息(lostmessage):只有發(fā)送事件,但沒有接收事件的消息稱為迷途消息,對于迷途消息,在表示時需要在消息的箭頭端加上一個實心的小圓。第11頁/共46頁6.2順序圖元素尋獲消息(foundmessage):缺少了發(fā)送事件,只有接收事件的消息稱為尋獲消息。對于尋獲消息,在表示時需要在消息的非箭頭端加上一個實心的小圓。未知消息(unknownmessage):既沒有發(fā)送事件,也沒有接收事件的消息稱為未知消息。對于未知消息,UML中也沒有詳細(xì)說明這種消息,也許這個消息在實際應(yīng)用時并不真實存在。

第12頁/共46頁6.2順序圖元素

根據(jù)通信性質(zhì)的不同,UML中定義了幾種消息的性質(zhì)。在UML2.0規(guī)格書中,定義了四種消息性質(zhì),在UML2.1.1中,消息性質(zhì)從原來的四種變?yōu)榱肆N,這是UML中變化比較大的部分。

創(chuàng)建消息(createMessage):用來創(chuàng)建對象的消息,稱為創(chuàng)建消息。它的圖符是帶開放性箭頭的虛線,箭頭的指向目標(biāo)對象,如下圖所示。

第13頁/共46頁6.2順序圖元素

同步調(diào)用(synchCall):同步調(diào)用消息代表一個操作調(diào)用的控制流。同步調(diào)用消息的發(fā)送方把控制傳遞給消息的接收者,然后暫停活動,等待消息接受者的應(yīng)答,收到應(yīng)答后才繼續(xù)自己的操作。同步調(diào)用消息被水平的置于對象的生命線之間,水平放置的方式說明消息的傳遞是瞬時的,即消息在發(fā)出之后會馬上被收到。它的圖符是帶實心箭頭的實現(xiàn),如下圖所示。第14頁/共46頁6.2順序圖元素回復(fù)消息(replymessage):目標(biāo)對象執(zhí)行結(jié)束時,會發(fā)出回復(fù)消息給來源對象。它的圖符是帶開放式箭頭的虛線,從負(fù)責(zé)執(zhí)行的目標(biāo)對象反向指回給來源對象,如下圖所示。

異步調(diào)用(asynchCall):異步調(diào)用消息表示消息的發(fā)送對象不用等待消息接收對象回應(yīng)的返回消息,即可以開始另一個活動。異步調(diào)用消息在某種程度上規(guī)定了發(fā)送方和接收方的責(zé)任,即發(fā)送方只負(fù)責(zé)將消息發(fā)送到接收方,至于接收方如何響應(yīng),發(fā)送方則不需要知道。

第15頁/共46頁6.2順序圖元素

最常見的實現(xiàn)異步消息的方式是使用線程。當(dāng)系統(tǒng)發(fā)送異步消息時,需要啟動一個線程在后臺運行。異步調(diào)用的圖符如下圖所示。

異步信號(asynchSignal):同步信號消息和異步信號消息的區(qū)別在于,消息發(fā)送對象是否等待目標(biāo)執(zhí)行結(jié)束才繼續(xù)往下執(zhí)行。異步信號消息類似于最常用的簡單消息,一般情況下,如果不必強(qiáng)調(diào)消息的性質(zhì),則可以使用異步信號消息代表其他性質(zhì)的消息。它的圖符如下圖所示。

第16頁/共46頁6.4順序圖理解下圖給出了一個圖書超期檢查系統(tǒng)的順序圖示例,用來描述圖書館中圖書超期檢查的過程。參與圖書檢查的對象有四個:系統(tǒng)、圖書、讀者及通知單。PrintNotice()CheckAllBooks()CheckTimeExceding()GetBookInformations()GetReaderInformations()Create()系統(tǒng)圖書讀者通知單第17頁/共46頁6.4順序圖理解對象“系統(tǒng)”是圖書管理系統(tǒng)中的一個控制程序,它負(fù)責(zé)定期檢查是否有超期圖書;“圖書”對象是圖書館中的每一本具體的圖書;“讀者”對象是借閱圖書的某個具體的讀者;“通知單”對象是一個具體的超期通知單。通過圖中對象的放置位置可以看出,對象“系統(tǒng)”、“圖書”和“讀者”是在發(fā)送第一條消息前就存在的,而對象“通知單”的位置沒有在順序圖的頂端,它是在消息發(fā)送的過程中,通過對象“系統(tǒng)”發(fā)送的“Create”消息創(chuàng)建的。第18頁/共46頁6.4順序圖理解上圖描述的超期檢查過程如下:

第一步,系統(tǒng)程序?qū)ο筘?fù)責(zé)定期對所有外借圖書進(jìn)行超期檢查,每次檢查時首先發(fā)送消息“CheckAllBooks”,用來檢查所有外借圖書,獲取圖書借閱時間和期限信息。

第二步,系統(tǒng)程序?qū)ο笙驅(qū)ο蟆皥D書”發(fā)送消息“CheckTimeExceding”檢測每一本外借圖書是否超期。

第三步,系統(tǒng)程序?qū)ο笙驅(qū)ο蟆皥D書”發(fā)送消息“GetBookInformations”來獲取超期圖書的信息。第19頁/共46頁6.4順序圖理解

第四步,系統(tǒng)程序?qū)ο笙驅(qū)ο蟾鶕?jù)超期圖書信息向相應(yīng)的“讀者”對象發(fā)送消息“GetReaderInformations”得到圖書對象信息和相應(yīng)讀者對象信息。

第五步,系統(tǒng)程序?qū)ο筘?fù)責(zé)發(fā)送一個“Create”消息,創(chuàng)建一個新對象“通知單”,通知單中記錄超期圖書和相應(yīng)的讀者信息。

第六步,系統(tǒng)程序?qū)ο筘?fù)責(zé)向“通知單”對象發(fā)送一個消息PrintNotice,打印出生成的通知單。第20頁/共46頁6.4順序圖理解在順序圖中的控制流并不是只能按照從上到下的順序依次進(jìn)行,控制流也可以進(jìn)行修改,條件分支就是其中一種。

6.4.1條件分支

順序圖中的分支是使用帶條件的消息來實現(xiàn)的,這個條件稱為守衛(wèi)條件。只有當(dāng)條件為真的時候才可以發(fā)送和接收消息。如果所有分支上的守衛(wèi)條件都是互斥的,那么就會有互斥的消息箭頭,一次只能發(fā)送一條消息。如果多個分支上的條件并不互斥,那么可以并行發(fā)送多條消息。

第21頁/共46頁6.4順序圖理解

條件[打印機(jī)忙]和[打印機(jī)空閑]是兩個互斥的條件,打印服務(wù)器根據(jù)條件來確定消息發(fā)給對象“打印機(jī)”還是對象“打印隊列”。兩個消息都是從同一點出發(fā)的,這表示兩個分支在同一時間點上只能執(zhí)行一個分支。

[打印機(jī)忙][打印機(jī)空閑]打印文件打印隊列計算機(jī)打印服務(wù)器打印機(jī)第22頁/共46頁6.4順序圖理解

從屬流與條件分支不同,從屬流允許某一個對象根據(jù)不同的條件改變執(zhí)行不同的操作,即可以創(chuàng)建對象的另一個生命線分支。

6.4.2從屬流刪除打印任務(wù)打印服務(wù)器打印隊列添加打印任務(wù)如圖中所示,打印服務(wù)器會根據(jù)需要從打印隊列中刪除打印任務(wù)或根據(jù)需要向打印隊列中添加打印任務(wù)。第23頁/共46頁6.4順序圖理解

順序圖中的消息通常都是水平的,表明消息的傳遞是瞬時的,也就是說在消息傳遞的過程中不會發(fā)生其他的事件。但有些情況下,從一個對象到另一個對象的消息可能存在一定的時間延遲,也就是說消息的傳遞不是瞬時完成的。對于這種帶有延遲的消息的表示,可以將消息的箭頭向下傾斜6.4.3消息延遲第24頁/共46頁6.4順序圖理解比較典型的消息延遲的例子就是電子郵件的應(yīng)用,由于郵件服務(wù)器是外部對象,用戶與郵件服務(wù)器的相互通訊需要必要的網(wǎng)絡(luò)延遲,因此可以把用戶和郵件服務(wù)器的連接和從郵件服務(wù)器下載郵件的活動表示為延遲消息。返回郵件用戶郵件服務(wù)器連接連接時間小于1秒第25頁/共46頁6.4順序圖理解如果為了強(qiáng)調(diào)需要對多個對象重復(fù)發(fā)送某個消息,可以在順序圖中添加循環(huán)標(biāo)識符號,順序圖中表示循環(huán)執(zhí)行的消息有三種方式。6.4.4循環(huán)

第一種,在需要循環(huán)重復(fù)執(zhí)行的消息前添加符號“*”,并在其后的中括號中寫明具體的條件。

校驗打印文件*[foreachfile][check()=true]計算機(jī)打印服務(wù)器打印隊列第26頁/共46頁6.4順序圖理解

第二種,在時間軸上注釋表明消息的重復(fù)執(zhí)行,使用大括號標(biāo)明說明文字。如圖所示,打印服務(wù)器對象時間軸上大括號內(nèi)標(biāo)注重復(fù)執(zhí)行的動作。

校驗打印文件{對每個文件進(jìn)行校驗,直到全部校驗合格}計算機(jī)打印服務(wù)器打印隊列第27頁/共46頁6.4順序圖理解

第三種,使用矩形框?qū)⑿枰貜?fù)執(zhí)行的消息框起來,并在中括號內(nèi)說明重復(fù)執(zhí)行的條件,如圖所示。矩形框框內(nèi)為需要重復(fù)執(zhí)行的消息,矩形框下中括號內(nèi)是重復(fù)執(zhí)行的條件。打印文件打印隊列打印機(jī)打開文件讀取時間信息打印時間信息[直到隊列最后一個文件讀取打印完畢]關(guān)閉文件刪除隊列中文件第28頁/共46頁6.4順序圖理解

在UML2.0中,為了幫助建模人員處理順序圖中需要更詳細(xì)描述的細(xì)節(jié),顯示更加復(fù)雜的交互,創(chuàng)建更有結(jié)構(gòu)化的順序圖,提供了順序圖片段。利用順序圖片段可以表示比較復(fù)雜的交互,例如循環(huán)和迭代等等。6.4.5順序圖片段順序圖片段被描述成順序圖中框起來一部分交互的矩形。順序圖片段矩形與順序圖中某部分交互重疊。順序圖片段中可以包含任意數(shù)目的交互,甚至還可以包含嵌套片段。順序圖片段矩形的左上角包含一個運算符,以表明類型。

第29頁/共46頁6.4順序圖理解片段類型參數(shù)作

用ref無分解大型的順序圖,類似于用例關(guān)系中的include。assert無指示包含在片段中的交互必須完全按照它們的指示發(fā)生,否則片段無效。loop有循環(huán)執(zhí)行該片段內(nèi)的交互,直到判斷條件為假。這類似于程序設(shè)計語言中的循環(huán)語句break無當(dāng)包含在break片段中的交互發(fā)生時,則退出任何一個交互。這類似于程序設(shè)計語言中的break語句。alt有根據(jù)判斷條件,選擇片段中的一個交互執(zhí)行。類似于程序設(shè)計語言中的if…else語句。opt有包含在此片段中的交互只有在判斷條件為真時才執(zhí)行。neg無不允許執(zhí)行該片段中的交互,多用戶異常處理。par無片段中的各個交互并行執(zhí)行。順序圖片段

第30頁/共46頁6.5順序圖應(yīng)用

在進(jìn)行順序圖模型創(chuàng)建時,主要遵循以下步驟:確定用例的需求找出需求中涉及的對象找出對象間的消息的傳遞構(gòu)建順序圖以“圖書超期檢查”為例,介紹順序圖的設(shè)計過程,具體的過程見書。第31頁/共46頁6.6協(xié)作圖概述協(xié)作圖與順序圖一樣也是用于描述系統(tǒng)中各對象的交互關(guān)系并展現(xiàn)對象間的消息傳遞,但兩者側(cè)重點不同,順序圖著重于交互的時間順序,而協(xié)作圖著重于描述協(xié)作對象間的交互和連接。還可以從另一個角度來看兩種圖的定義,順序圖是按照時間的順序布圖,而協(xié)作圖是按照空間來布圖。

第32頁/共46頁6.7協(xié)作圖元素協(xié)作圖中的主要建模元素包括:對象消息鏈第33頁/共46頁6.7協(xié)作圖元素協(xié)作圖中的對象是類圖中類的實例,對象在對象框中表示,通常不帶屬性定義部分。在UML順序圖和協(xié)助圖中,對象可以使用三種圖符來表示,具體的對象表示方式如圖所示。

6.7.1對象對象名(A)對象名:類名(B):類名(C)第34頁/共46頁6.7協(xié)作圖元素協(xié)作圖中,有時信號或操作是應(yīng)用于一個對象集而不是單一對象上,UML提供表示這種對象集合的容器類“多對象”。在協(xié)作圖中,多對象指的是由多個對象組成的對象集合,一般這些對象是屬于同一類的。多對象用多個方框重疊表示,圖符如圖所示。

6.7.2多對象

單對象給多對象同時發(fā)送一個消息時,需要在消息前面加一個星號,并加上用方括號括起來的條件。

對象第35頁/共46頁6.7協(xié)作圖元素在協(xié)作圖中,主動對象是一組屬性和方法的封裝體,主動對象中至少有一個方法不需要接收消息就能主動執(zhí)行。也就是說主動對象可以在不接受外部消息的情況下自己開始一個控制流。

6.7.3主動對象在協(xié)作圖中,主動對象的圖符于普通對象基本相同,只是外部邊框的線條要加黑加粗,如圖所示。

對象名第36頁/共46頁6.7協(xié)作圖元素

鏈用來在協(xié)作圖中關(guān)聯(lián)對象。它代表一個來自類圖的關(guān)聯(lián)實例。在協(xié)作圖中,消息顯示在鏈上可以加一些修飾,例如角色名、導(dǎo)航(表示鏈?zhǔn)请p向還是單向)、鏈兩端的對象是否有聚集關(guān)系等,但由于鏈?zhǔn)沁B接對象的,所以鏈的兩端沒有多重性標(biāo)記。鏈的圖符就是簡單的實線。

6.7.4鏈第37頁/共46頁6.7協(xié)作圖元素

在協(xié)作圖中,對象與對象之間的相互作用是通過傳遞消息來實現(xiàn)的,消息是對象與對象之間通信的方式。

消息使用一條帶箭頭的連線來表示,消息中箭頭來指示消息沿著關(guān)系傳遞的方向。一條連線可以表示一個或多個消息,消息的名稱標(biāo)在連線的上面,也可以給消息增加參數(shù)并標(biāo)上一些控制信息。

6.7.5消息第38頁/共46頁6.7協(xié)作圖元素消息的詳細(xì)說明,消息標(biāo)簽語法規(guī)則如下:

前驅(qū)守衛(wèi)條件序號表達(dá)式返回值:=消息名(參數(shù)列表)

前驅(qū):是指在發(fā)送當(dāng)前消息之前必須被處理的所有消息。

守衛(wèi)條件:通常用代碼表示,UML沒有規(guī)定語法。

序號表達(dá)式:是以小數(shù)點分割的序號項列表,每個子句代表交互中的一個嵌套層次。如果所有控制都是并發(fā)的,那么沒有嵌套。

序號項語法:[整數(shù)|名字][循環(huán)]第39頁/共46頁6.7協(xié)作圖元素

名字指一個并發(fā)控制線程的名字,如果兩條消息的序號表達(dá)式只有最后一個名字不同,那么它們是同一層上的并發(fā)控制流。

循環(huán)表示重復(fù)執(zhí)行或條件執(zhí)行,語法:*[重復(fù)子句]/[條件子句]。UML中用雙豎線“||”表示消息的并發(fā)執(zhí)行。

返回值:表示通信結(jié)束后返回的數(shù)值列表??梢宰鳛楹罄m(xù)消息的參數(shù)。如果消息不返回任何值,可以省略賦值操作符和返回值子句。

第40頁/共46頁6.7協(xié)作圖元素協(xié)作圖中的消息種類與順序圖中的消息種類完全相同,在一般應(yīng)用中,主要使用以下三種,其他幾種消息應(yīng)用相對較少。

6.7.6消息種

溫馨提示

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

評論

0/150

提交評論