chap5系統(tǒng)設計與對象動態(tài)交互模型_第1頁
chap5系統(tǒng)設計與對象動態(tài)交互模型_第2頁
chap5系統(tǒng)設計與對象動態(tài)交互模型_第3頁
chap5系統(tǒng)設計與對象動態(tài)交互模型_第4頁
chap5系統(tǒng)設計與對象動態(tài)交互模型_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章系統(tǒng)設計與對象動態(tài)交互模型zhufei@系統(tǒng)對象設計對象接口設計設計算法和數(shù)據(jù)結(jié)構(gòu)確認子系統(tǒng)子系統(tǒng)間的通信規(guī)約

系統(tǒng)體系結(jié)構(gòu)設計(1)任務管理設計主從結(jié)構(gòu)設計。如果對象不是同時活動的,則它們不需要并發(fā)處理,此時這些對象可以再同一機器上實現(xiàn)分布式結(jié)構(gòu)設計。如果對象必須對一些事件同時異步處理,則被認為是并發(fā)的,可以將并發(fā)的子系統(tǒng)分別分配到不同的計算機上過,或分配到同一計算機,并由操作系統(tǒng)提供并發(fā)支持數(shù)據(jù)管理設計定義數(shù)據(jù)類型。設計數(shù)據(jù)管理。數(shù)據(jù)管理設計提供了持久對象的基本結(jié)構(gòu)。其目的是將操作數(shù)據(jù)結(jié)構(gòu)的低層次需求和處理系統(tǒng)的高層次需求加以分離CompanyLogo系統(tǒng)體系結(jié)構(gòu)設計(2)用戶界面設計通常在設計階段根據(jù)系統(tǒng)分析階段給出的對象類的屬性和操作,把交互的細節(jié)加入到用戶界面的設計中包括有效地人機交互所必需的實際顯示和輸入這方面的設計主要有:用戶分類、描述用戶及其任務的場景、設計命令層、設計詳細的交互、設計人機交互類、根據(jù)圖形用戶界面進行設計CompanyLogo系統(tǒng)設計規(guī)格說明報告CompanyLogo交互模型建模面向?qū)ο蟮南到y(tǒng)分析與設計中,如何理解和掌握系統(tǒng)全部的控制流是一件困難的事情。系統(tǒng)中有很多個對象類,每個對象類都有一組操作,對象之間通過哪些交互完成系統(tǒng)功能要求,而要通過這些眾多的操作來理解和想象系統(tǒng)行為的先后順序也是非常困難的。在UML中,利用順序圖和合作圖可以有效的幫助人們觀察和分析系統(tǒng)的交互行為CompanyLogo順序圖和交互圖概述順序圖和交互圖是系統(tǒng)行為視圖的組成部分,從不同的角度描述了系統(tǒng)的行為順序圖描述對象之間信息交互時的時間順序合作圖描述對象間如何協(xié)作共同完成系統(tǒng)功能要求順序圖和合作圖相互補充,并可以相互轉(zhuǎn)化順序圖和交互圖具體描述了完成某種系統(tǒng)功能,系統(tǒng)中各對象間的交互與協(xié)作,可以有效的幫助人們觀察和理解系統(tǒng)行為CompanyLogo對象之間的通信在面向?qū)ο蠹夹g(shù)中,對象間的交互是通過對象間消息的傳遞來完成的。通常,當一個對象調(diào)用另一個對象中的操作時,即完成了一次消息傳遞。當操作執(zhí)行后,控制便返回到調(diào)用者。對象通過相互間的通信(消息傳遞)進行協(xié)作,并在其生命周期中根據(jù)通信的結(jié)果不斷改變自身的狀態(tài)。CompanyLogo消息內(nèi)容標識格式消息內(nèi)容標識格式[序號][警戒條件]*[重復次數(shù)][回送值表:=]操作名(參數(shù)表)使用規(guī)則:序號:表示消息在對象間交互的時間順序號。[警戒條件]:選擇項,為一布爾條件表達式。*[重復次數(shù)]:選擇項,表示消息重復發(fā)送的次數(shù)?;厮椭当恚阂浴?,”區(qū)分的名字表列,分別表示完成指定操作后返回的系列值??扇笔?。操作名:必須是接收該消息的對象類角色中的操作名?!埃ǎ眱?nèi)的參數(shù)表是以“,”號區(qū)分的實參表,傳送給接收消息的對象中的某個操作。CompanyLogo發(fā)送消息可以觸發(fā)的動作創(chuàng)建一個對象或釋放一個對象調(diào)用另一個對象的操作調(diào)用本對象的操作發(fā)送消息給另一個對象返回值給調(diào)用者CompanyLogo消息的4種控制流簡單消息同步消息異步消息返回消息CompanyLogo消息的4種控制流簡單消息(SimpleMessage)表示簡單的控制流。用于描述控制如何在對象間進行傳遞,而不考慮通信的細節(jié)。同步消息(SynchronousMessage)表示嵌套的控制流。操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當處理消息的操作執(zhí)行完畢后,調(diào)用者才可繼續(xù)執(zhí)行自己的操作。異步消息(AsynchronousMessage)表示異步控制流。當調(diào)用者發(fā)出消息后不用等待消息的返回即可繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實時系統(tǒng)中的并發(fā)行為。(返回消息:一般可省略)CompanyLogo時序圖(順序圖SequenceDiagram)順序圖(SequenceDiagram)用來描述對象之間動態(tài)的交互關系,著重體現(xiàn)對象間消息傳遞的時間順序。順序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時間。順序圖中的對象用一個帶有垂直虛線的矩形框表示,并標有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內(nèi)對象是存在的。對象間的通信通過在對象的生命線間畫消息來表示。消息的箭頭指明消息的類型。CompanyLogo時序圖說明順序圖中的消息可以是信號(Signal)、操作調(diào)用或類似于C++中的RPC(RemoteProcedureCalls)和Java中的RMI(RemoteMethodInvocation)。當收到消息時,接收對象立即開始執(zhí)行活動,即對象被激活了。通過在對象生命線上顯示一個細長矩形框來表示激活。消息可以用消息名及參數(shù)來標識。消息也可帶有順序號,但較少使用。消息還可帶有條件表達式,表示分支或決定是否發(fā)送消息。如果用于表示分支,則每個分支是相互排斥的,即在某一時刻僅可發(fā)送分支中的一個消息。CompanyLogo順序圖實例CompanyLogo順序圖實例說明圖最左邊的“合同管理員”也有激活期,在激活期上端向“購進合同管理數(shù)據(jù)庫”對象發(fā)出簡單消息,標在消息箭頭線上的內(nèi)容標識是“增加購進合同”;在激活期下端接收來自“購進合同管理數(shù)據(jù)庫”對象發(fā)出的返回消息,返回值是“購進合同”對象,激活期結(jié)束?!百忂M合同管理數(shù)據(jù)庫”對象接收到“合同管理員”發(fā)來的“增加購進合同”消息后,在其激活期上端發(fā)出簡單消息“構(gòu)造購進合同”,系統(tǒng)在該信息發(fā)送的時間點上創(chuàng)建一個“購進合同”對象。“購進合同管理數(shù)據(jù)庫”對象向自己發(fā)出簡單消息(稱自調(diào)用或遞歸調(diào)用),將新創(chuàng)建的“購進合同”對象存入自己的“購進合同管理數(shù)據(jù)庫”中,成為持久對象,本操作完成?!百忂M合同管理數(shù)據(jù)庫”對象在其激活期下端向行為者“合同管理員”發(fā)送返回消息和返回值。至此,該工作進程結(jié)束。CompanyLogo順序圖在順序圖的左邊可以有說明信息,用于說明消息發(fā)送的時刻、描述動作的執(zhí)行情況以及約束信息等。說明一個消息是重復發(fā)送的。另外,可以定義兩個消息間的時間限制。一個對象可以通過發(fā)送消息來創(chuàng)建另一個對象,當一個對象被刪除或自我刪除時,該對象用"X"標識。CompanyLogoCompanyLogousecaseview中和logicview中時序圖的區(qū)別這是從兩個層面進行描述的問題usecaseview的順序圖是描述用戶日常業(yè)務的時序關系,是偏向用戶需求的,應在業(yè)務模型中描述。logicview的順序圖是表達該流程在計算機中怎樣實現(xiàn),及實現(xiàn)的時序關系,是偏向設計人員的,應該在分析模型或設計模型中描述。CompanyLogo對象之間的同步操作同步消息的發(fā)送者把進程控制傳遞給消息的接收者,然后暫?;顒?,等待消息的接收者放棄或返回控制;同步消息的接收者執(zhí)行所請求的操作,如果需要的話,可以把控制傳遞給另一個對象角色,請求做某個操作,并且當該操作完成后把控制返回給原來的同步消息的發(fā)送者;同步消息的接收者也可以直接返回或發(fā)送信息給原來的消息發(fā)送者。CompanyLogo同步消息同步消息通過操作調(diào)用完成同步操作的嵌套控制流同步消息的接收者必須是一個被動對象同步消息必須用一條帶實心三角箭頭的箭線表示一般同步消息有一個配對的返回消息,可以省略。CompanyLogo同步操作實例CompanyLogo對象之間的異步操作異步消息的發(fā)送者通過發(fā)消息把信號傳遞給消息的接收者,然后繼續(xù)自己的活動,不等待消息接收者返回信息或控制;異步消息的接收者執(zhí)行所請求的操作,操作完成后可以向異步消息的發(fā)送者返回信息;異步消息的發(fā)送者和接收者采用并發(fā)工作方式。CompanyLogo異步消息可以做的工作一條異步消息每次只發(fā)一個信號,即只做一件事,可以做的事情有:創(chuàng)建一個新對象;創(chuàng)建一個新線程,此時異步消息連接到一個激活期的頂部;與一個正在運行的線程通信。CompanyLogo異步消息異步消息是表達異步請求的一個操作的非嵌套的控制流。異步消息由一條帶半叉箭頭或半實心箭頭的箭線表示異步消息的發(fā)送和接受者采用并發(fā)工作方式CompanyLogo帶條件和分支的時序圖消息有一個內(nèi)容標識,可帶參數(shù)表,消息上可附帶警戒條件,當條件為真時消息才被發(fā)送或接收。條件可用于描述分支。當幾個消息箭頭上的條件互斥時,表示某一時刻只有一個消息被發(fā)送,稱為條件分支;如果條件不是互斥的,則這些消息會被并行發(fā)出。CompanyLogo帶條件分支的時序圖實例CompanyLogo帶條件分支的時序圖實例說明當一臺計算機接收到請求打印文件的消息后,立即向“打印機服務器”對象發(fā)送“打印文件”請求?!按蛴C服務器”對象接收到消息后,同時發(fā)出兩條帶警戒條件的消息:一條發(fā)送給“:打印機”對象,警戒條件為:“如果[打印機空閑],則打印文件”;另一條發(fā)送給“:隊列”對象,其警戒條件為:“如果[打印機忙],則存儲文件”,即將該文件存儲到指定存儲器中排隊等候,當打印機有空閑時,再按文件排隊的先后順序依次打印。因為這兩條消息的警戒條件是互斥的,因此,在同一時刻只能執(zhí)行滿足條件的一條消息,而另一條消息則不會執(zhí)行。CompanyLogo帶條件分支并發(fā)執(zhí)行的時序圖CompanyLogo帶條件分支并發(fā)執(zhí)行的時序圖說明當一臺計算機接收到請求打印文件的消息后,立即向“打印機服務器”對象發(fā)送“打印文件”請求?!按蛴C服務器”對象接收到消息后,同時發(fā)出兩條帶警戒條件的消息:一條發(fā)送給“:打印機1”對象,警戒條件為:“如果「打印機1空閑],則打印文件”;另一條發(fā)送給“:打印機2”對象,其警戒條件為:“如果[打印機1忙],則到打印機2打?。ㄎ募薄.攦膳_打印機都處于空閑狀態(tài),而計算機只有兩個文件需要打印時,這兩條消息可以并發(fā)執(zhí)行。CompanyLogo帶約束標記的時序圖約束用分隔符{}圍起。標記可以是任何類型的,如時間標記和世界約束。CompanyLogo帶約束標記的時序圖實例CompanyLogo帶循環(huán)標記的時序圖一個對象向另一個對象連續(xù)多次發(fā)送同一組消息,稱為消息的循環(huán)循環(huán)標記用一個矩形框與其包含的一組消息表示。用[]圍起的表示停止(或繼續(xù))循環(huán)的條件,標識在矩形框的底線內(nèi)側(cè)邊上??梢杂靡粭l在發(fā)送方豎立的虛線代替方框。CompanyLogo帶循環(huán)標記的時序圖實例CompanyLogo協(xié)作圖(合作圖)合作圖(CollaborationDiagram)用于描述相互合作的對象間的交互關系和鏈接關系。雖然順序圖和合作圖都用來描述對象間的交互關系,但側(cè)重點不一樣。順序圖著重體現(xiàn)交互的時間順序合作圖則著重體現(xiàn)交互對象間的靜態(tài)鏈接關系。CompanyLogo協(xié)作圖(合作圖)合作圖中對象的外觀與順序圖中的一樣。如果一個對象在消息的交互中被創(chuàng)建,則可在對象名稱之后標以{new}。類似地,如果一個對象在交互期間被刪除,則可在對象名稱之后標以{destroy}。對象間的鏈接關系類似于類圖中的聯(lián)系(但無多重性標志)。通過在對象間的鏈接上標志帶有消息串的消息(簡單、異步或同步消息)來表達對象間的消息傳遞。CompanyLogo協(xié)作圖的成分:鏈接鏈接用于表示對象間的各種關系,包括組成關系的鏈接(CompositionLink)聚集關系的鏈接(AggregationLink)限定關系的鏈接(QualifiedLink)導航鏈接(NavigationLink)各種鏈接關系與類圖中的定義相同,在鏈接的端點位置可以顯示對象的角色名和模板信息。CompanyLogo協(xié)作圖實例CompanyLogo協(xié)作圖實例解釋圖中,有4個對象類:合同、銷售合同、收款單和出庫單。這些對象類之間用實線連接,表示它們之間有關聯(lián),關聯(lián)角色和多重性標志在關聯(lián)的兩端標出?!埃汉贤睂ο箢惡汀埃轰N售合同”對象類之間的關聯(lián)角色表明銷售合同是合同之一;它們之間的多重性是一對多關系。“:銷售合同”對象類與“:收款單”對象類之間的關聯(lián)角色表明銷售合同與收款單之間進行“核對”;它們之間的多重性是一對多關系?!埃轰N售合同”對象類與“:出庫單”對象類之間的關聯(lián)角色表明銷售合同與出庫單之間進行“履約核對”;它們之間的多重性也是一對多關系?!埃菏湛顔巍睂ο箢惻c“:出庫單”對象類之間的關聯(lián)角色表明收款單與出庫單之間也進行“核對”,核對正確則“提貨”;它們之間的多重性是多對多關系。CompanyLogo協(xié)作圖的成分:消息流在協(xié)作圖的鏈接線上,可以用帶有消息串的消息來描述對象間的交互。消息的箭頭指明消息的流動方向。消息串說明要發(fā)送的消息、消息的參數(shù)、消息的返回值以及消息的序列號等信息。CompanyLogo協(xié)作圖中對象的生存期在協(xié)作圖的對象框中,可以在{}內(nèi)填寫文字用來表示該對象的創(chuàng)建或消亡。對象創(chuàng)建{new},表示該對象在協(xié)作期被創(chuàng)建;對象消亡{destroyed},表示該對象在協(xié)作期消亡;對象創(chuàng)建并消亡{transient},表示該對象在創(chuàng)作期被創(chuàng)建并消亡CompanyLogo一個電梯按鈕的協(xié)作圖CompanyLogo一個電梯按鈕的協(xié)作圖的說明在該協(xié)作圖中各個對象之間發(fā)送的都是同步消息。協(xié)作從一個乘客要求乘電梯時開始,電梯按鈕的協(xié)作圖工作過程如下:

“:乘客”:一個電梯“:乘客”壓入按鈕,向“:按鈕”對象發(fā)送消息,希望得到電梯。“:按鈕”對象:接收到“:乘客”發(fā)送的消息后,向“:電梯控制”對象發(fā)送序號為1的消息,調(diào)用“:電梯控制”對象的操作“:得到電梯(樓層)”,即要求電梯來到乘客所在的樓層?!?電梯控制”對象:接收到消息后,為完成該操作,向不同對象發(fā)出一系列嵌套消息:CompanyLogo一個電梯按鈕的協(xié)作圖的說明“:電梯控制”對象:接收到消息后,為完成該操作,向不同對象發(fā)出一系列嵌套消息:首先向“:隊列”對象發(fā)送序號為1的具有廣播性的嵌套消息:1.1:*[所有隊列]=長度(),即對存儲在隊列中的所有工作隊列的長度進行循環(huán)檢查,找出其中最短的,即離乘客所在樓層最近且同方向的工作;發(fā)送序號為2的嵌套消息:1.2:建立(工作);建立一個工作命令對象,在該對象框的對象名后面標明{new},說明該對象被創(chuàng)建,并將該帶參數(shù)的消息“{Parameter}工作”命令置于最短的隊列中;同時,“命令”對象向“電梯”對象發(fā)送一個局部消息:進行下一步工作;3)最后向“:隊列”對象發(fā)送序號為3的嵌套消息:1.3:激發(fā)(工作)。

“:隊列”對象接收到1.3:“激發(fā)(工作)”消息后,“電梯”對象同時運轉(zhuǎn),并從隊列中選出下一個工作;將電梯開到乘客所在樓層。CompanyLogo協(xié)作圖中消息的層次關系協(xié)作圖中,對象之間傳遞的消息必須表明序號,用以說明消息傳送的先后順序。嵌套消息表示法消息順序表示法:缺乏層次感CompanyLogo嵌套表示的處理付款單協(xié)作圖CompanyLogo嵌套表示的處理付款單協(xié)作圖說明該圖只是描述銷售合同管理系統(tǒng)中處理付款單這項工作的協(xié)作圖。在協(xié)作圖中,合同管理員向“:銷售合同管理窗口”對象發(fā)送消息,調(diào)用其操作“啟動系統(tǒng)(密碼)”檢驗密碼正確后,銷售合同管理系統(tǒng)開始工作。合同管理員在窗口下選擇“處理付款單”功能“:銷售合同管理窗口”對象向“:付款單”對象發(fā)送序號為1的循環(huán)處理消息“1:*所有付款單]:處理()”,檢查是否有財務系統(tǒng)傳送來的付款單,如果有付款單,依次循環(huán)對付款單逐一處理,直到所有付款單處理完畢。CompanyLogo嵌套表示的處理付款單協(xié)作圖說明在循環(huán)處理過程中所有對象發(fā)出的消息都是嵌套消息,即“:付款單”對象及后面所有對象發(fā)出的消息都是“消息1”的嵌套消息,通過各條消息的序號排列,可以看出它們具有明顯的層次隸屬關系:1:*[所有付款單]:處理()1.1:核對合同()1.2:*[所有銷售貨物清單]:核對清單()1.2.1:有存貨︰=核查()

:[小于預警量]:檢查():[小于預警量]:打印()1.3:[有存貨]:打?。ǎ〤ompanyLogo順序消息序號的標識CompanyLogo協(xié)作圖中自調(diào)用與回調(diào)一個對象可以調(diào)用自己的操作,稱為消息的自我調(diào)用或遞歸調(diào)用。在協(xié)作圖中,消息的自我調(diào)用的表示方法:連接線從消息的發(fā)送者對象返回到對象本身,也可以在連接線旁標記構(gòu)造型<<self>>CompanyLogo回調(diào)對象之間也有消息的回調(diào),即消息的接收對象也可以向消息的發(fā)送對象發(fā)送消息。消息回調(diào)的標記是在對象連接線的上下方各有一條方向相反的消息,如果連接線上方的消息為正常消息傳遞方向,則其下方的反方向傳送消息稱之為回調(diào)。回調(diào)都是異步消息,可以并發(fā)運行。CompanyLogo回調(diào)的協(xié)作圖CompanyLogo回調(diào)的時序圖CompanyLogo協(xié)作圖中的重復消息一個對象存儲器(容器)中對象之間的動態(tài)交互關系可以用協(xié)作圖來描述。在協(xié)作圖中,如果對象存儲器要在多個對象中查找滿足某個條件的對象,就要向其管理的對象發(fā)送一個可重復循環(huán)執(zhí)行的消息。這個時候,接收方就是多個對象,可以用重疊的對象框表示。CompanyLogo一個重復消息發(fā)送給多個對象的協(xié)作圖CompanyLogo動態(tài)建模的應用進程:進程是一個動作流;能夠與其它進程并發(fā)執(zhí)行。線程:線程是進程內(nèi)部的一個動作流;能夠與其它線程并發(fā)執(zhí)行。CompanyLogo動態(tài)建模的應用主動對象:一個擁有進程或線程的對象;能初始化控制活動;主動對象一旦被創(chuàng)建,無須由其它對象發(fā)來消息觸發(fā)就能自動執(zhí)行動作;主動對象提供主動服務一個系統(tǒng)可以有多個主動對象,各自獨立并發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論