面向?qū)ο蠓治雠c設(shè)計(jì)侯愛民chapter05_第1頁
面向?qū)ο蠓治雠c設(shè)計(jì)侯愛民chapter05_第2頁
面向?qū)ο蠓治雠c設(shè)計(jì)侯愛民chapter05_第3頁
面向?qū)ο蠓治雠c設(shè)計(jì)侯愛民chapter05_第4頁
面向?qū)ο蠓治雠c設(shè)計(jì)侯愛民chapter05_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第5章章 順序圖和協(xié)作圖順序圖和協(xié)作圖5.1 交互圖概述交互圖概述 5.2 順序圖順序圖5.3 順序圖中的消息順序圖中的消息5.4 建立順序圖的步驟建立順序圖的步驟5.5 協(xié)作圖協(xié)作圖5.6 建立協(xié)作圖的步驟建立協(xié)作圖的步驟5.7 順序圖與協(xié)作圖的比較順序圖與協(xié)作圖的比較5.8 順序圖與協(xié)作圖的轉(zhuǎn)換順序圖與協(xié)作圖的轉(zhuǎn)換5.1 交互圖概述交互圖概述 動(dòng)態(tài)模型:動(dòng)態(tài)模型: 動(dòng)態(tài)模型描述了系統(tǒng)隨時(shí)間變化的行動(dòng)態(tài)模型描述了系統(tǒng)隨時(shí)間變化的行為,這些行為是根據(jù)從靜態(tài)視圖中抽為,這些行為是根據(jù)從靜態(tài)視圖中抽取的系統(tǒng)的瞬間值的變化來描述的。取的系統(tǒng)的瞬間值的變化來描述的。 動(dòng)態(tài)模型主要包括交互圖和行為圖。

2、動(dòng)態(tài)模型主要包括交互圖和行為圖。 交互圖包括順序圖和協(xié)作圖。交互圖包括順序圖和協(xié)作圖。 行為圖包括狀態(tài)圖和活動(dòng)圖。行為圖包括狀態(tài)圖和活動(dòng)圖。5.1 交互圖概述交互圖概述 順序圖順序圖用來顯示對(duì)象之間的關(guān)系,用來顯示對(duì)象之間的關(guān)系,并強(qiáng)調(diào)對(duì)象之間消息的時(shí)間順序,同并強(qiáng)調(diào)對(duì)象之間消息的時(shí)間順序,同時(shí)顯示對(duì)象之間的交互。時(shí)顯示對(duì)象之間的交互。 協(xié)作圖協(xié)作圖用來描述對(duì)象之間的交互用來描述對(duì)象之間的交互關(guān)系。關(guān)系。5.1 交互圖概述交互圖概述 狀態(tài)圖狀態(tài)圖通過對(duì)類對(duì)象的生存周期通過對(duì)類對(duì)象的生存周期建立模型來描述對(duì)象隨時(shí)間變化的動(dòng)建立模型來描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為。態(tài)行為。 活動(dòng)圖活動(dòng)圖是一種特殊形

3、式的狀態(tài)機(jī)是一種特殊形式的狀態(tài)機(jī),用于對(duì)計(jì)算流程和工作流程建模。用于對(duì)計(jì)算流程和工作流程建模。5.1 交互圖概述交互圖概述 順圖的定義:順圖的定義: 順序圖是用來描述順序圖是用來描述對(duì)象之間對(duì)象之間以及對(duì)象以及對(duì)象與參與者與參與者(actor)之間的動(dòng)態(tài)協(xié)作之間的動(dòng)態(tài)協(xié)作(誰向誰向誰發(fā)消息誰發(fā)消息)關(guān)系,以及協(xié)作過程中行為關(guān)系,以及協(xié)作過程中行為次序次序(消息的先后次序消息的先后次序)的圖形文檔。的圖形文檔。 它通常用來描述它通常用來描述一個(gè)用例的行為一個(gè)用例的行為, 顯示該用例中所涉及的對(duì)象和這些對(duì)顯示該用例中所涉及的對(duì)象和這些對(duì)象之間的消息傳遞情況。象之間的消息傳遞情況。5.1 交互圖概述

4、交互圖概述 順序圖用來表示用例中的行為順序。順序圖用來表示用例中的行為順序。 當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)每條消息對(duì)應(yīng)了一個(gè)類操作類操作或狀態(tài)機(jī)或狀態(tài)機(jī)中引起轉(zhuǎn)換的中引起轉(zhuǎn)換的觸發(fā)事件觸發(fā)事件。5.1 交互圖概述交互圖概述 對(duì)象對(duì)象: 對(duì)象是系統(tǒng)中用來描述客觀事物的一對(duì)象是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,是基本單位。個(gè)實(shí)體,是基本單位。 一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組方法組成。行操作的一組方法組成。objectName:ClassName:ClassNameobjectName顯示對(duì)象名和類名

5、顯示對(duì)象名和類名只顯示類名只顯示類名只顯示對(duì)象名只顯示對(duì)象名5.1 交互圖概述交互圖概述 類類: 類是具有相同屬性和方法的一組對(duì)象類是具有相同屬性和方法的一組對(duì)象的集合,它為屬于該類的全部對(duì)象提的集合,它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述。供了統(tǒng)一的抽象描述。 類的實(shí)例就是對(duì)象。類的實(shí)例就是對(duì)象。5.1 交互圖概述交互圖概述EmployeeNamePositionSalaryStartDateEndDatehire( ) fire( ) promote( ) getSalary( ) retire( )類類Employee5.1 交互圖概述交互圖概述 交互圖包括:交互圖包括: 順序圖順序

6、圖(sequence diagram) 協(xié)作圖協(xié)作圖(collaboration diagram) 順序圖順序圖著重描述對(duì)象按照時(shí)間順序的消息著重描述對(duì)象按照時(shí)間順序的消息交換。交換。 協(xié)作圖協(xié)作圖著重描述系統(tǒng)成分(著重描述系統(tǒng)成分(指:對(duì)象,消指:對(duì)象,消息,鏈息,鏈)如何分工。)如何分工。5.1 交互圖概述交互圖概述 順序圖和協(xié)作圖從不同的角度表達(dá)了順序圖和協(xié)作圖從不同的角度表達(dá)了系統(tǒng)中的交互和系統(tǒng)的行為。它們之系統(tǒng)中的交互和系統(tǒng)的行為。它們之間可以相互轉(zhuǎn)化。間可以相互轉(zhuǎn)化。 一個(gè)用例需要多個(gè)順序圖或協(xié)作圖一個(gè)用例需要多個(gè)順序圖或協(xié)作圖。 除非特別簡(jiǎn)單的用例。此時(shí),這個(gè)用除非特別簡(jiǎn)單的用例

7、。此時(shí),這個(gè)用例只需要一個(gè)順序圖來描述行為。例只需要一個(gè)順序圖來描述行為。5.1 交互圖概述交互圖概述 交互圖可以幫助分析人員對(duì)照檢查每交互圖可以幫助分析人員對(duì)照檢查每個(gè)用例中所描述的個(gè)用例中所描述的用戶需求用戶需求是否已經(jīng)是否已經(jīng)落實(shí)到能夠落實(shí)到能夠完成這些功能的類中去實(shí)完成這些功能的類中去實(shí)現(xiàn)現(xiàn)。 交互圖描述的是交互圖描述的是對(duì)象之間的消息發(fā)送對(duì)象之間的消息發(fā)送關(guān)系關(guān)系,而不是類之間的關(guān)系。,而不是類之間的關(guān)系。5.2 順序圖順序圖 順序圖,也稱時(shí)序圖。順序圖,也稱時(shí)序圖。 Rumbaugh給出的定義:給出的定義: 順序圖是顯示對(duì)象之間交互的圖,這些對(duì)順序圖是顯示對(duì)象之間交互的圖,這些對(duì)象

8、是按時(shí)間順序排列的。象是按時(shí)間順序排列的。 :Driver :Caroper( )5.2 順序圖順序圖 順序圖描述了對(duì)象之間傳遞消息的時(shí)間順順序圖描述了對(duì)象之間傳遞消息的時(shí)間順序。序。 它用來表示用例中的行為順序,強(qiáng)調(diào)消息它用來表示用例中的行為順序,強(qiáng)調(diào)消息時(shí)間順序的交互圖。時(shí)間順序的交互圖。 當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每一每一條消息條消息對(duì)應(yīng)了對(duì)應(yīng)了一個(gè)類操作一個(gè)類操作,或狀態(tài)機(jī)中引,或狀態(tài)機(jī)中引起轉(zhuǎn)換的起轉(zhuǎn)換的觸發(fā)事件觸發(fā)事件。5.2 順序圖順序圖 object1:C1: Jreoper( ) object2:C2 object3:C3oper1( )

9、oper2( )oper3( )對(duì)象維對(duì)象維時(shí)間維(時(shí)間遞增)時(shí)間維(時(shí)間遞增)對(duì)象對(duì)象生命線生命線控制控制焦點(diǎn)焦點(diǎn)消息消息順序圖順序圖激活期激活期5.2 順序圖順序圖 學(xué)位初評(píng)學(xué)位初評(píng): 教務(wù)人員教務(wù)人員學(xué)生學(xué)號(hào)學(xué)生學(xué)號(hào)( ) 成績(jī)管理成績(jī)管理 獎(jiǎng)懲管理獎(jiǎng)懲管理學(xué)生學(xué)號(hào)學(xué)生學(xué)號(hào)( )所有課程成績(jī)所有課程成績(jī)( )學(xué)生學(xué)號(hào)學(xué)生學(xué)號(hào)( )所有獎(jiǎng)懲記錄所有獎(jiǎng)懲記錄( )5.2 順序圖順序圖 困惑一困惑一: 在前面的兩個(gè)順序圖中,前一個(gè)是對(duì)象在前面的兩個(gè)順序圖中,前一個(gè)是對(duì)象之間交互之間交互,后一個(gè)是功能模塊,后一個(gè)是功能模塊之間交互之間交互 怎么理解怎么理解“順序圖順序圖”的概念?的概念?5.2

10、順序圖順序圖 困惑一的回答困惑一的回答: 順序圖是由一組參與者(系統(tǒng)內(nèi)依次彼順序圖是由一組參與者(系統(tǒng)內(nèi)依次彼此此交互的各個(gè)組成部分)組成交互的各個(gè)組成部分)組成 如果一個(gè)系統(tǒng)很容易、很清晰地用若干如果一個(gè)系統(tǒng)很容易、很清晰地用若干個(gè)對(duì)象描述,那么順序圖就以個(gè)對(duì)象描述,那么順序圖就以“對(duì)象對(duì)象”為參與者為參與者5.2 順序圖順序圖 困惑一的回答困惑一的回答: 順序圖是由一組參與者(系統(tǒng)內(nèi)依次彼順序圖是由一組參與者(系統(tǒng)內(nèi)依次彼此此交互的各個(gè)組成部分)組成交互的各個(gè)組成部分)組成 如果一個(gè)系統(tǒng)很容易、很清晰地用若干如果一個(gè)系統(tǒng)很容易、很清晰地用若干個(gè)功能模塊描述,那么順序圖就以個(gè)功能模塊描述,那

11、么順序圖就以“功功能模塊能模塊”為參與者為參與者 功能模塊的最后代碼實(shí)現(xiàn),終究功能模塊的最后代碼實(shí)現(xiàn),終究“歸根歸根”到對(duì)象及其方法上到對(duì)象及其方法上5.2 順序圖順序圖 困惑二困惑二: 交互交互圖圖通常用來描述一個(gè)用例的行為通常用來描述一個(gè)用例的行為 一個(gè)用例需要多個(gè)順序圖或協(xié)作圖一個(gè)用例需要多個(gè)順序圖或協(xié)作圖 怎么理解怎么理解“用例圖用例圖”與與“順序圖順序圖”的關(guān)的關(guān)系?系?5.2 順序圖順序圖 困惑二的回答困惑二的回答: 下面給出一個(gè)用例圖下面給出一個(gè)用例圖Author Credentials DatabaseRecord Application FailureCheck Identi

12、tyCreate a new Regular Blog AccountAdministratorCreate a new Editorial Blog AccountCreate a new Blog account5.2 順序圖順序圖 困惑二的回答困惑二的回答: 用例用例“Create a new Regular Blog Account”的用例描述的用例描述主要流程主要流程 步驟步驟動(dòng)作動(dòng)作1管理者要求系統(tǒng)創(chuàng)建一個(gè)新博客帳戶管理者要求系統(tǒng)創(chuàng)建一個(gè)新博客帳戶2管理者選擇一般(管理者選擇一般(regular)的帳戶類型)的帳戶類型3管理者輸入作者詳細(xì)數(shù)據(jù)管理者輸入作者詳細(xì)數(shù)據(jù)4使用作者憑證數(shù)據(jù)

13、庫,驗(yàn)證作者詳細(xì)數(shù)據(jù)使用作者憑證數(shù)據(jù)庫,驗(yàn)證作者詳細(xì)數(shù)據(jù)5創(chuàng)建新的一般型的博客帳戶創(chuàng)建新的一般型的博客帳戶6通過電子郵件將新博客帳戶詳細(xì)數(shù)據(jù)的摘要發(fā)給作通過電子郵件將新博客帳戶詳細(xì)數(shù)據(jù)的摘要發(fā)給作者者5.2 順序圖順序圖 困惑二的回答困惑二的回答: 用例用例“Create a new Regular Blog Account”的順序圖的順序圖5.2 順序圖順序圖 :ContentManagementSystemcreateNewBlogAccount( )checkAuthorDetails(author:AuthorDetails) admin:Administrator acd:Autho

14、rCredentialsDB es:EmailSystemselectBlogAccountType(type)enterAuthorDetails(author:AuthorDetails)createNewBlogAccount(author:AuthorDetails)sendEmail(email:Email)emailBlogDteails(regularBlogAccount)5.2 順序圖順序圖 順序圖中的順序圖中的建模元素建模元素: 對(duì)象(參與者實(shí)例也是對(duì)象)對(duì)象(參與者實(shí)例也是對(duì)象) 生命線生命線 控制焦點(diǎn)控制焦點(diǎn) 消息消息5.2 順序圖順序圖 對(duì)象對(duì)象: 3種命名方式種命名

15、方式 顯示對(duì)象名和類名顯示對(duì)象名和類名 只顯示類名,不顯示對(duì)象名(匿名對(duì)只顯示類名,不顯示對(duì)象名(匿名對(duì)象)。此時(shí),用類角色代表實(shí)際的對(duì)象。象)。此時(shí),用類角色代表實(shí)際的對(duì)象。 只顯示對(duì)象名,不顯示類名(不關(guān)心對(duì)只顯示對(duì)象名,不顯示類名(不關(guān)心對(duì)象所屬的類名)象所屬的類名)5.2 順序圖順序圖objectName:ClassName:ClassNameobjectName顯示對(duì)象名和類名顯示對(duì)象名和類名只顯示類名只顯示類名只顯示對(duì)象名只顯示對(duì)象名5.2 順序圖順序圖 生命線生命線: 從對(duì)象圖標(biāo)向下延伸的一條虛線從對(duì)象圖標(biāo)向下延伸的一條虛線 表示對(duì)象存在的時(shí)間表示對(duì)象存在的時(shí)間 :Driver5

16、.2 順序圖順序圖 生命線生命線: 生命線表示一個(gè)對(duì)象在一段時(shí)期內(nèi)的存生命線表示一個(gè)對(duì)象在一段時(shí)期內(nèi)的存在在 正是因?yàn)檫@個(gè)特性,使順序圖適合正是因?yàn)檫@個(gè)特性,使順序圖適合對(duì)象對(duì)象之間消息的時(shí)間順序之間消息的時(shí)間順序 一般情況下,對(duì)象的生命線從圖的頂部一般情況下,對(duì)象的生命線從圖的頂部畫到底部,表示對(duì)象存在于交互的整個(gè)畫到底部,表示對(duì)象存在于交互的整個(gè)過程過程5.2 順序圖順序圖 控制焦點(diǎn)(又稱激活期)控制焦點(diǎn)(又稱激活期): 在生命線上的小矩形在生命線上的小矩形 表示時(shí)間段的符號(hào)表示時(shí)間段的符號(hào) 在這個(gè)時(shí)間段內(nèi),對(duì)象將執(zhí)行相應(yīng)的操作在這個(gè)時(shí)間段內(nèi),對(duì)象將執(zhí)行相應(yīng)的操作 :Driver :Car

17、oper( )5.2 順序圖順序圖 控制焦點(diǎn)控制焦點(diǎn): 控制焦點(diǎn)可以嵌套,更精確地說明消息控制焦點(diǎn)可以嵌套,更精確地說明消息的開始和結(jié)束位置的開始和結(jié)束位置 object1:C1 object2:C2 object3:C3oper1( )oper2( )oper3( )嵌套嵌套消息的開始位置消息的開始位置消息的結(jié)束位置消息的結(jié)束位置5.2 順序圖順序圖 控制焦點(diǎn)控制焦點(diǎn): 激活期表示一個(gè)對(duì)象執(zhí)行一個(gè)動(dòng)作的期激活期表示一個(gè)對(duì)象執(zhí)行一個(gè)動(dòng)作的期間,即對(duì)象激活的時(shí)間段間,即對(duì)象激活的時(shí)間段 激活矩形的高度激活矩形的高度代表激活持續(xù)時(shí)間代表激活持續(xù)時(shí)間 這個(gè)特性可視化地描述了對(duì)象執(zhí)行一項(xiàng)這個(gè)特性可視化

18、地描述了對(duì)象執(zhí)行一項(xiàng)操作的時(shí)間操作的時(shí)間5.2 順序圖順序圖 消息消息: 從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象的生從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象的生命線的箭頭命線的箭頭 定義交互和協(xié)作中交換的信息定義交互和協(xié)作中交換的信息 一個(gè)對(duì)象或類可以通過消息請(qǐng)求另一個(gè)一個(gè)對(duì)象或類可以通過消息請(qǐng)求另一個(gè)對(duì)象或類來完成特定功能對(duì)象或類來完成特定功能5.3 順序圖中的消息順序圖中的消息 消息種類消息種類: 調(diào)用消息調(diào)用消息 異步消息異步消息 返回消息返回消息 反身消息反身消息 阻止消息阻止消息 超時(shí)消息超時(shí)消息5.3 順序圖中的消息順序圖中的消息 調(diào)用消息調(diào)用消息: 調(diào)用消息的發(fā)送者把控制傳遞給消息的調(diào)用消息的發(fā)送

19、者把控制傳遞給消息的接收者,然后停止活動(dòng),等待消息接收接收者,然后停止活動(dòng),等待消息接收者放棄或返回控制者放棄或返回控制 早期版本中,也稱為早期版本中,也稱為同步消息同步消息 為了圖的簡(jiǎn)潔,與調(diào)用消息配對(duì)的返回為了圖的簡(jiǎn)潔,與調(diào)用消息配對(duì)的返回消息可以不用畫出來消息可以不用畫出來 接收者是一個(gè)需要通過消息驅(qū)動(dòng)才能執(zhí)接收者是一個(gè)需要通過消息驅(qū)動(dòng)才能執(zhí)行動(dòng)作的對(duì)象(行動(dòng)作的對(duì)象(被動(dòng)對(duì)象被動(dòng)對(duì)象)5.3 順序圖中的消息順序圖中的消息 調(diào)用消息調(diào)用消息: :Driver :Caroper( )注意箭頭形狀5.3 順序圖中的消息順序圖中的消息 異步消息異步消息: 異步消息的發(fā)送者通過消息把信號(hào)傳遞異步

20、消息的發(fā)送者通過消息把信號(hào)傳遞給消息的接收者,然后繼續(xù)自己的活動(dòng),給消息的接收者,然后繼續(xù)自己的活動(dòng),不等待消息接收者返回消息或控制不等待消息接收者返回消息或控制 接收者和發(fā)送者是并發(fā)工作的接收者和發(fā)送者是并發(fā)工作的 :Driver :Caroper( )注意箭頭形狀5.3 順序圖中的消息順序圖中的消息 返回消息返回消息: 返回消息表示從過程調(diào)用返回返回消息表示從過程調(diào)用返回 如果是從如果是從過程調(diào)用過程調(diào)用返回,則返回消息是返回,則返回消息是隱含的,所以返回消息可以不用畫出來隱含的,所以返回消息可以不用畫出來 對(duì)于對(duì)于非過程調(diào)用非過程調(diào)用,如果有返回消息,必,如果有返回消息,必須明確表示出來

21、須明確表示出來 返回消息用虛箭頭表示返回消息用虛箭頭表示5.3 順序圖中的消息順序圖中的消息 返回消息返回消息: :Driver :Caroper( )5.3 順序圖中的消息順序圖中的消息 反身消息反身消息: 在反身消息中,消息的發(fā)送者和接收者是同在反身消息中,消息的發(fā)送者和接收者是同一個(gè)對(duì)象。一個(gè)對(duì)象。 :CustomerActor1:cancel( ) :Event :Performance2:cancelPerformance( )3*for each performance whose datetoday:delete( ):void4:return void6:return void

22、5:return void5.3 順序圖中的消息順序圖中的消息 阻止消息阻止消息: 消息發(fā)送者發(fā)出消息給接收者,如果接消息發(fā)送者發(fā)出消息給接收者,如果接收者無法立即接收消息,則發(fā)送者放棄收者無法立即接收消息,則發(fā)送者放棄這個(gè)消息這個(gè)消息 用折回的箭頭表示用折回的箭頭表示 :Driver :Caroper( )注意箭頭形狀5.3 順序圖中的消息順序圖中的消息 超時(shí)消息超時(shí)消息: 消息發(fā)送者發(fā)出消息給接收者,并按指消息發(fā)送者發(fā)出消息給接收者,并按指定時(shí)間等待。如果接收者無法在指定時(shí)定時(shí)間等待。如果接收者無法在指定時(shí)間內(nèi)接收消息,則發(fā)送者放棄這個(gè)消息間內(nèi)接收消息,則發(fā)送者放棄這個(gè)消息 用附帶小圓圈表

23、示用附帶小圓圈表示 :Driver :Caroper( )注意箭頭形狀5.3 順序圖中的消息順序圖中的消息 消息的語法格式消息的語法格式: predecessor guard-condition sequence-expression return-value := message-name (argument-list) predecessor:必須先發(fā)生的消息的列表:必須先發(fā)生的消息的列表 guard-condition:警戒條件:警戒條件 sequence-expression:消息順序表達(dá)式:消息順序表達(dá)式5.3 順序圖中的消息順序圖中的消息 消息的語法格式消息的語法格式: prede

24、cessor guard-condition sequence-expression return-value := message-name (argument-list) return-value:消息的返回值的名字列表:消息的返回值的名字列表 message-name:消息名:消息名 argument-list:消息的參數(shù)列表:消息的參數(shù)列表5.4 建立順序圖的步驟建立順序圖的步驟 確定交互過程的上下文確定交互過程的上下文 識(shí)別參與交互過程的對(duì)象識(shí)別參與交互過程的對(duì)象 為每個(gè)對(duì)象設(shè)置生命線,即確定哪些為每個(gè)對(duì)象設(shè)置生命線,即確定哪些對(duì)象存在于整個(gè)交互過程中,哪些對(duì)象對(duì)象存在于整個(gè)交互過程

25、中,哪些對(duì)象在交互過程中被創(chuàng)建和撤消在交互過程中被創(chuàng)建和撤消 從引發(fā)這個(gè)交互過程的初始消息開始,從引發(fā)這個(gè)交互過程的初始消息開始,在生命線之間自頂向下依次畫出隨后的在生命線之間自頂向下依次畫出隨后的各個(gè)消息各個(gè)消息5.4 建立順序圖的步驟建立順序圖的步驟 如果需要表示消息的嵌套,或如果需要表示消息的嵌套,或/和表示和表示消息發(fā)生時(shí)的時(shí)間點(diǎn),則采用控制焦點(diǎn)消息發(fā)生時(shí)的時(shí)間點(diǎn),則采用控制焦點(diǎn) 如果需要說明時(shí)間約束,則在消息旁如果需要說明時(shí)間約束,則在消息旁邊加上約束說明邊加上約束說明 如果需要,可以為每個(gè)消息附上前置如果需要,可以為每個(gè)消息附上前置條件和后置條件條件和后置條件5.4 建立順序圖的步

26、驟建立順序圖的步驟 讀卡機(jī)讀卡機(jī): 客戶客戶1:插卡插卡 ATM屏幕屏幕2:讀卡號(hào)讀卡號(hào)3:屏幕初始化屏幕初始化5:輸入密碼輸入密碼6:驗(yàn)證卡號(hào)驗(yàn)證卡號(hào) 取款機(jī)取款機(jī) 帳戶帳戶4:提示輸入密碼提示輸入密碼5.4 建立順序圖的步驟建立順序圖的步驟 讀卡機(jī)讀卡機(jī): 客戶客戶7:選擇取錢選擇取錢,輸入提取金額輸入提取金額 ATM屏幕屏幕9:驗(yàn)證金額驗(yàn)證金額8:提交金額提交金額11:提供錢、收據(jù)提供錢、收據(jù) 取款機(jī)取款機(jī) 帳戶帳戶12:退卡退卡10:扣錢扣錢5.4 建立順序圖的步驟建立順序圖的步驟 總結(jié)總結(jié): 激活期代表一個(gè)對(duì)象直接或間接的執(zhí)行一激活期代表一個(gè)對(duì)象直接或間接的執(zhí)行一個(gè)動(dòng)作(操作)的時(shí)間

27、。個(gè)動(dòng)作(操作)的時(shí)間。 激活矩形的高度代表激活持續(xù)時(shí)間。激活矩形的高度代表激活持續(xù)時(shí)間。 激活期可以被理解成激活期可以被理解成C語言中一對(duì)花括號(hào)語言中一對(duì)花括號(hào)“ ”中的內(nèi)容。中的內(nèi)容。 一個(gè)單獨(dú)的順序圖只能顯示一個(gè)控制流。一個(gè)單獨(dú)的順序圖只能顯示一個(gè)控制流。即用例的一個(gè)腳本。即用例的一個(gè)腳本。5.4 建立順序圖的步驟建立順序圖的步驟 總結(jié)總結(jié): 一般來說,一個(gè)完整的控制流肯定是復(fù)雜一般來說,一個(gè)完整的控制流肯定是復(fù)雜的,因此需要多個(gè)順序圖來描述。的,因此需要多個(gè)順序圖來描述。 一些順序圖是主要的,另一些順序圖用來一些順序圖是主要的,另一些順序圖用來描述可選擇的路徑和一些例外。描述可選擇的路

28、徑和一些例外。 再用一個(gè)包,對(duì)它們進(jìn)行統(tǒng)一的管理。這再用一個(gè)包,對(duì)它們進(jìn)行統(tǒng)一的管理。這樣就可以用一些交互圖來描述一個(gè)冗大復(fù)樣就可以用一些交互圖來描述一個(gè)冗大復(fù)雜的控制流。雜的控制流。5.5 協(xié)作圖協(xié)作圖 協(xié)作圖是用于描述系統(tǒng)的行為是如何由系協(xié)作圖是用于描述系統(tǒng)的行為是如何由系統(tǒng)的成分協(xié)作實(shí)現(xiàn)的圖統(tǒng)的成分協(xié)作實(shí)現(xiàn)的圖 協(xié)作圖強(qiáng)調(diào)參加交互的各對(duì)象的組織協(xié)作圖強(qiáng)調(diào)參加交互的各對(duì)象的組織 協(xié)作圖只對(duì)相互間有交互作用的對(duì)象和這協(xié)作圖只對(duì)相互間有交互作用的對(duì)象和這些對(duì)象間的關(guān)系建模些對(duì)象間的關(guān)系建模 忽略其它對(duì)象和關(guān)聯(lián)忽略其它對(duì)象和關(guān)聯(lián) 協(xié)作圖可以被視為對(duì)象圖的擴(kuò)展協(xié)作圖可以被視為對(duì)象圖的擴(kuò)展,但它除了

29、但它除了展現(xiàn)出對(duì)象間的關(guān)聯(lián)外,還顯示出對(duì)象間展現(xiàn)出對(duì)象間的關(guān)聯(lián)外,還顯示出對(duì)象間的消息傳遞的消息傳遞5.5 協(xié)作圖協(xié)作圖 協(xié)作圖描述的是和對(duì)象結(jié)構(gòu)相關(guān)的信息協(xié)作圖描述的是和對(duì)象結(jié)構(gòu)相關(guān)的信息 協(xié)作圖的一個(gè)用途是表示類操作的實(shí)現(xiàn)協(xié)作圖的一個(gè)用途是表示類操作的實(shí)現(xiàn) 協(xié)作圖可以說明類操作中用到的參數(shù)、局協(xié)作圖可以說明類操作中用到的參數(shù)、局部變量、操作中的永久鏈部變量、操作中的永久鏈. 當(dāng)實(shí)現(xiàn)一個(gè)行為時(shí),消息編號(hào)對(duì)應(yīng)了程序當(dāng)實(shí)現(xiàn)一個(gè)行為時(shí),消息編號(hào)對(duì)應(yīng)了程序中嵌套的調(diào)用結(jié)構(gòu)和信號(hào)傳遞過程。中嵌套的調(diào)用結(jié)構(gòu)和信號(hào)傳遞過程。5.5 協(xié)作圖協(xié)作圖 協(xié)作圖中的協(xié)作圖中的建模元素建模元素: 對(duì)象(參與者實(shí)例也是

30、對(duì)象,多對(duì)象,對(duì)象(參與者實(shí)例也是對(duì)象,多對(duì)象,主動(dòng)對(duì)象)主動(dòng)對(duì)象) 鏈鏈 消息消息5.5 協(xié)作圖協(xié)作圖 多對(duì)象多對(duì)象: 多對(duì)象指的是由多個(gè)對(duì)象組成的對(duì)象集多對(duì)象指的是由多個(gè)對(duì)象組成的對(duì)象集合合 一般情況下,這些對(duì)象屬于同一個(gè)類一般情況下,這些對(duì)象屬于同一個(gè)類 當(dāng)需要把消息同時(shí)發(fā)送給多個(gè)對(duì)象,而當(dāng)需要把消息同時(shí)發(fā)送給多個(gè)對(duì)象,而不是單個(gè)對(duì)象時(shí),使用多對(duì)象概念不是單個(gè)對(duì)象時(shí),使用多對(duì)象概念objectName:ClassName5.5 協(xié)作圖協(xié)作圖 主動(dòng)對(duì)象主動(dòng)對(duì)象: 主動(dòng)對(duì)象是一組屬性和一組方法的封裝主動(dòng)對(duì)象是一組屬性和一組方法的封裝體,其中至少有體,其中至少有一個(gè)方法不需要接收消一個(gè)方法不需

31、要接收消息,就能主動(dòng)執(zhí)行息,就能主動(dòng)執(zhí)行(稱為主動(dòng)方法)。(稱為主動(dòng)方法)。 主動(dòng)對(duì)象可以在不接收外部消息的情況主動(dòng)對(duì)象可以在不接收外部消息的情況下,自己開始一個(gè)控制流。下,自己開始一個(gè)控制流。 除含有主動(dòng)方法外,主動(dòng)對(duì)象的其他方除含有主動(dòng)方法外,主動(dòng)對(duì)象的其他方面與被動(dòng)對(duì)象沒有區(qū)別。面與被動(dòng)對(duì)象沒有區(qū)別。objectName:ClassName:RobotactiveRose中的主動(dòng)對(duì)象5.5 協(xié)作圖協(xié)作圖 鏈鏈: 用鏈來連接對(duì)象,而消息顯示在鏈的旁用鏈來連接對(duì)象,而消息顯示在鏈的旁邊。邊。 一個(gè)鏈上可以有多個(gè)消息一個(gè)鏈上可以有多個(gè)消息 對(duì)象是類的實(shí)例,腳本是用例的實(shí)例,對(duì)象是類的實(shí)例,腳本

32、是用例的實(shí)例,鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例 在鏈上可以加一些修飾,如角色名,導(dǎo)在鏈上可以加一些修飾,如角色名,導(dǎo)航,鏈兩端是否有聚集關(guān)系航,鏈兩端是否有聚集關(guān)系5.5 協(xié)作圖協(xié)作圖 消息消息: 消息代表協(xié)作圖中對(duì)象間通過鏈接發(fā)送消息代表協(xié)作圖中對(duì)象間通過鏈接發(fā)送的消息的消息 消息的箭頭消息的箭頭指向接受消息的對(duì)象指向接受消息的對(duì)象 消息流上標(biāo)有消息的序列號(hào)和對(duì)象間發(fā)消息流上標(biāo)有消息的序列號(hào)和對(duì)象間發(fā)送的消息送的消息 一條消息會(huì)觸發(fā)接收對(duì)象中的一項(xiàng)操作一條消息會(huì)觸發(fā)接收對(duì)象中的一項(xiàng)操作5.5 協(xié)作圖協(xié)作圖 消息消息: 消息的序列號(hào)(順序號(hào))是消息的一個(gè)消息的序列號(hào)(順序號(hào))是消息的一個(gè)數(shù)字前綴,

33、是一個(gè)整數(shù),由數(shù)字前綴,是一個(gè)整數(shù),由1開始遞增。開始遞增。 通過整數(shù)之間的通過整數(shù)之間的“點(diǎn)點(diǎn)”表示法,可以描表示法,可以描述控制的嵌套關(guān)系。述控制的嵌套關(guān)系。 例如,有:消息例如,有:消息1,消息,消息1.1,消息,消息1.2。消息消息1.1和和1.2是嵌套在消息是嵌套在消息1中的,且消中的,且消息息1.1排在消息排在消息1.2的前面的前面5.5 協(xié)作圖協(xié)作圖 回收分店回收分店信息模塊信息模塊: 企業(yè)主管企業(yè)主管1:回收分店信息回收分店信息3:分店的申請(qǐng)分店的申請(qǐng)2:分店的申請(qǐng)分店的申請(qǐng)5:處理分店的申請(qǐng)?zhí)幚矸值甑纳暾?qǐng) 門店退倉門店退倉模塊模塊4:處理分店的申請(qǐng)?zhí)幚矸值甑纳暾?qǐng) 分店提貨分店提貨模塊模塊: 系統(tǒng)操作員系統(tǒng)操作員5.6 建立協(xié)作圖的步驟建立協(xié)作圖的步驟 確定交互過程的上下文確定交互過程的上下文 識(shí)別參與交互過程的對(duì)象識(shí)別參與交互過程的對(duì)象 如果需要,為每個(gè)對(duì)象設(shè)置初始特性如果需要,為每個(gè)對(duì)象設(shè)置初始特性 確定對(duì)象之間的鏈,以及沿著鏈的消確定對(duì)象之間的鏈,以及沿著鏈的消息息 從引發(fā)這個(gè)交互過程的初始消息開始,從引發(fā)這個(gè)交互過程的初始消息開始,將隨后的每個(gè)消息附到相應(yīng)的鏈上將隨后的每個(gè)消息附到相應(yīng)的鏈上5.6 建立協(xié)作圖的步驟建立協(xié)作圖的步驟 如果需要表示消息的嵌

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論