




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、信息系統(tǒng)分析與設(shè)計(jì)第6章 順序圖和協(xié)作圖 第6章 順序圖和協(xié)作圖 順序圖(順序圖(Sequence Diagram)和協(xié)作圖)和協(xié)作圖(Communication Diagram)統(tǒng)稱交互圖,用來描)統(tǒng)稱交互圖,用來描述系統(tǒng)中多個(gè)對(duì)象之間的相互關(guān)系及對(duì)象間消息傳述系統(tǒng)中多個(gè)對(duì)象之間的相互關(guān)系及對(duì)象間消息傳遞,用于對(duì)系統(tǒng)中多個(gè)對(duì)象的相互作用的過程進(jìn)行遞,用于對(duì)系統(tǒng)中多個(gè)對(duì)象的相互作用的過程進(jìn)行建模建模。 在面向?qū)ο蠓治鲞^程中,可以使用順序圖來描述在面向?qū)ο蠓治鲞^程中,可以使用順序圖來描述完成一個(gè)用例的過程,使用協(xié)作圖來分析系統(tǒng)中的完成一個(gè)用例的過程,使用協(xié)作圖來分析系統(tǒng)中的對(duì)象和對(duì)象之間傳遞的消
2、息。對(duì)象和對(duì)象之間傳遞的消息。 6.1 順序圖概述 順序圖的主要用途之一是用來為某個(gè)用例的泛化順序圖的主要用途之一是用來為某個(gè)用例的泛化功能提供其所缺乏的解釋,即把用例表達(dá)的需求,功能提供其所缺乏的解釋,即把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。 順序圖描述了對(duì)象之間傳遞消息的時(shí)間順序,用順序圖描述了對(duì)象之間傳遞消息的時(shí)間順序,用來表示用例中行為順序。用例常常被細(xì)化為一個(gè)來表示用例中行為順序。用例常常被細(xì)化為一個(gè)或多個(gè)的順序圖。或多個(gè)的順序圖。 順序圖用一個(gè)二維圖描述系統(tǒng)中各個(gè)對(duì)象之間的交順序圖用一個(gè)二維圖描述系統(tǒng)中各個(gè)對(duì)象之間的交互關(guān)系。
3、互關(guān)系。主要由四個(gè)標(biāo)記符組成:對(duì)象、生命線、主要由四個(gè)標(biāo)記符組成:對(duì)象、生命線、消息和激活。消息和激活。 6.1 順序圖概述 在順序圖中參加交互的各個(gè)對(duì)象沿橫軸排列,發(fā)在順序圖中參加交互的各個(gè)對(duì)象沿橫軸排列,發(fā)起交互的對(duì)象通常放在左邊,其他對(duì)象依次放在起交互的對(duì)象通常放在左邊,其他對(duì)象依次放在右邊。這些對(duì)象發(fā)送和接收的消息沿縱軸方向右邊。這些對(duì)象發(fā)送和接收的消息沿縱軸方向按按時(shí)間順序時(shí)間順序從上到下放置。該在順序圖中縱軸為從上到下放置。該在順序圖中縱軸為時(shí)時(shí)間軸間軸。 順序圖清晰地描述了系統(tǒng)隨時(shí)間推移的控制流軌順序圖清晰地描述了系統(tǒng)隨時(shí)間推移的控制流軌跡。跡。圖中每個(gè)對(duì)象在單獨(dú)的一列中,每個(gè)對(duì)
4、象符圖中每個(gè)對(duì)象在單獨(dú)的一列中,每個(gè)對(duì)象符號(hào)放置在代表生成對(duì)象消息的箭頭末端,其垂直號(hào)放置在代表生成對(duì)象消息的箭頭末端,其垂直位置表示該對(duì)象第一次生成的時(shí)間。位置表示該對(duì)象第一次生成的時(shí)間。 6.2 順序圖元素 順序圖描述了對(duì)象以及對(duì)象之間傳遞的消息,強(qiáng)順序圖描述了對(duì)象以及對(duì)象之間傳遞的消息,強(qiáng)調(diào)對(duì)象之間的交互是按照時(shí)間的先后順序發(fā)生的,調(diào)對(duì)象之間的交互是按照時(shí)間的先后順序發(fā)生的,這些特定順序發(fā)生的交互序列從開始到結(jié)束需要這些特定順序發(fā)生的交互序列從開始到結(jié)束需要一定的時(shí)間。一定的時(shí)間。在順序圖中主要包括了以下四種元在順序圖中主要包括了以下四種元素:素: 對(duì)象對(duì)象 生命線生命線 激活激活 消息
5、消息6.2 順序圖元素 類定義了對(duì)象可執(zhí)行的各種行為,但在面向?qū)ο箢惗x了對(duì)象可執(zhí)行的各種行為,但在面向?qū)ο笙到y(tǒng)中,行為的執(zhí)行者是對(duì)象,而不是類,因此系統(tǒng)中,行為的執(zhí)行者是對(duì)象,而不是類,因此在順序圖中通常描述的是對(duì)象層次而不是類層次在順序圖中通常描述的是對(duì)象層次而不是類層次。 面向?qū)ο蠓治鲋凶罨镜膯挝皇菍?duì)象,它代表現(xiàn)面向?qū)ο蠓治鲋凶罨镜膯挝皇菍?duì)象,它代表現(xiàn)實(shí)世界中一個(gè)一個(gè)地具體事物。實(shí)世界中一個(gè)一個(gè)地具體事物。 在順序圖中使用一個(gè)方框表示在順序圖中使用一個(gè)方框表示一個(gè)對(duì)象,對(duì)象的名字下面有一個(gè)對(duì)象,對(duì)象的名字下面有一個(gè)下劃線,一個(gè)學(xué)生對(duì)象一個(gè)下劃線,一個(gè)學(xué)生對(duì)象“張三張三”如圖所示。如圖
6、所示。 6.2.1 對(duì)象對(duì)象 張三6.2 順序圖元素 在順序圖中也可以使用用例圖中的在順序圖中也可以使用用例圖中的參與者圖符參與者圖符 。 如果一個(gè)對(duì)象在順序圖的第一個(gè)操作之前就已經(jīng)如果一個(gè)對(duì)象在順序圖的第一個(gè)操作之前就已經(jīng)存在,那么該對(duì)象的圖符就應(yīng)該存在,那么該對(duì)象的圖符就應(yīng)該畫在順序圖的頂畫在順序圖的頂部部。 如果一個(gè)對(duì)象是在順序圖的交互過程中,由其他如果一個(gè)對(duì)象是在順序圖的交互過程中,由其他對(duì)象創(chuàng)建的,那么該對(duì)象就不應(yīng)該出現(xiàn)在順序圖對(duì)象創(chuàng)建的,那么該對(duì)象就不應(yīng)該出現(xiàn)在順序圖的頂端,而應(yīng)該的頂端,而應(yīng)該出現(xiàn)在創(chuàng)建該對(duì)象消息的末端出現(xiàn)在創(chuàng)建該對(duì)象消息的末端 。6.2 順序圖元素 對(duì)象在垂直方
7、向拖出的虛線是對(duì)象的生命線,用對(duì)象在垂直方向拖出的虛線是對(duì)象的生命線,用于表示對(duì)象是存在的時(shí)間范圍。于表示對(duì)象是存在的時(shí)間范圍。 對(duì)象的生命線是一個(gè)時(shí)間線,從順序圖的頂部一對(duì)象的生命線是一個(gè)時(shí)間線,從順序圖的頂部一直延續(xù)到順序圖的底部,所用的長度取決于交互直延續(xù)到順序圖的底部,所用的長度取決于交互的維持長度。的維持長度。 6.2.2 生命線生命線 6.2 順序圖元素 對(duì)象生命線上的窄矩形條被稱為激活,激活表示對(duì)象生命線上的窄矩形條被稱為激活,激活表示該對(duì)象正在執(zhí)行某個(gè)操作該對(duì)象正在執(zhí)行某個(gè)操作,圖符如圖所示。激活,圖符如圖所示。激活條的長短表示執(zhí)行操作的時(shí)間。一個(gè)被激活的對(duì)條的長短表示執(zhí)行操作
8、的時(shí)間。一個(gè)被激活的對(duì)象要么執(zhí)行自己的代碼,要么等待另一個(gè)對(duì)象的象要么執(zhí)行自己的代碼,要么等待另一個(gè)對(duì)象的返回結(jié)果。返回結(jié)果。 6.2.3 激活激活 6.2 順序圖元素 激活在順序圖中不能夠單獨(dú)存在必須與生命線連激活在順序圖中不能夠單獨(dú)存在必須與生命線連在一起使用在一起使用,當(dāng)一條消息被傳遞給對(duì)象的時(shí)候,當(dāng)一條消息被傳遞給對(duì)象的時(shí)候,該消息將觸發(fā)該對(duì)象的某個(gè)行為,此時(shí)該對(duì)象就該消息將觸發(fā)該對(duì)象的某個(gè)行為,此時(shí)該對(duì)象就被激活了。被激活了。 通常情況下,通常情況下,表示激活的矩形的頂點(diǎn)是消息和生表示激活的矩形的頂點(diǎn)是消息和生命線交匯的地方,表示對(duì)象從此時(shí)起開始獲得控命線交匯的地方,表示對(duì)象從此時(shí)起
9、開始獲得控制權(quán),而矩形的底部則表示該次交互已經(jīng)結(jié)束,制權(quán),而矩形的底部則表示該次交互已經(jīng)結(jié)束,或?qū)ο蟮囊呀?jīng)交控制權(quán)交出或?qū)ο蟮囊呀?jīng)交控制權(quán)交出。 6.2 順序圖元素 在順序圖中,對(duì)象都不是孤立存在的,這些對(duì)象在順序圖中,對(duì)象都不是孤立存在的,這些對(duì)象之間是通過消息進(jìn)行通訊。之間是通過消息進(jìn)行通訊。對(duì)象通過相互傳遞消對(duì)象通過相互傳遞消息來進(jìn)行相互作用。使用消息是用來說明順序圖息來進(jìn)行相互作用。使用消息是用來說明順序圖中不同活動(dòng)對(duì)象之間的通信過程。一個(gè)消息可以中不同活動(dòng)對(duì)象之間的通信過程。一個(gè)消息可以激發(fā)一個(gè)對(duì)象的某個(gè)操作,完成一定的功能。激發(fā)一個(gè)對(duì)象的某個(gè)操作,完成一定的功能。 6.2.4 消息
10、消息 順序圖中,順序圖中,消息由從一個(gè)對(duì)象的生命線指向另一消息由從一個(gè)對(duì)象的生命線指向另一個(gè)對(duì)象的生命線的直線箭頭表示,箭頭上標(biāo)注要個(gè)對(duì)象的生命線的直線箭頭表示,箭頭上標(biāo)注要發(fā)送的消息名。發(fā)送的消息名。在消息的起點(diǎn)隱含著發(fā)送事件,在消息的起點(diǎn)隱含著發(fā)送事件,消息的終點(diǎn)隱含著接收事件消息的終點(diǎn)隱含著接收事件 。 6.2 順序圖元素 在順序圖中消息的次序是由它們?cè)诖怪陛S上的位在順序圖中消息的次序是由它們?cè)诖怪陛S上的位置來決定的置來決定的,在垂直軸上靠上的消息先發(fā)送,靠,在垂直軸上靠上的消息先發(fā)送,靠下的消息后發(fā)送。下的消息后發(fā)送。 在在UML中,中,消息的發(fā)送方和消息的接收方可以是消息的發(fā)送方和消
11、息的接收方可以是同一個(gè)對(duì)象同一個(gè)對(duì)象。也就是說,對(duì)象也可以將消息發(fā)送。也就是說,對(duì)象也可以將消息發(fā)送給自己本身,也就是自己給自己發(fā)送消息給自己本身,也就是自己給自己發(fā)送消息 在在UML中,每一條消息可以帶有一個(gè)名稱說明,中,每一條消息可以帶有一個(gè)名稱說明,可以帶參數(shù)??梢詭?shù)。消息還可以包含條件以限制它們只消息還可以包含條件以限制它們只在滿足條件時(shí)才能被發(fā)送。條件標(biāo)注在消息的名在滿足條件時(shí)才能被發(fā)送。條件標(biāo)注在消息的名稱上的方括號(hào)中。稱上的方括號(hào)中。 6.2 順序圖元素 從消息和消息端的元模型可以得知,消息包含了從消息和消息端的元模型可以得知,消息包含了消息種類(消息種類(message k
12、ind)和和消息性質(zhì)(消息性質(zhì)(message sort)兩個(gè)屬性。兩個(gè)屬性。 消息中包括四種消息種類:消息中包括四種消息種類: 完整消息(完整消息(complete message):):一般常見的消一般常見的消息都是完整消息,該消息的發(fā)送事件和接受事件息都是完整消息,該消息的發(fā)送事件和接受事件都是存在的。都是存在的。 迷途消息(迷途消息(lost message):):只有發(fā)送事件,但沒只有發(fā)送事件,但沒有接收事件的消息稱為迷途消息,對(duì)于迷途消息,有接收事件的消息稱為迷途消息,對(duì)于迷途消息,在表示時(shí)需要在消息的箭頭端加上一個(gè)實(shí)心的小在表示時(shí)需要在消息的箭頭端加上一個(gè)實(shí)心的小圓。圓。6.2
13、順序圖元素 尋獲消息(尋獲消息(found message):):缺少了發(fā)送事件,缺少了發(fā)送事件,只有接收事件的消息稱為尋獲消息。對(duì)于尋獲消只有接收事件的消息稱為尋獲消息。對(duì)于尋獲消息,在表示時(shí)需要在消息的非箭頭端加上一個(gè)實(shí)息,在表示時(shí)需要在消息的非箭頭端加上一個(gè)實(shí)心的小圓。心的小圓。 未知消息(未知消息(unknown message):):既沒有發(fā)送事既沒有發(fā)送事件,也沒有接收事件的消息稱為未知消息。對(duì)于件,也沒有接收事件的消息稱為未知消息。對(duì)于未知消息,未知消息,UML中也沒有詳細(xì)說明這種消息,也中也沒有詳細(xì)說明這種消息,也許這個(gè)消息在實(shí)際應(yīng)用時(shí)并不真實(shí)存在。許這個(gè)消息在實(shí)際應(yīng)用時(shí)并不真
14、實(shí)存在。 6.2 順序圖元素 根據(jù)通信性質(zhì)的不同根據(jù)通信性質(zhì)的不同,UML中定義了幾種消息的中定義了幾種消息的性質(zhì)。在性質(zhì)。在UML 2.0規(guī)格書中,定義了規(guī)格書中,定義了四種四種消息性消息性質(zhì),在質(zhì),在UML 2.1.1中,消息性質(zhì)從原來的四種變中,消息性質(zhì)從原來的四種變?yōu)榱藶榱肆N六種,這是,這是UML中變化比較大的部分。中變化比較大的部分。 創(chuàng)建消息(創(chuàng)建消息(createMessage):):用來創(chuàng)建對(duì)象的消用來創(chuàng)建對(duì)象的消息,稱為創(chuàng)建消息。它的圖符是帶開放性箭頭的息,稱為創(chuàng)建消息。它的圖符是帶開放性箭頭的虛線,箭頭的指向目標(biāo)對(duì)象,如下圖所示。虛線,箭頭的指向目標(biāo)對(duì)象,如下圖所示。 6
15、.2 順序圖元素 同步調(diào)用(同步調(diào)用(synchCall):):同步調(diào)用消息代表一個(gè)同步調(diào)用消息代表一個(gè)操作調(diào)用的控制流。同步調(diào)用消息的發(fā)送方把控操作調(diào)用的控制流。同步調(diào)用消息的發(fā)送方把控制傳遞給消息的接收者,然后暫停活動(dòng),等待消制傳遞給消息的接收者,然后暫?;顒?dòng),等待消息接受者的應(yīng)答,收到應(yīng)答后才繼續(xù)自己的操作。息接受者的應(yīng)答,收到應(yīng)答后才繼續(xù)自己的操作。同步調(diào)用消息被水平的置于對(duì)象的生命線之間,同步調(diào)用消息被水平的置于對(duì)象的生命線之間,水平放置的方式說明消息的傳遞是瞬時(shí)的,即消水平放置的方式說明消息的傳遞是瞬時(shí)的,即消息在發(fā)出之后會(huì)馬上被收到。它的圖符是帶實(shí)心息在發(fā)出之后會(huì)馬上被收到。它的
16、圖符是帶實(shí)心箭頭的實(shí)線,如下圖所示。箭頭的實(shí)線,如下圖所示。 6.2 順序圖元素 回復(fù)消息(回復(fù)消息(reply message):):目標(biāo)對(duì)象執(zhí)行結(jié)束目標(biāo)對(duì)象執(zhí)行結(jié)束時(shí),會(huì)發(fā)出回復(fù)消息給來源對(duì)象。它的圖符是帶時(shí),會(huì)發(fā)出回復(fù)消息給來源對(duì)象。它的圖符是帶開放式箭頭的虛線,從負(fù)責(zé)執(zhí)行的目標(biāo)對(duì)象反向開放式箭頭的虛線,從負(fù)責(zé)執(zhí)行的目標(biāo)對(duì)象反向指回給來源對(duì)象,如下圖所示。指回給來源對(duì)象,如下圖所示。 異步調(diào)用(異步調(diào)用(asynchCall):):異步調(diào)用消息表示消異步調(diào)用消息表示消息的發(fā)送對(duì)象不用等待消息接收對(duì)象回應(yīng)的返回息的發(fā)送對(duì)象不用等待消息接收對(duì)象回應(yīng)的返回消息,即可以開始另一個(gè)活動(dòng)。異步調(diào)用消
17、息在消息,即可以開始另一個(gè)活動(dòng)。異步調(diào)用消息在某種程度上規(guī)定了發(fā)送方和接收方的責(zé)任,即發(fā)某種程度上規(guī)定了發(fā)送方和接收方的責(zé)任,即發(fā)送方只負(fù)責(zé)將消息發(fā)送到接收方,至于接收方如送方只負(fù)責(zé)將消息發(fā)送到接收方,至于接收方如何響應(yīng),發(fā)送方則不需要知道。何響應(yīng),發(fā)送方則不需要知道。 6.2 順序圖元素 最常見的實(shí)現(xiàn)異步消息的方式是使用線程。最常見的實(shí)現(xiàn)異步消息的方式是使用線程。當(dāng)系當(dāng)系統(tǒng)發(fā)送異步消息時(shí),需要啟動(dòng)一個(gè)線程在后臺(tái)運(yùn)統(tǒng)發(fā)送異步消息時(shí),需要啟動(dòng)一個(gè)線程在后臺(tái)運(yùn)行。異步調(diào)用的圖符如下圖所示。行。異步調(diào)用的圖符如下圖所示。 異步信號(hào)(異步信號(hào)(asynchSignal):):同步信號(hào)消息和異同步信號(hào)消
18、息和異步信號(hào)消息的區(qū)別在于,消息發(fā)送對(duì)象是否等待步信號(hào)消息的區(qū)別在于,消息發(fā)送對(duì)象是否等待目標(biāo)執(zhí)行結(jié)束才繼續(xù)往下執(zhí)行。異步信號(hào)消息類目標(biāo)執(zhí)行結(jié)束才繼續(xù)往下執(zhí)行。異步信號(hào)消息類似于最常用的簡單消息,一般情況下,如果不必似于最常用的簡單消息,一般情況下,如果不必強(qiáng)調(diào)消息的性質(zhì),則可以使用異步信號(hào)消息代表強(qiáng)調(diào)消息的性質(zhì),則可以使用異步信號(hào)消息代表其他性質(zhì)的消息。它的圖符如下圖所示。其他性質(zhì)的消息。它的圖符如下圖所示。 6.4 順序圖理解 下圖給出了一個(gè)圖書超期檢查系統(tǒng)的順序圖示例,下圖給出了一個(gè)圖書超期檢查系統(tǒng)的順序圖示例,用來描述圖書館中圖書超期檢查的過程。參與圖用來描述圖書館中圖書超期檢查的過程
19、。參與圖書檢查的對(duì)象有四個(gè):書檢查的對(duì)象有四個(gè):系統(tǒng)、圖書、讀者及通知系統(tǒng)、圖書、讀者及通知單單。PrintNotice( )CheckAllBooks( )CheckTimeExceding( )GetBookInformations( )GetReaderInformations( )Create( )系統(tǒng)圖書讀者通知單6.4 順序圖理解 對(duì)象對(duì)象“系統(tǒng)系統(tǒng)”是圖書管理系統(tǒng)中的一個(gè)控制程序,是圖書管理系統(tǒng)中的一個(gè)控制程序,它負(fù)責(zé)定期檢查是否有超期圖書;它負(fù)責(zé)定期檢查是否有超期圖書;“圖書圖書”對(duì)象對(duì)象是圖書館中的每一本具體的圖書;是圖書館中的每一本具體的圖書;“讀者讀者”對(duì)象對(duì)象是借閱圖書
20、的某個(gè)具體的讀者;是借閱圖書的某個(gè)具體的讀者;“通知單通知單”對(duì)象對(duì)象是一個(gè)具體的超期通知單。是一個(gè)具體的超期通知單。 通過圖中對(duì)象的放置位置可以看出,對(duì)象通過圖中對(duì)象的放置位置可以看出,對(duì)象“系系統(tǒng)統(tǒng)”、“圖書圖書”和和“讀者讀者”是在發(fā)送第一條消息是在發(fā)送第一條消息前就存在的,而對(duì)象前就存在的,而對(duì)象“通知單通知單”的位置沒有在順的位置沒有在順序圖的頂端,它是在消息發(fā)送的過程中,通過對(duì)序圖的頂端,它是在消息發(fā)送的過程中,通過對(duì)象象“系統(tǒng)系統(tǒng)”發(fā)送的發(fā)送的“Create”消息創(chuàng)建的。消息創(chuàng)建的。 6.4 順序圖理解 上圖描述的超期檢查過程如下:上圖描述的超期檢查過程如下: 第一步第一步,系統(tǒng)
21、程序?qū)ο筘?fù)責(zé)定期對(duì)所有外借圖書,系統(tǒng)程序?qū)ο筘?fù)責(zé)定期對(duì)所有外借圖書進(jìn)行超期檢查,每次檢查時(shí)首先發(fā)送消息進(jìn)行超期檢查,每次檢查時(shí)首先發(fā)送消息“CheckAllBooks”,用來檢查所有外借圖書,獲,用來檢查所有外借圖書,獲取圖書借閱時(shí)間和期限信息。取圖書借閱時(shí)間和期限信息。 第二步第二步,系統(tǒng)程序?qū)ο笙驅(qū)ο螅到y(tǒng)程序?qū)ο笙驅(qū)ο蟆皥D書圖書”發(fā)送消息發(fā)送消息 “CheckTimeExceding”檢測(cè)每一本外借圖書是否檢測(cè)每一本外借圖書是否超期。超期。 第三步第三步,系統(tǒng)程序?qū)ο笙驅(qū)ο?,系統(tǒng)程序?qū)ο笙驅(qū)ο蟆皥D書圖書”發(fā)送消息發(fā)送消息 “GetBookInformations”來獲取超期圖書的信息。來
22、獲取超期圖書的信息。6.4 順序圖理解 第四步第四步,系統(tǒng)程序?qū)ο笙驅(qū)ο蟾鶕?jù)超期圖書信息,系統(tǒng)程序?qū)ο笙驅(qū)ο蟾鶕?jù)超期圖書信息向相應(yīng)的向相應(yīng)的“讀者讀者”對(duì)象發(fā)送消息對(duì)象發(fā)送消息“GetReaderInformations”得到圖書對(duì)象信息和得到圖書對(duì)象信息和相應(yīng)讀者對(duì)象信息。相應(yīng)讀者對(duì)象信息。 第五步第五步,系統(tǒng)程序?qū)ο筘?fù)責(zé)發(fā)送一個(gè),系統(tǒng)程序?qū)ο筘?fù)責(zé)發(fā)送一個(gè)“Create”消消息,創(chuàng)建一個(gè)新對(duì)象息,創(chuàng)建一個(gè)新對(duì)象“通知單通知單”,通知單中記錄,通知單中記錄超期圖書和相應(yīng)的讀者信息。超期圖書和相應(yīng)的讀者信息。 第六步第六步,系統(tǒng)程序?qū)ο筘?fù)責(zé)向,系統(tǒng)程序?qū)ο筘?fù)責(zé)向“通知單通知單”對(duì)象發(fā)對(duì)象發(fā)送一個(gè)
23、消息送一個(gè)消息PrintNotice,打印出生成的通知單。,打印出生成的通知單。6.4 順序圖理解 在順序圖中的控制流并不是只能按照從上到下的在順序圖中的控制流并不是只能按照從上到下的順序依次進(jìn)行,控制流也可以進(jìn)行修改,順序依次進(jìn)行,控制流也可以進(jìn)行修改,條件分條件分支支就是其中一種。就是其中一種。 6.4.1 條件分支條件分支 順序圖中的分支是使用帶條件的消息來實(shí)現(xiàn)的,順序圖中的分支是使用帶條件的消息來實(shí)現(xiàn)的,這個(gè)條件稱為守衛(wèi)條件。這個(gè)條件稱為守衛(wèi)條件。只有當(dāng)條件為真的時(shí)候只有當(dāng)條件為真的時(shí)候才可以發(fā)送和接收消息。如果所有分支上的守衛(wèi)才可以發(fā)送和接收消息。如果所有分支上的守衛(wèi)條件都是互斥的,
24、那么就會(huì)有互斥的消息箭頭,條件都是互斥的,那么就會(huì)有互斥的消息箭頭,一次只能發(fā)送一條消息。如果多個(gè)分支上的條件一次只能發(fā)送一條消息。如果多個(gè)分支上的條件并不互斥,那么可以并行發(fā)送多條消息。并不互斥,那么可以并行發(fā)送多條消息。 6.4 順序圖理解 條件條件打印機(jī)忙打印機(jī)忙和和打印機(jī)空閑打印機(jī)空閑是兩個(gè)是兩個(gè)互斥的條件互斥的條件,打印服務(wù)器根據(jù)條件來確定消息發(fā)給對(duì)象打印服務(wù)器根據(jù)條件來確定消息發(fā)給對(duì)象“打印打印機(jī)機(jī)”還是對(duì)象還是對(duì)象“打印隊(duì)列打印隊(duì)列”。兩個(gè)消息都是從同。兩個(gè)消息都是從同一點(diǎn)出發(fā)的,這一點(diǎn)出發(fā)的,這表示兩個(gè)分支在同一時(shí)間點(diǎn)上只表示兩個(gè)分支在同一時(shí)間點(diǎn)上只能執(zhí)行一個(gè)分支。能執(zhí)行一個(gè)分
25、支。 打印機(jī)忙打印機(jī)空閑打印文件打印隊(duì)列計(jì)算機(jī)打印服務(wù)器打印機(jī)6.4 順序圖理解 從屬流與條件分支不從屬流與條件分支不同,從屬流允許某一同,從屬流允許某一個(gè)對(duì)象根據(jù)不同的條個(gè)對(duì)象根據(jù)不同的條件改變執(zhí)行不同的操件改變執(zhí)行不同的操作,即可以創(chuàng)建對(duì)象作,即可以創(chuàng)建對(duì)象的另一個(gè)生命線分支。的另一個(gè)生命線分支。 6.4.2 從屬流從屬流 刪除打印任務(wù)打印服務(wù)器打印隊(duì)列添加打印任務(wù) 如圖中所示,打印服務(wù)器會(huì)根據(jù)需要從打印隊(duì)列如圖中所示,打印服務(wù)器會(huì)根據(jù)需要從打印隊(duì)列中刪除打印任務(wù)或根據(jù)需要向打印隊(duì)列中添加打中刪除打印任務(wù)或根據(jù)需要向打印隊(duì)列中添加打印任務(wù)。印任務(wù)。6.4 順序圖理解 順序圖中的消息通常都是
26、水平的,表明消息的傳順序圖中的消息通常都是水平的,表明消息的傳遞是瞬時(shí)的,也就是說在消息傳遞的過程中不會(huì)遞是瞬時(shí)的,也就是說在消息傳遞的過程中不會(huì)發(fā)生其他的事件。發(fā)生其他的事件。但有些情況下,從一個(gè)對(duì)象到但有些情況下,從一個(gè)對(duì)象到另一個(gè)對(duì)象的消息可能存在一定的時(shí)間延遲,也另一個(gè)對(duì)象的消息可能存在一定的時(shí)間延遲,也就是說消息的傳遞不是瞬時(shí)完成的。對(duì)于這種帶就是說消息的傳遞不是瞬時(shí)完成的。對(duì)于這種帶有延遲的消息的表示,可以將消息的箭頭向下傾有延遲的消息的表示,可以將消息的箭頭向下傾斜斜 6.4.3 消息延遲消息延遲 6.4 順序圖理解 比較典型的消息延遲的例子就是電子郵件的應(yīng)用,比較典型的消息延遲
27、的例子就是電子郵件的應(yīng)用,由于郵件服務(wù)器是外部對(duì)象,用戶與郵件服務(wù)器由于郵件服務(wù)器是外部對(duì)象,用戶與郵件服務(wù)器的相互通訊需要必要的網(wǎng)絡(luò)延遲,因此可以把用的相互通訊需要必要的網(wǎng)絡(luò)延遲,因此可以把用戶和郵件服務(wù)器的連接和從郵件服務(wù)器下載郵件戶和郵件服務(wù)器的連接和從郵件服務(wù)器下載郵件的活動(dòng)表示為延遲消息的活動(dòng)表示為延遲消息 。返回郵件用戶郵件服務(wù)器連接連接時(shí)間小于1秒6.4 順序圖理解 如果為了強(qiáng)調(diào)需要對(duì)多個(gè)對(duì)象重復(fù)發(fā)送某個(gè)消息,如果為了強(qiáng)調(diào)需要對(duì)多個(gè)對(duì)象重復(fù)發(fā)送某個(gè)消息,可以在順序圖中添加循環(huán)標(biāo)識(shí)符號(hào)可以在順序圖中添加循環(huán)標(biāo)識(shí)符號(hào),順序圖中表,順序圖中表示循環(huán)執(zhí)行的消息有三種方式。示循環(huán)執(zhí)行的消息
28、有三種方式。 6.4.4 循環(huán)循環(huán) 第一種第一種,在需要循環(huán)重復(fù)執(zhí)行的消息前添加符號(hào)在需要循環(huán)重復(fù)執(zhí)行的消息前添加符號(hào)“*”,并在其后的中括號(hào)中寫明具體的條件,并在其后的中括號(hào)中寫明具體的條件。 校驗(yàn)打印文件*for each filecheck()=true計(jì)算機(jī)打印服務(wù)器打印隊(duì)列6.4 順序圖理解 第二種,第二種,在時(shí)間軸上注釋表明消息的重復(fù)執(zhí)行,在時(shí)間軸上注釋表明消息的重復(fù)執(zhí)行,使用大括號(hào)標(biāo)明說明文字。如圖所示,打印服務(wù)使用大括號(hào)標(biāo)明說明文字。如圖所示,打印服務(wù)器對(duì)象時(shí)間軸上大括號(hào)內(nèi)標(biāo)注重復(fù)執(zhí)行的動(dòng)作。器對(duì)象時(shí)間軸上大括號(hào)內(nèi)標(biāo)注重復(fù)執(zhí)行的動(dòng)作。 校驗(yàn)打印文件對(duì)每個(gè)文件進(jìn)行校驗(yàn),直到全部校
29、驗(yàn)合格計(jì)算機(jī)打印服務(wù)器打印隊(duì)列6.4 順序圖理解 第三種,第三種,使用矩形框?qū)⑿枰貜?fù)執(zhí)行的消息框起使用矩形框?qū)⑿枰貜?fù)執(zhí)行的消息框起來,并在中括號(hào)內(nèi)說明重復(fù)執(zhí)行的條件,如圖所來,并在中括號(hào)內(nèi)說明重復(fù)執(zhí)行的條件,如圖所示。矩形框框內(nèi)為需要重復(fù)執(zhí)行的消息,矩形框示。矩形框框內(nèi)為需要重復(fù)執(zhí)行的消息,矩形框下中括號(hào)內(nèi)是重復(fù)執(zhí)行的條件。下中括號(hào)內(nèi)是重復(fù)執(zhí)行的條件。 打印文件打印隊(duì)列打印機(jī)打開文件讀取時(shí)間信息打印時(shí)間信息直到隊(duì)列最后一個(gè)文件讀取打印完畢關(guān)閉文件刪除隊(duì)列中文件6.4 順序圖理解 在在UML 2.0中,為了幫助建模人員處理順序圖中中,為了幫助建模人員處理順序圖中需要更詳細(xì)描述的細(xì)節(jié),顯示更加
30、復(fù)雜的交互,需要更詳細(xì)描述的細(xì)節(jié),顯示更加復(fù)雜的交互,創(chuàng)建更有結(jié)構(gòu)化的順序圖,提供了創(chuàng)建更有結(jié)構(gòu)化的順序圖,提供了順序圖片段順序圖片段。利用順序圖片段可以表示比較復(fù)雜的交互,例如利用順序圖片段可以表示比較復(fù)雜的交互,例如循環(huán)和迭代等等。循環(huán)和迭代等等。6.4.5 順序圖片段順序圖片段 順序圖片段被描述成順序圖中框起來一部分交互順序圖片段被描述成順序圖中框起來一部分交互的矩形。的矩形。順序圖片段矩形與順序圖中某部分交互順序圖片段矩形與順序圖中某部分交互重疊。順序圖片段中可以包含任意數(shù)目的交互,重疊。順序圖片段中可以包含任意數(shù)目的交互,甚至還可以包含嵌套片段。甚至還可以包含嵌套片段。順序圖片段矩形
31、的左順序圖片段矩形的左上角包含一個(gè)運(yùn)算符,以表明類型。上角包含一個(gè)運(yùn)算符,以表明類型。 6.4 順序圖理解片段類型參數(shù)作 用ref無分解大型的順序圖,類似于用例關(guān)系中的include。assert無指示包含在片段中的交互必須完全按照它們的指示發(fā)生,否則片段無效。loop有循環(huán)執(zhí)行該片段內(nèi)的交互,直到判斷條件為假。這類似于程序設(shè)計(jì)語言中的循環(huán)語句break無當(dāng)包含在break片段中的交互發(fā)生時(shí),則退出任何一個(gè)交互。這類似于程序設(shè)計(jì)語言中的break語句。alt有根據(jù)判斷條件,選擇片段中的一個(gè)交互執(zhí)行。類似于程序設(shè)計(jì)語言中的ifelse語句。opt有包含在此片段中的交互只有在判斷條件為真時(shí)才執(zhí)行。
32、neg無不允許執(zhí)行該片段中的交互,多用戶異常處理。par無片段中的各個(gè)交互并行執(zhí)行。順序圖片段順序圖片段 6.5 順序圖應(yīng)用 在進(jìn)行順序圖模型創(chuàng)建時(shí),主要遵循以下步驟:在進(jìn)行順序圖模型創(chuàng)建時(shí),主要遵循以下步驟: 確定用例的需求確定用例的需求 找出需求中涉及的對(duì)象找出需求中涉及的對(duì)象 找出對(duì)象間的消息的傳遞找出對(duì)象間的消息的傳遞 構(gòu)建順序圖構(gòu)建順序圖 以以 “圖書超期檢查圖書超期檢查”為例,介紹順序圖的設(shè)計(jì)過為例,介紹順序圖的設(shè)計(jì)過程,具體的過程見書。程,具體的過程見書。 6.6 協(xié)作圖概述 協(xié)作圖與順序圖一樣也是用于描述系統(tǒng)中協(xié)作圖與順序圖一樣也是用于描述系統(tǒng)中各對(duì)象的交互關(guān)系并展現(xiàn)對(duì)象間的消
33、息傳各對(duì)象的交互關(guān)系并展現(xiàn)對(duì)象間的消息傳遞,但兩者側(cè)重點(diǎn)不同,遞,但兩者側(cè)重點(diǎn)不同,順序圖著重于交順序圖著重于交互的時(shí)間順序,而協(xié)作圖著重于描述協(xié)作互的時(shí)間順序,而協(xié)作圖著重于描述協(xié)作對(duì)象間的交互和連接對(duì)象間的交互和連接。 還可以從另一個(gè)角度來看兩種圖的定義,還可以從另一個(gè)角度來看兩種圖的定義,順序圖是按照時(shí)間的順序布圖,而協(xié)作圖順序圖是按照時(shí)間的順序布圖,而協(xié)作圖是按照空間來布圖。是按照空間來布圖。 6.7 協(xié)作圖元素協(xié)作圖中的主要建模元素包括:協(xié)作圖中的主要建模元素包括: 對(duì)象對(duì)象 消息消息 鏈鏈6.7 協(xié)作圖元素 協(xié)作圖中的對(duì)象是類圖中類的實(shí)例,對(duì)象在對(duì)象協(xié)作圖中的對(duì)象是類圖中類的實(shí)例,
34、對(duì)象在對(duì)象框中表示,通常不帶屬性定義部分??蛑斜硎?,通常不帶屬性定義部分。在在UML順序順序圖和協(xié)助圖中,對(duì)象可以使用三種圖符來表示,圖和協(xié)助圖中,對(duì)象可以使用三種圖符來表示,具體的對(duì)象表示方式如圖所示。具體的對(duì)象表示方式如圖所示。 6.7.1 對(duì)象對(duì)象 對(duì)象名(A)對(duì)象名:類名(B):類名(C)6.7 協(xié)作圖元素 協(xié)作圖中,有時(shí)信號(hào)或操作是應(yīng)用于一個(gè)對(duì)象集協(xié)作圖中,有時(shí)信號(hào)或操作是應(yīng)用于一個(gè)對(duì)象集而不是單一對(duì)象上,而不是單一對(duì)象上,UML提供表示這種對(duì)象集合提供表示這種對(duì)象集合的容器類的容器類“多對(duì)象多對(duì)象”。在協(xié)作圖中,多對(duì)象指的在協(xié)作圖中,多對(duì)象指的是由多個(gè)對(duì)象組成的對(duì)象集合,一般這些對(duì)
35、象是是由多個(gè)對(duì)象組成的對(duì)象集合,一般這些對(duì)象是屬于同一類的。多對(duì)象用多個(gè)方框重疊表示,圖屬于同一類的。多對(duì)象用多個(gè)方框重疊表示,圖符如圖所示。符如圖所示。 6.7.2 多對(duì)象多對(duì)象 單對(duì)象給多對(duì)象同時(shí)發(fā)送一個(gè)消息單對(duì)象給多對(duì)象同時(shí)發(fā)送一個(gè)消息時(shí),需要在消息前面加一個(gè)星號(hào),時(shí),需要在消息前面加一個(gè)星號(hào),并加上用方括號(hào)括起來的條件。并加上用方括號(hào)括起來的條件。 對(duì)象6.7 協(xié)作圖元素 在協(xié)作圖中,在協(xié)作圖中,主動(dòng)對(duì)象是一組屬性和方法的封裝主動(dòng)對(duì)象是一組屬性和方法的封裝體體,主動(dòng)對(duì)象中至少有一個(gè)方法不需要接收消息,主動(dòng)對(duì)象中至少有一個(gè)方法不需要接收消息就能主動(dòng)執(zhí)行。也就是說主動(dòng)對(duì)象可以在不接受就能主
36、動(dòng)執(zhí)行。也就是說主動(dòng)對(duì)象可以在不接受外部消息的情況下自己開始一個(gè)控制流。外部消息的情況下自己開始一個(gè)控制流。 6.7.3 主動(dòng)對(duì)象主動(dòng)對(duì)象 在協(xié)作圖中,主動(dòng)對(duì)象的圖符于普在協(xié)作圖中,主動(dòng)對(duì)象的圖符于普通對(duì)象基本相同,只是外部邊框的通對(duì)象基本相同,只是外部邊框的線條要加黑加粗,如圖所示。線條要加黑加粗,如圖所示。 對(duì)象名6.7 協(xié)作圖元素 鏈用來在協(xié)作圖中關(guān)聯(lián)對(duì)象。它代表一個(gè)鏈用來在協(xié)作圖中關(guān)聯(lián)對(duì)象。它代表一個(gè)來自類圖的關(guān)聯(lián)實(shí)例。來自類圖的關(guān)聯(lián)實(shí)例。在協(xié)作圖中,消息顯在協(xié)作圖中,消息顯示在鏈上可以加一些修飾,例如角色名、導(dǎo)示在鏈上可以加一些修飾,例如角色名、導(dǎo)航(表示鏈?zhǔn)请p向還是單向)、鏈兩端的
37、對(duì)航(表示鏈?zhǔn)请p向還是單向)、鏈兩端的對(duì)象是否有聚集關(guān)系等,但由于鏈?zhǔn)沁B接對(duì)象象是否有聚集關(guān)系等,但由于鏈?zhǔn)沁B接對(duì)象的,所以的,所以鏈的兩端沒有多重性標(biāo)記鏈的兩端沒有多重性標(biāo)記。鏈的圖。鏈的圖符就是簡單的實(shí)線。符就是簡單的實(shí)線。 6.7.4 鏈鏈 6.7 協(xié)作圖元素 在協(xié)作圖中,對(duì)象與對(duì)象之間的相互作用是通過在協(xié)作圖中,對(duì)象與對(duì)象之間的相互作用是通過傳遞消息來實(shí)現(xiàn)的,消息是對(duì)象與對(duì)象之間通信傳遞消息來實(shí)現(xiàn)的,消息是對(duì)象與對(duì)象之間通信的方式。的方式。 消息使用一條帶箭頭的連線來表示,消息中箭頭消息使用一條帶箭頭的連線來表示,消息中箭頭來指示消息沿著關(guān)系傳遞的方向。來指示消息沿著關(guān)系傳遞的方向。一
38、條連線可以一條連線可以表示一個(gè)或多個(gè)消息,消息的名稱標(biāo)在連線的上表示一個(gè)或多個(gè)消息,消息的名稱標(biāo)在連線的上面,也可以給消息增加參數(shù)并標(biāo)上一些控制信息。面,也可以給消息增加參數(shù)并標(biāo)上一些控制信息。 6.7.5 消息消息 6.7 協(xié)作圖元素 消息的詳細(xì)說明,消息標(biāo)簽語法規(guī)則如下:消息的詳細(xì)說明,消息標(biāo)簽語法規(guī)則如下: 前驅(qū)前驅(qū) 守衛(wèi)條件守衛(wèi)條件 序號(hào)表達(dá)式序號(hào)表達(dá)式 返回值返回值 := 消息名(參消息名(參數(shù)列表)數(shù)列表) 前驅(qū):前驅(qū):是指在發(fā)送當(dāng)前消息之前必須被處理的所是指在發(fā)送當(dāng)前消息之前必須被處理的所有消息。有消息。 守衛(wèi)條件:守衛(wèi)條件:通常用代碼表示,通常用代碼表示,UML沒有規(guī)定語法。沒
39、有規(guī)定語法。 序號(hào)表達(dá)式:序號(hào)表達(dá)式:是以小數(shù)點(diǎn)分割的序號(hào)項(xiàng)列表,每是以小數(shù)點(diǎn)分割的序號(hào)項(xiàng)列表,每個(gè)子句代表交互中的一個(gè)嵌套層次。如果所有控制個(gè)子句代表交互中的一個(gè)嵌套層次。如果所有控制都是并發(fā)的,那么沒有嵌套。都是并發(fā)的,那么沒有嵌套。 序號(hào)項(xiàng)語法:序號(hào)項(xiàng)語法:整數(shù)整數(shù)|名字名字 循環(huán)循環(huán) 6.7 協(xié)作圖元素 名字指一個(gè)并發(fā)控制線程的名字,如果兩條消息名字指一個(gè)并發(fā)控制線程的名字,如果兩條消息的序號(hào)表達(dá)式只有最后一個(gè)名字不同,那么它們的序號(hào)表達(dá)式只有最后一個(gè)名字不同,那么它們是同一層上的并發(fā)控制流。是同一層上的并發(fā)控制流。 循環(huán)表示重復(fù)執(zhí)行或條件執(zhí)行,語法:循環(huán)表示重復(fù)執(zhí)行或條件執(zhí)行,語法:*重復(fù)子重復(fù)子句句 / 條件子句條件子句。UML中用雙豎線中用雙豎線“|”表示消息表示消息的并發(fā)執(zhí)行。的并發(fā)執(zhí)行。 返回值:返回值:表示通信結(jié)束后返回的數(shù)值列表??梢员硎就ㄐ沤Y(jié)束后返回的數(shù)值列表。可以作為后續(xù)消息的參數(shù)。如果消息不返回任何值,作為后續(xù)消息的參數(shù)。如果消息不返回任何值,可以省略賦值操作符和返回值子句。可以省略賦值操作符和返回值子句。 6.7 協(xié)作圖元素 協(xié)作圖中的消息種類與順序圖中的消息種類完全協(xié)作圖中的消息種類與順序圖中的消息種類完全相同,在一般應(yīng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省清遠(yuǎn)市連州市2023-2024學(xué)年五年級(jí)下學(xué)期數(shù)學(xué)期末監(jiān)測(cè)試卷(含答案)
- 仲秋促銷活動(dòng)方案
- 企業(yè)之星活動(dòng)方案
- 企業(yè)傳承活動(dòng)方案
- 企業(yè)公司員工活動(dòng)方案
- 企業(yè)參展活動(dòng)方案
- 企業(yè)回訪活動(dòng)方案
- 企業(yè)外聯(lián)活動(dòng)方案
- 企業(yè)宣講雙選會(huì)活動(dòng)方案
- 企業(yè)年末賀歲活動(dòng)方案
- 社區(qū)街道網(wǎng)格員安全培訓(xùn)
- 電機(jī)故障機(jī)理分析
- TSG Z0002-2009特種設(shè)備信息化工作管理規(guī)則
- 高中地理必修1期末試卷及答案-人教版-2024-2025學(xué)年
- 腦梗急救護(hù)理
- 2024年新人教版一年級(jí)數(shù)學(xué)下冊(cè)《教材練習(xí)10練習(xí)十附答案》教學(xué)課件
- 綜英4學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 低溫水電解制氫系統(tǒng) 穩(wěn)動(dòng)態(tài)及電能質(zhì)量性能測(cè)試方法(征求意見稿)
- 人教版五年級(jí)音樂下冊(cè)保衛(wèi)黃河課件模板
- 氣象行業(yè)天氣預(yù)報(bào)技能競(jìng)賽理論試題庫資料(含答案)
- 一把手講安全課件:提升全員安全意識(shí)
評(píng)論
0/150
提交評(píng)論