




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、信息系統(tǒng)分析與設(shè)計第6章 順序圖和協(xié)作圖 第6章 順序圖和協(xié)作圖 順序圖(順序圖(Sequence Diagram)和協(xié)作圖)和協(xié)作圖(Communication Diagram)統(tǒng)稱交互圖,用來描)統(tǒng)稱交互圖,用來描述系統(tǒng)中多個對象之間的相互關(guān)系及對象間消息傳述系統(tǒng)中多個對象之間的相互關(guān)系及對象間消息傳遞,用于對系統(tǒng)中多個對象的相互作用的過程進行遞,用于對系統(tǒng)中多個對象的相互作用的過程進行建模建模。 在面向?qū)ο蠓治鲞^程中,可以使用順序圖來描述在面向?qū)ο蠓治鲞^程中,可以使用順序圖來描述完成一個用例的過程,使用協(xié)作圖來分析系統(tǒng)中的完成一個用例的過程,使用協(xié)作圖來分析系統(tǒng)中的對象和對象之間傳遞的消
2、息。對象和對象之間傳遞的消息。 6.1 順序圖概述 順序圖的主要用途之一是用來為某個用例的泛化順序圖的主要用途之一是用來為某個用例的泛化功能提供其所缺乏的解釋,即把用例表達的需求,功能提供其所缺乏的解釋,即把用例表達的需求,轉(zhuǎn)化為進一步、更加正式層次的精細表達。轉(zhuǎn)化為進一步、更加正式層次的精細表達。 順序圖描述了對象之間傳遞消息的時間順序,用順序圖描述了對象之間傳遞消息的時間順序,用來表示用例中行為順序。用例常常被細化為一個來表示用例中行為順序。用例常常被細化為一個或多個的順序圖。或多個的順序圖。 順序圖用一個二維圖描述系統(tǒng)中各個對象之間的交順序圖用一個二維圖描述系統(tǒng)中各個對象之間的交互關(guān)系。
3、互關(guān)系。主要由四個標記符組成:對象、生命線、主要由四個標記符組成:對象、生命線、消息和激活。消息和激活。 6.1 順序圖概述 在順序圖中參加交互的各個對象沿橫軸排列,發(fā)在順序圖中參加交互的各個對象沿橫軸排列,發(fā)起交互的對象通常放在左邊,其他對象依次放在起交互的對象通常放在左邊,其他對象依次放在右邊。這些對象發(fā)送和接收的消息沿縱軸方向右邊。這些對象發(fā)送和接收的消息沿縱軸方向按按時間順序時間順序從上到下放置。該在順序圖中縱軸為從上到下放置。該在順序圖中縱軸為時時間軸間軸。 順序圖清晰地描述了系統(tǒng)隨時間推移的控制流軌順序圖清晰地描述了系統(tǒng)隨時間推移的控制流軌跡。跡。圖中每個對象在單獨的一列中,每個對
4、象符圖中每個對象在單獨的一列中,每個對象符號放置在代表生成對象消息的箭頭末端,其垂直號放置在代表生成對象消息的箭頭末端,其垂直位置表示該對象第一次生成的時間。位置表示該對象第一次生成的時間。 6.2 順序圖元素 順序圖描述了對象以及對象之間傳遞的消息,強順序圖描述了對象以及對象之間傳遞的消息,強調(diào)對象之間的交互是按照時間的先后順序發(fā)生的,調(diào)對象之間的交互是按照時間的先后順序發(fā)生的,這些特定順序發(fā)生的交互序列從開始到結(jié)束需要這些特定順序發(fā)生的交互序列從開始到結(jié)束需要一定的時間。一定的時間。在順序圖中主要包括了以下四種元在順序圖中主要包括了以下四種元素:素: 對象對象 生命線生命線 激活激活 消息
5、消息6.2 順序圖元素 類定義了對象可執(zhí)行的各種行為,但在面向?qū)ο箢惗x了對象可執(zhí)行的各種行為,但在面向?qū)ο笙到y(tǒng)中,行為的執(zhí)行者是對象,而不是類,因此系統(tǒng)中,行為的執(zhí)行者是對象,而不是類,因此在順序圖中通常描述的是對象層次而不是類層次在順序圖中通常描述的是對象層次而不是類層次。 面向?qū)ο蠓治鲋凶罨镜膯挝皇菍ο螅憩F(xiàn)面向?qū)ο蠓治鲋凶罨镜膯挝皇菍ο螅憩F(xiàn)實世界中一個一個地具體事物。實世界中一個一個地具體事物。 在順序圖中使用一個方框表示在順序圖中使用一個方框表示一個對象,對象的名字下面有一個對象,對象的名字下面有一個下劃線,一個學生對象一個下劃線,一個學生對象“張三張三”如圖所示。如圖
6、所示。 6.2.1 對象對象 張三6.2 順序圖元素 在順序圖中也可以使用用例圖中的在順序圖中也可以使用用例圖中的參與者圖符參與者圖符 。 如果一個對象在順序圖的第一個操作之前就已經(jīng)如果一個對象在順序圖的第一個操作之前就已經(jīng)存在,那么該對象的圖符就應(yīng)該存在,那么該對象的圖符就應(yīng)該畫在順序圖的頂畫在順序圖的頂部部。 如果一個對象是在順序圖的交互過程中,由其他如果一個對象是在順序圖的交互過程中,由其他對象創(chuàng)建的,那么該對象就不應(yīng)該出現(xiàn)在順序圖對象創(chuàng)建的,那么該對象就不應(yīng)該出現(xiàn)在順序圖的頂端,而應(yīng)該的頂端,而應(yīng)該出現(xiàn)在創(chuàng)建該對象消息的末端出現(xiàn)在創(chuàng)建該對象消息的末端 。6.2 順序圖元素 對象在垂直方
7、向拖出的虛線是對象的生命線,用對象在垂直方向拖出的虛線是對象的生命線,用于表示對象是存在的時間范圍。于表示對象是存在的時間范圍。 對象的生命線是一個時間線,從順序圖的頂部一對象的生命線是一個時間線,從順序圖的頂部一直延續(xù)到順序圖的底部,所用的長度取決于交互直延續(xù)到順序圖的底部,所用的長度取決于交互的維持長度。的維持長度。 6.2.2 生命線生命線 6.2 順序圖元素 對象生命線上的窄矩形條被稱為激活,激活表示對象生命線上的窄矩形條被稱為激活,激活表示該對象正在執(zhí)行某個操作該對象正在執(zhí)行某個操作,圖符如圖所示。激活,圖符如圖所示。激活條的長短表示執(zhí)行操作的時間。一個被激活的對條的長短表示執(zhí)行操作
8、的時間。一個被激活的對象要么執(zhí)行自己的代碼,要么等待另一個對象的象要么執(zhí)行自己的代碼,要么等待另一個對象的返回結(jié)果。返回結(jié)果。 6.2.3 激活激活 6.2 順序圖元素 激活在順序圖中不能夠單獨存在必須與生命線連激活在順序圖中不能夠單獨存在必須與生命線連在一起使用在一起使用,當一條消息被傳遞給對象的時候,當一條消息被傳遞給對象的時候,該消息將觸發(fā)該對象的某個行為,此時該對象就該消息將觸發(fā)該對象的某個行為,此時該對象就被激活了。被激活了。 通常情況下,通常情況下,表示激活的矩形的頂點是消息和生表示激活的矩形的頂點是消息和生命線交匯的地方,表示對象從此時起開始獲得控命線交匯的地方,表示對象從此時起
9、開始獲得控制權(quán),而矩形的底部則表示該次交互已經(jīng)結(jié)束,制權(quán),而矩形的底部則表示該次交互已經(jīng)結(jié)束,或?qū)ο蟮囊呀?jīng)交控制權(quán)交出或?qū)ο蟮囊呀?jīng)交控制權(quán)交出。 6.2 順序圖元素 在順序圖中,對象都不是孤立存在的,這些對象在順序圖中,對象都不是孤立存在的,這些對象之間是通過消息進行通訊。之間是通過消息進行通訊。對象通過相互傳遞消對象通過相互傳遞消息來進行相互作用。使用消息是用來說明順序圖息來進行相互作用。使用消息是用來說明順序圖中不同活動對象之間的通信過程。一個消息可以中不同活動對象之間的通信過程。一個消息可以激發(fā)一個對象的某個操作,完成一定的功能。激發(fā)一個對象的某個操作,完成一定的功能。 6.2.4 消息
10、消息 順序圖中,順序圖中,消息由從一個對象的生命線指向另一消息由從一個對象的生命線指向另一個對象的生命線的直線箭頭表示,箭頭上標注要個對象的生命線的直線箭頭表示,箭頭上標注要發(fā)送的消息名。發(fā)送的消息名。在消息的起點隱含著發(fā)送事件,在消息的起點隱含著發(fā)送事件,消息的終點隱含著接收事件消息的終點隱含著接收事件 。 6.2 順序圖元素 在順序圖中消息的次序是由它們在垂直軸上的位在順序圖中消息的次序是由它們在垂直軸上的位置來決定的置來決定的,在垂直軸上靠上的消息先發(fā)送,靠,在垂直軸上靠上的消息先發(fā)送,靠下的消息后發(fā)送。下的消息后發(fā)送。 在在UML中,中,消息的發(fā)送方和消息的接收方可以是消息的發(fā)送方和消
11、息的接收方可以是同一個對象同一個對象。也就是說,對象也可以將消息發(fā)送。也就是說,對象也可以將消息發(fā)送給自己本身,也就是自己給自己發(fā)送消息給自己本身,也就是自己給自己發(fā)送消息 在在UML中,每一條消息可以帶有一個名稱說明,中,每一條消息可以帶有一個名稱說明,可以帶參數(shù)。可以帶參數(shù)。消息還可以包含條件以限制它們只消息還可以包含條件以限制它們只在滿足條件時才能被發(fā)送。條件標注在消息的名在滿足條件時才能被發(fā)送。條件標注在消息的名稱上的方括號中。稱上的方括號中。 6.2 順序圖元素 從消息和消息端的元模型可以得知,消息包含了從消息和消息端的元模型可以得知,消息包含了消息種類(消息種類(message k
12、ind)和和消息性質(zhì)(消息性質(zhì)(message sort)兩個屬性。兩個屬性。 消息中包括四種消息種類:消息中包括四種消息種類: 完整消息(完整消息(complete message):):一般常見的消一般常見的消息都是完整消息,該消息的發(fā)送事件和接受事件息都是完整消息,該消息的發(fā)送事件和接受事件都是存在的。都是存在的。 迷途消息(迷途消息(lost message):):只有發(fā)送事件,但沒只有發(fā)送事件,但沒有接收事件的消息稱為迷途消息,對于迷途消息,有接收事件的消息稱為迷途消息,對于迷途消息,在表示時需要在消息的箭頭端加上一個實心的小在表示時需要在消息的箭頭端加上一個實心的小圓。圓。6.2
13、順序圖元素 尋獲消息(尋獲消息(found message):):缺少了發(fā)送事件,缺少了發(fā)送事件,只有接收事件的消息稱為尋獲消息。對于尋獲消只有接收事件的消息稱為尋獲消息。對于尋獲消息,在表示時需要在消息的非箭頭端加上一個實息,在表示時需要在消息的非箭頭端加上一個實心的小圓。心的小圓。 未知消息(未知消息(unknown message):):既沒有發(fā)送事既沒有發(fā)送事件,也沒有接收事件的消息稱為未知消息。對于件,也沒有接收事件的消息稱為未知消息。對于未知消息,未知消息,UML中也沒有詳細說明這種消息,也中也沒有詳細說明這種消息,也許這個消息在實際應(yīng)用時并不真實存在。許這個消息在實際應(yīng)用時并不真
14、實存在。 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)建對象的消用來創(chuàng)建對象的消息,稱為創(chuàng)建消息。它的圖符是帶開放性箭頭的息,稱為創(chuàng)建消息。它的圖符是帶開放性箭頭的虛線,箭頭的指向目標對象,如下圖所示。虛線,箭頭的指向目標對象,如下圖所示。 6
15、.2 順序圖元素 同步調(diào)用(同步調(diào)用(synchCall):):同步調(diào)用消息代表一個同步調(diào)用消息代表一個操作調(diào)用的控制流。同步調(diào)用消息的發(fā)送方把控操作調(diào)用的控制流。同步調(diào)用消息的發(fā)送方把控制傳遞給消息的接收者,然后暫停活動,等待消制傳遞給消息的接收者,然后暫停活動,等待消息接受者的應(yīng)答,收到應(yīng)答后才繼續(xù)自己的操作。息接受者的應(yīng)答,收到應(yīng)答后才繼續(xù)自己的操作。同步調(diào)用消息被水平的置于對象的生命線之間,同步調(diào)用消息被水平的置于對象的生命線之間,水平放置的方式說明消息的傳遞是瞬時的,即消水平放置的方式說明消息的傳遞是瞬時的,即消息在發(fā)出之后會馬上被收到。它的圖符是帶實心息在發(fā)出之后會馬上被收到。它的
16、圖符是帶實心箭頭的實線,如下圖所示。箭頭的實線,如下圖所示。 6.2 順序圖元素 回復(fù)消息(回復(fù)消息(reply message):):目標對象執(zhí)行結(jié)束目標對象執(zhí)行結(jié)束時,會發(fā)出回復(fù)消息給來源對象。它的圖符是帶時,會發(fā)出回復(fù)消息給來源對象。它的圖符是帶開放式箭頭的虛線,從負責執(zhí)行的目標對象反向開放式箭頭的虛線,從負責執(zhí)行的目標對象反向指回給來源對象,如下圖所示。指回給來源對象,如下圖所示。 異步調(diào)用(異步調(diào)用(asynchCall):):異步調(diào)用消息表示消異步調(diào)用消息表示消息的發(fā)送對象不用等待消息接收對象回應(yīng)的返回息的發(fā)送對象不用等待消息接收對象回應(yīng)的返回消息,即可以開始另一個活動。異步調(diào)用消
17、息在消息,即可以開始另一個活動。異步調(diào)用消息在某種程度上規(guī)定了發(fā)送方和接收方的責任,即發(fā)某種程度上規(guī)定了發(fā)送方和接收方的責任,即發(fā)送方只負責將消息發(fā)送到接收方,至于接收方如送方只負責將消息發(fā)送到接收方,至于接收方如何響應(yīng),發(fā)送方則不需要知道。何響應(yīng),發(fā)送方則不需要知道。 6.2 順序圖元素 最常見的實現(xiàn)異步消息的方式是使用線程。最常見的實現(xiàn)異步消息的方式是使用線程。當系當系統(tǒng)發(fā)送異步消息時,需要啟動一個線程在后臺運統(tǒng)發(fā)送異步消息時,需要啟動一個線程在后臺運行。異步調(diào)用的圖符如下圖所示。行。異步調(diào)用的圖符如下圖所示。 異步信號(異步信號(asynchSignal):):同步信號消息和異同步信號消
18、息和異步信號消息的區(qū)別在于,消息發(fā)送對象是否等待步信號消息的區(qū)別在于,消息發(fā)送對象是否等待目標執(zhí)行結(jié)束才繼續(xù)往下執(zhí)行。異步信號消息類目標執(zhí)行結(jié)束才繼續(xù)往下執(zhí)行。異步信號消息類似于最常用的簡單消息,一般情況下,如果不必似于最常用的簡單消息,一般情況下,如果不必強調(diào)消息的性質(zhì),則可以使用異步信號消息代表強調(diào)消息的性質(zhì),則可以使用異步信號消息代表其他性質(zhì)的消息。它的圖符如下圖所示。其他性質(zhì)的消息。它的圖符如下圖所示。 6.4 順序圖理解 下圖給出了一個圖書超期檢查系統(tǒng)的順序圖示例,下圖給出了一個圖書超期檢查系統(tǒng)的順序圖示例,用來描述圖書館中圖書超期檢查的過程。參與圖用來描述圖書館中圖書超期檢查的過程
19、。參與圖書檢查的對象有四個:書檢查的對象有四個:系統(tǒng)、圖書、讀者及通知系統(tǒng)、圖書、讀者及通知單單。PrintNotice( )CheckAllBooks( )CheckTimeExceding( )GetBookInformations( )GetReaderInformations( )Create( )系統(tǒng)圖書讀者通知單6.4 順序圖理解 對象對象“系統(tǒng)系統(tǒng)”是圖書管理系統(tǒng)中的一個控制程序,是圖書管理系統(tǒng)中的一個控制程序,它負責定期檢查是否有超期圖書;它負責定期檢查是否有超期圖書;“圖書圖書”對象對象是圖書館中的每一本具體的圖書;是圖書館中的每一本具體的圖書;“讀者讀者”對象對象是借閱圖書
20、的某個具體的讀者;是借閱圖書的某個具體的讀者;“通知單通知單”對象對象是一個具體的超期通知單。是一個具體的超期通知單。 通過圖中對象的放置位置可以看出,對象通過圖中對象的放置位置可以看出,對象“系系統(tǒng)統(tǒng)”、“圖書圖書”和和“讀者讀者”是在發(fā)送第一條消息是在發(fā)送第一條消息前就存在的,而對象前就存在的,而對象“通知單通知單”的位置沒有在順的位置沒有在順序圖的頂端,它是在消息發(fā)送的過程中,通過對序圖的頂端,它是在消息發(fā)送的過程中,通過對象象“系統(tǒng)系統(tǒng)”發(fā)送的發(fā)送的“Create”消息創(chuàng)建的。消息創(chuàng)建的。 6.4 順序圖理解 上圖描述的超期檢查過程如下:上圖描述的超期檢查過程如下: 第一步第一步,系統(tǒng)
21、程序?qū)ο筘撠煻ㄆ趯λ型饨鑸D書,系統(tǒng)程序?qū)ο筘撠煻ㄆ趯λ型饨鑸D書進行超期檢查,每次檢查時首先發(fā)送消息進行超期檢查,每次檢查時首先發(fā)送消息“CheckAllBooks”,用來檢查所有外借圖書,獲,用來檢查所有外借圖書,獲取圖書借閱時間和期限信息。取圖書借閱時間和期限信息。 第二步第二步,系統(tǒng)程序?qū)ο笙驅(qū)ο螅到y(tǒng)程序?qū)ο笙驅(qū)ο蟆皥D書圖書”發(fā)送消息發(fā)送消息 “CheckTimeExceding”檢測每一本外借圖書是否檢測每一本外借圖書是否超期。超期。 第三步第三步,系統(tǒng)程序?qū)ο笙驅(qū)ο螅到y(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)的“讀者讀者”對象發(fā)送消息對象發(fā)送消息“GetReaderInformations”得到圖書對象信息和得到圖書對象信息和相應(yīng)讀者對象信息。相應(yīng)讀者對象信息。 第五步第五步,系統(tǒng)程序?qū)ο筘撠煱l(fā)送一個,系統(tǒng)程序?qū)ο筘撠煱l(fā)送一個“Create”消消息,創(chuàng)建一個新對象息,創(chuàng)建一個新對象“通知單通知單”,通知單中記錄,通知單中記錄超期圖書和相應(yīng)的讀者信息。超期圖書和相應(yīng)的讀者信息。 第六步第六步,系統(tǒng)程序?qū)ο筘撠熛颍到y(tǒng)程序?qū)ο筘撠熛颉巴ㄖ獑瓮ㄖ獑巍睂ο蟀l(fā)對象發(fā)送一個
23、消息送一個消息PrintNotice,打印出生成的通知單。,打印出生成的通知單。6.4 順序圖理解 在順序圖中的控制流并不是只能按照從上到下的在順序圖中的控制流并不是只能按照從上到下的順序依次進行,控制流也可以進行修改,順序依次進行,控制流也可以進行修改,條件分條件分支支就是其中一種。就是其中一種。 6.4.1 條件分支條件分支 順序圖中的分支是使用帶條件的消息來實現(xiàn)的,順序圖中的分支是使用帶條件的消息來實現(xiàn)的,這個條件稱為守衛(wèi)條件。這個條件稱為守衛(wèi)條件。只有當條件為真的時候只有當條件為真的時候才可以發(fā)送和接收消息。如果所有分支上的守衛(wèi)才可以發(fā)送和接收消息。如果所有分支上的守衛(wèi)條件都是互斥的,
24、那么就會有互斥的消息箭頭,條件都是互斥的,那么就會有互斥的消息箭頭,一次只能發(fā)送一條消息。如果多個分支上的條件一次只能發(fā)送一條消息。如果多個分支上的條件并不互斥,那么可以并行發(fā)送多條消息。并不互斥,那么可以并行發(fā)送多條消息。 6.4 順序圖理解 條件條件打印機忙打印機忙和和打印機空閑打印機空閑是兩個是兩個互斥的條件互斥的條件,打印服務(wù)器根據(jù)條件來確定消息發(fā)給對象打印服務(wù)器根據(jù)條件來確定消息發(fā)給對象“打印打印機機”還是對象還是對象“打印隊列打印隊列”。兩個消息都是從同。兩個消息都是從同一點出發(fā)的,這一點出發(fā)的,這表示兩個分支在同一時間點上只表示兩個分支在同一時間點上只能執(zhí)行一個分支。能執(zhí)行一個分
25、支。 打印機忙打印機空閑打印文件打印隊列計算機打印服務(wù)器打印機6.4 順序圖理解 從屬流與條件分支不從屬流與條件分支不同,從屬流允許某一同,從屬流允許某一個對象根據(jù)不同的條個對象根據(jù)不同的條件改變執(zhí)行不同的操件改變執(zhí)行不同的操作,即可以創(chuàng)建對象作,即可以創(chuàng)建對象的另一個生命線分支。的另一個生命線分支。 6.4.2 從屬流從屬流 刪除打印任務(wù)打印服務(wù)器打印隊列添加打印任務(wù) 如圖中所示,打印服務(wù)器會根據(jù)需要從打印隊列如圖中所示,打印服務(wù)器會根據(jù)需要從打印隊列中刪除打印任務(wù)或根據(jù)需要向打印隊列中添加打中刪除打印任務(wù)或根據(jù)需要向打印隊列中添加打印任務(wù)。印任務(wù)。6.4 順序圖理解 順序圖中的消息通常都是
26、水平的,表明消息的傳順序圖中的消息通常都是水平的,表明消息的傳遞是瞬時的,也就是說在消息傳遞的過程中不會遞是瞬時的,也就是說在消息傳遞的過程中不會發(fā)生其他的事件。發(fā)生其他的事件。但有些情況下,從一個對象到但有些情況下,從一個對象到另一個對象的消息可能存在一定的時間延遲,也另一個對象的消息可能存在一定的時間延遲,也就是說消息的傳遞不是瞬時完成的。對于這種帶就是說消息的傳遞不是瞬時完成的。對于這種帶有延遲的消息的表示,可以將消息的箭頭向下傾有延遲的消息的表示,可以將消息的箭頭向下傾斜斜 6.4.3 消息延遲消息延遲 6.4 順序圖理解 比較典型的消息延遲的例子就是電子郵件的應(yīng)用,比較典型的消息延遲
27、的例子就是電子郵件的應(yīng)用,由于郵件服務(wù)器是外部對象,用戶與郵件服務(wù)器由于郵件服務(wù)器是外部對象,用戶與郵件服務(wù)器的相互通訊需要必要的網(wǎng)絡(luò)延遲,因此可以把用的相互通訊需要必要的網(wǎng)絡(luò)延遲,因此可以把用戶和郵件服務(wù)器的連接和從郵件服務(wù)器下載郵件戶和郵件服務(wù)器的連接和從郵件服務(wù)器下載郵件的活動表示為延遲消息的活動表示為延遲消息 。返回郵件用戶郵件服務(wù)器連接連接時間小于1秒6.4 順序圖理解 如果為了強調(diào)需要對多個對象重復(fù)發(fā)送某個消息,如果為了強調(diào)需要對多個對象重復(fù)發(fā)送某個消息,可以在順序圖中添加循環(huán)標識符號可以在順序圖中添加循環(huán)標識符號,順序圖中表,順序圖中表示循環(huán)執(zhí)行的消息有三種方式。示循環(huán)執(zhí)行的消息
28、有三種方式。 6.4.4 循環(huán)循環(huán) 第一種第一種,在需要循環(huán)重復(fù)執(zhí)行的消息前添加符號在需要循環(huán)重復(fù)執(zhí)行的消息前添加符號“*”,并在其后的中括號中寫明具體的條件,并在其后的中括號中寫明具體的條件。 校驗打印文件*for each filecheck()=true計算機打印服務(wù)器打印隊列6.4 順序圖理解 第二種,第二種,在時間軸上注釋表明消息的重復(fù)執(zhí)行,在時間軸上注釋表明消息的重復(fù)執(zhí)行,使用大括號標明說明文字。如圖所示,打印服務(wù)使用大括號標明說明文字。如圖所示,打印服務(wù)器對象時間軸上大括號內(nèi)標注重復(fù)執(zhí)行的動作。器對象時間軸上大括號內(nèi)標注重復(fù)執(zhí)行的動作。 校驗打印文件對每個文件進行校驗,直到全部校
29、驗合格計算機打印服務(wù)器打印隊列6.4 順序圖理解 第三種,第三種,使用矩形框?qū)⑿枰貜?fù)執(zhí)行的消息框起使用矩形框?qū)⑿枰貜?fù)執(zhí)行的消息框起來,并在中括號內(nèi)說明重復(fù)執(zhí)行的條件,如圖所來,并在中括號內(nèi)說明重復(fù)執(zhí)行的條件,如圖所示。矩形框框內(nèi)為需要重復(fù)執(zhí)行的消息,矩形框示。矩形框框內(nèi)為需要重復(fù)執(zhí)行的消息,矩形框下中括號內(nèi)是重復(fù)執(zhí)行的條件。下中括號內(nèi)是重復(fù)執(zhí)行的條件。 打印文件打印隊列打印機打開文件讀取時間信息打印時間信息直到隊列最后一個文件讀取打印完畢關(guān)閉文件刪除隊列中文件6.4 順序圖理解 在在UML 2.0中,為了幫助建模人員處理順序圖中中,為了幫助建模人員處理順序圖中需要更詳細描述的細節(jié),顯示更加
30、復(fù)雜的交互,需要更詳細描述的細節(jié),顯示更加復(fù)雜的交互,創(chuàng)建更有結(jié)構(gòu)化的順序圖,提供了創(chuàng)建更有結(jié)構(gòu)化的順序圖,提供了順序圖片段順序圖片段。利用順序圖片段可以表示比較復(fù)雜的交互,例如利用順序圖片段可以表示比較復(fù)雜的交互,例如循環(huán)和迭代等等。循環(huán)和迭代等等。6.4.5 順序圖片段順序圖片段 順序圖片段被描述成順序圖中框起來一部分交互順序圖片段被描述成順序圖中框起來一部分交互的矩形。的矩形。順序圖片段矩形與順序圖中某部分交互順序圖片段矩形與順序圖中某部分交互重疊。順序圖片段中可以包含任意數(shù)目的交互,重疊。順序圖片段中可以包含任意數(shù)目的交互,甚至還可以包含嵌套片段。甚至還可以包含嵌套片段。順序圖片段矩形
31、的左順序圖片段矩形的左上角包含一個運算符,以表明類型。上角包含一個運算符,以表明類型。 6.4 順序圖理解片段類型參數(shù)作 用ref無分解大型的順序圖,類似于用例關(guān)系中的include。assert無指示包含在片段中的交互必須完全按照它們的指示發(fā)生,否則片段無效。loop有循環(huán)執(zhí)行該片段內(nèi)的交互,直到判斷條件為假。這類似于程序設(shè)計語言中的循環(huán)語句break無當包含在break片段中的交互發(fā)生時,則退出任何一個交互。這類似于程序設(shè)計語言中的break語句。alt有根據(jù)判斷條件,選擇片段中的一個交互執(zhí)行。類似于程序設(shè)計語言中的ifelse語句。opt有包含在此片段中的交互只有在判斷條件為真時才執(zhí)行。
32、neg無不允許執(zhí)行該片段中的交互,多用戶異常處理。par無片段中的各個交互并行執(zhí)行。順序圖片段順序圖片段 6.5 順序圖應(yīng)用 在進行順序圖模型創(chuàng)建時,主要遵循以下步驟:在進行順序圖模型創(chuàng)建時,主要遵循以下步驟: 確定用例的需求確定用例的需求 找出需求中涉及的對象找出需求中涉及的對象 找出對象間的消息的傳遞找出對象間的消息的傳遞 構(gòu)建順序圖構(gòu)建順序圖 以以 “圖書超期檢查圖書超期檢查”為例,介紹順序圖的設(shè)計過為例,介紹順序圖的設(shè)計過程,具體的過程見書。程,具體的過程見書。 6.6 協(xié)作圖概述 協(xié)作圖與順序圖一樣也是用于描述系統(tǒng)中協(xié)作圖與順序圖一樣也是用于描述系統(tǒng)中各對象的交互關(guān)系并展現(xiàn)對象間的消
33、息傳各對象的交互關(guān)系并展現(xiàn)對象間的消息傳遞,但兩者側(cè)重點不同,遞,但兩者側(cè)重點不同,順序圖著重于交順序圖著重于交互的時間順序,而協(xié)作圖著重于描述協(xié)作互的時間順序,而協(xié)作圖著重于描述協(xié)作對象間的交互和連接對象間的交互和連接。 還可以從另一個角度來看兩種圖的定義,還可以從另一個角度來看兩種圖的定義,順序圖是按照時間的順序布圖,而協(xié)作圖順序圖是按照時間的順序布圖,而協(xié)作圖是按照空間來布圖。是按照空間來布圖。 6.7 協(xié)作圖元素協(xié)作圖中的主要建模元素包括:協(xié)作圖中的主要建模元素包括: 對象對象 消息消息 鏈鏈6.7 協(xié)作圖元素 協(xié)作圖中的對象是類圖中類的實例,對象在對象協(xié)作圖中的對象是類圖中類的實例,
34、對象在對象框中表示,通常不帶屬性定義部分。框中表示,通常不帶屬性定義部分。在在UML順序順序圖和協(xié)助圖中,對象可以使用三種圖符來表示,圖和協(xié)助圖中,對象可以使用三種圖符來表示,具體的對象表示方式如圖所示。具體的對象表示方式如圖所示。 6.7.1 對象對象 對象名(A)對象名:類名(B):類名(C)6.7 協(xié)作圖元素 協(xié)作圖中,有時信號或操作是應(yīng)用于一個對象集協(xié)作圖中,有時信號或操作是應(yīng)用于一個對象集而不是單一對象上,而不是單一對象上,UML提供表示這種對象集合提供表示這種對象集合的容器類的容器類“多對象多對象”。在協(xié)作圖中,多對象指的在協(xié)作圖中,多對象指的是由多個對象組成的對象集合,一般這些對
35、象是是由多個對象組成的對象集合,一般這些對象是屬于同一類的。多對象用多個方框重疊表示,圖屬于同一類的。多對象用多個方框重疊表示,圖符如圖所示。符如圖所示。 6.7.2 多對象多對象 單對象給多對象同時發(fā)送一個消息單對象給多對象同時發(fā)送一個消息時,需要在消息前面加一個星號,時,需要在消息前面加一個星號,并加上用方括號括起來的條件。并加上用方括號括起來的條件。 對象6.7 協(xié)作圖元素 在協(xié)作圖中,在協(xié)作圖中,主動對象是一組屬性和方法的封裝主動對象是一組屬性和方法的封裝體體,主動對象中至少有一個方法不需要接收消息,主動對象中至少有一個方法不需要接收消息就能主動執(zhí)行。也就是說主動對象可以在不接受就能主
36、動執(zhí)行。也就是說主動對象可以在不接受外部消息的情況下自己開始一個控制流。外部消息的情況下自己開始一個控制流。 6.7.3 主動對象主動對象 在協(xié)作圖中,主動對象的圖符于普在協(xié)作圖中,主動對象的圖符于普通對象基本相同,只是外部邊框的通對象基本相同,只是外部邊框的線條要加黑加粗,如圖所示。線條要加黑加粗,如圖所示。 對象名6.7 協(xié)作圖元素 鏈用來在協(xié)作圖中關(guān)聯(lián)對象。它代表一個鏈用來在協(xié)作圖中關(guān)聯(lián)對象。它代表一個來自類圖的關(guān)聯(lián)實例。來自類圖的關(guān)聯(lián)實例。在協(xié)作圖中,消息顯在協(xié)作圖中,消息顯示在鏈上可以加一些修飾,例如角色名、導示在鏈上可以加一些修飾,例如角色名、導航(表示鏈是雙向還是單向)、鏈兩端的
37、對航(表示鏈是雙向還是單向)、鏈兩端的對象是否有聚集關(guān)系等,但由于鏈是連接對象象是否有聚集關(guān)系等,但由于鏈是連接對象的,所以的,所以鏈的兩端沒有多重性標記鏈的兩端沒有多重性標記。鏈的圖。鏈的圖符就是簡單的實線。符就是簡單的實線。 6.7.4 鏈鏈 6.7 協(xié)作圖元素 在協(xié)作圖中,對象與對象之間的相互作用是通過在協(xié)作圖中,對象與對象之間的相互作用是通過傳遞消息來實現(xiàn)的,消息是對象與對象之間通信傳遞消息來實現(xiàn)的,消息是對象與對象之間通信的方式。的方式。 消息使用一條帶箭頭的連線來表示,消息中箭頭消息使用一條帶箭頭的連線來表示,消息中箭頭來指示消息沿著關(guān)系傳遞的方向。來指示消息沿著關(guān)系傳遞的方向。一
38、條連線可以一條連線可以表示一個或多個消息,消息的名稱標在連線的上表示一個或多個消息,消息的名稱標在連線的上面,也可以給消息增加參數(shù)并標上一些控制信息。面,也可以給消息增加參數(shù)并標上一些控制信息。 6.7.5 消息消息 6.7 協(xié)作圖元素 消息的詳細說明,消息標簽語法規(guī)則如下:消息的詳細說明,消息標簽語法規(guī)則如下: 前驅(qū)前驅(qū) 守衛(wèi)條件守衛(wèi)條件 序號表達式序號表達式 返回值返回值 := 消息名(參消息名(參數(shù)列表)數(shù)列表) 前驅(qū):前驅(qū):是指在發(fā)送當前消息之前必須被處理的所是指在發(fā)送當前消息之前必須被處理的所有消息。有消息。 守衛(wèi)條件:守衛(wèi)條件:通常用代碼表示,通常用代碼表示,UML沒有規(guī)定語法。沒
39、有規(guī)定語法。 序號表達式:序號表達式:是以小數(shù)點分割的序號項列表,每是以小數(shù)點分割的序號項列表,每個子句代表交互中的一個嵌套層次。如果所有控制個子句代表交互中的一個嵌套層次。如果所有控制都是并發(fā)的,那么沒有嵌套。都是并發(fā)的,那么沒有嵌套。 序號項語法:序號項語法:整數(shù)整數(shù)|名字名字 循環(huán)循環(huán) 6.7 協(xié)作圖元素 名字指一個并發(fā)控制線程的名字,如果兩條消息名字指一個并發(fā)控制線程的名字,如果兩條消息的序號表達式只有最后一個名字不同,那么它們的序號表達式只有最后一個名字不同,那么它們是同一層上的并發(fā)控制流。是同一層上的并發(fā)控制流。 循環(huán)表示重復(fù)執(zhí)行或條件執(zhí)行,語法:循環(huán)表示重復(fù)執(zhí)行或條件執(zhí)行,語法:*重復(fù)子重復(fù)子句句 / 條件子句條件子句。UML中用雙豎線中用雙豎線“|”表示消息表示消息的并發(fā)執(zhí)行。的并發(fā)執(zhí)行。 返回值:返回值:表示通信結(jié)束后返回的數(shù)值列表。可以表示通信結(jié)束后返回的數(shù)值列表。可以作為后續(xù)消息的參數(shù)。如果消息不返回任何值,作為后續(xù)消息的參數(shù)。如果消息不返回任何值,可以省略賦值操作符和返回值子句。可以省略賦值操作符和返回值子句。 6.7 協(xié)作圖元素 協(xié)作圖中的消息種類與順序圖中的消息種類完全協(xié)作圖中的消息種類與順序圖中的消息種類完全相同,在一般應(yīng)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工安全培訓
- 掛牌上鎖培訓
- 2025年上海市合同法規(guī)定
- 示范企業(yè)安全管理工作展示
- 5防突措施的全面質(zhì)量管控體系
- 2025網(wǎng)絡(luò)安全行業(yè)勞動合同模板
- 《數(shù)學分析的基本理論與圖形演示》課件
- 物流法律法規(guī)培訓包裝法律法規(guī)
- 《城市交通管理》課件
- 《奢華品牌的詮釋》課件
- 智能輸液架的設(shè)計與實現(xiàn)
- 2024年福建省中考歷史試卷(含標準答案及解析)
- 人教版四年級下冊音樂《唱山歌》教學設(shè)計
- 2024年4月貴州省自考00995商法(二)試題及答案含評分參考
- 高等工程數(shù)學Ⅲ智慧樹知到期末考試答案章節(jié)答案2024年南京理工大學
- 2024年美國商用車和乘用車市場現(xiàn)狀及上下游分析報告
- DB32T3748-2020 35kV及以下客戶端變電所建設(shè)標準
- 中國近代三種建國方案
- 數(shù)學奧秘揭秘-揭開數(shù)學背后的奧秘
- 《幽門螺桿菌檢測》課件
- 《云南土壤類型》課件
評論
0/150
提交評論