




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Chapter 7
物件互動設(shè)計7.1 物件的互動7.2 循序圖7.3 合作圖7.4 事件7.5 狀態(tài)圖7.6 合作與模板7.7 活動圖17.1 物件的互動(1/4)物件和物件之間的互動(Interaction),可以定義成為了完成某件定義的任務(wù),而在物件之間傳遞訊息(Message)的動作以下用一個簡單的例子來說明靜態(tài)和動態(tài)的觀點想像我們要設(shè)計一個模擬彈珠臺的電腦遊戲那麼必須先仿照真正的彈珠臺,在臺面上建置各式各樣會影響(改變或引導)彈珠滾動軌跡的物件,例如彈射器、反彈塔、通道、孔穴、立牌…等,每種物件就是一個類別,而每個類別具有不同的屬性,屬性定義出類別的顏色、材質(zhì)、大小、形狀、位置等各種特性,並且定義操作方法27.1 物件的互動(2/4)還必須要設(shè)計接下來彈珠會怎麼走,包括有哪些可能路徑、每一條路徑的特效、每一條路徑會經(jīng)過哪些物件等等,也可以說是物件之間的互動決定了彈珠的路徑、和最後的結(jié)果會怎麼樣37.1 物件的互動(3/4)物件導向的資訊系統(tǒng)建置,其實就有點像是設(shè)計彈珠臺,先要建置各種靜態(tài)的物件,接著由動態(tài)的觀點觀察各種物件之間的互動,再從互動中找出物件間的關(guān)係系統(tǒng)建置的前期,要先定義出各種類別的物件,接著再從互動中找出企業(yè)內(nèi)部的功能性作業(yè)流程,這就好像彈珠行走的路徑必然是一連串物件互動所造成,企業(yè)的作業(yè)同樣也需要經(jīng)由多個物件的互動作用,最後才能完成所要作業(yè)的程序或是企業(yè)功能47.1 物件的互動(4/4)其實在之前講需求擷取的地方,我們就已經(jīng)介紹了使用案例。使用案例是物件導向設(shè)計中的重要工具,其主要目的是用來捕捉使用者和系統(tǒng)之間的互動,通常都用在需求分析階段使用案例同時也算是一種互動圖,互動圖就是用來表現(xiàn)出物件與物件之間互相派送訊息的機制現(xiàn)在要進行的是定義出物件和物件之間的互動情形,這也是有情節(jié)的;物件之間的互動可以分成分歧(Branching)、迴圈(Looping)和同步(Concurrency)等基本的類型57.2 循序圖(1/4)記錄某個事件發(fā)生時所牽連的所有物件,並依照發(fā)生時間的先後順序,來看物件之間的互動、以及互動時所傳遞的訊息每個物件各有一條代表時間的虛線,這條線叫做生命線(Lifeline),表示該物件存在的期間或時間軸,越往圖的下方,時間越晚;整條線即這個物件在這個事件中的生命週期由左上而向右下方,將最先開始動作的物件放在圖的最左邊,然後依照發(fā)生的時間順序,將物件之間的操作和訊息畫出來67.2 循序圖(2/4)圖7-2循序圖實例之一:學生請假77.2 循序圖(3/4)圖7-3循序圖實例之二:請購流程87.2 循序圖(4/4)循序圖可以表示按照步驟、一步接一步的循序性執(zhí)行過程,而且它還容許有迴圈,也可以加入條件式,基本的程式操作模式都可以表示。另外,循序圖也可以表示「同步」,如下圖的操作d和操作e,在時間的虛線上高度相同,表示兩者同步97.3 合作圖(1/5)合作圖主要的焦點在於物件之間的合作,而不再以每個物件執(zhí)行的時間先後來看物件的互動繪製合作圖時,必須把物件之間的每一個步驟分解開來,將操作依照執(zhí)行先後順序來編號,從企業(yè)功能性作業(yè)流程的角度,解析出物件之間的互動107.3 合作圖(2/5)圖7-5合作圖實例之一:學生請假117.3 合作圖(3/5)圖7-6合作圖實例之二:請購流程127.3 合作圖(4/5)是不是每個物件導向的系統(tǒng)設(shè)計都需要分別畫出循序圖和合作圖?其實這兩個圖的功能是有點重複的,只要選擇一個來畫就可以了互動圖所顯示的情境可用來表示某一個作業(yè)流程,換句話說,一個資訊系統(tǒng)內(nèi)會有很多的互動圖當然任何的圖都可以加上文字的說明,尤其是條件式的表示137.3 合作圖(5/5)總結(jié)來說,互動圖的建置有幾個重點 主要的動態(tài)觀點互動圖提供主要的動態(tài)觀點,著重在物件之間的互動,以及彼此之間傳遞的訊息,可以表示迴圈、條件式、和同步操作等每個互動圖只是系統(tǒng)的部分的作業(yè)從作業(yè)流程的角度來看,每一張互動圖都只是某一部分的作業(yè)簡單而清楚每個互動圖都應(yīng)該命名,箭頭不要交叉,將每個物件之間的操作和訊息定義清楚,需要說明的地方用中括號或大括號來說明不同的專注循序圖專注在物件的生命週期時間,合作圖則專注於物件之間的操作和訊息的傳遞,依照設(shè)計師不同的需求,可以選擇不同的圖來運用147.4 事件事件(Event)就是事情,它在真實世界裡會一再的發(fā)生,如果一個企業(yè)、一家公司沒有發(fā)生任何事件、沒有發(fā)生任何交易,那這家企業(yè)就沒有存在的必要了,畢竟各式的部門、處室單位,都是為了處理各樣的交易事件而成立的一個系統(tǒng)也是一樣,如果沒有任何事件的發(fā)生,在靜態(tài)的建置之後,沒有任何事情來啟動,那這個系統(tǒng)也是一個沒有作用的系統(tǒng)從啟動的角度來看事件,可以簡單的分為由系統(tǒng)外部的事物或是內(nèi)部的事物來啟動157.4.1由系統(tǒng)外部啟動的事件使用者此即系統(tǒng)使用者和系統(tǒng)之間的互動比如業(yè)務(wù)員在資訊系統(tǒng)上新增了一筆客戶訂單、採購人員操作系統(tǒng)來統(tǒng)計這個月份的採購金額、學生透過網(wǎng)路註冊系統(tǒng)做註冊的動作等,由各種使用者來執(zhí)行特定系統(tǒng)功能作業(yè),也就是啟動了某個事件自動控制由機械設(shè)備、自動感應(yīng)裝置、監(jiān)控設(shè)備等自動控制偵測裝置,因為時間的設(shè)定、感應(yīng)到物體、超過某一定標準的溫度、溼度等,而啟動的行為。像是自動門、紅綠燈、工廠內(nèi)的自動裝置、冷氣機、冰箱等,都是在機械設(shè)備偵測到某一足以觸發(fā)反應(yīng)的條件時,便自動啟動系統(tǒng)內(nèi)的相對事件167.4.2由系統(tǒng)內(nèi)部啟動的事件(1/11)系統(tǒng)內(nèi)部的事件,則是資訊系統(tǒng)內(nèi)的各個物件之間的互動、以及物件之間的訊息傳遞,也就是之前我們在互動圖中所解析的,由系統(tǒng)內(nèi)的物件來啟動另一個物件事件必定是和所發(fā)生的時間及空間有關(guān),可以分類成信號(Signal)、呼叫(Call)、經(jīng)過時間(Passingoftime)和狀態(tài)變更(aChangeinstate)177.4.2由系統(tǒng)內(nèi)部啟動的事件(2/11)四種系統(tǒng)內(nèi)部的事件信號由一個物件所派送出來的具名物件稱為信號,信號會由另一個物件來接收在物件導向的系統(tǒng)裡,將信號看成是一個物件,和一般的物件相似,也有類別和實例的觀念,但是做系統(tǒng)分析時,通常不會在物件圖中將信號畫成一個獨立物件187.4.2由系統(tǒng)內(nèi)部啟動的事件(3/11)圖7-7信號傳送實例197.4.2由系統(tǒng)內(nèi)部啟動的事件(4/11)呼叫表示由一個物件呼叫另一個物件的操作,這個時候系統(tǒng)的控制權(quán)也將同時由呼叫的一方轉(zhuǎn)移到被呼叫的一方呼叫時可以傳送信號,也就是將信號內(nèi)的屬性當作是被呼叫一方執(zhí)行時的參數(shù),當執(zhí)行結(jié)束時,物件的狀態(tài)改變到另一個狀態(tài)同時系統(tǒng)控制權(quán)又會被轉(zhuǎn)回到呼叫別人的那個物件上207.4.2由系統(tǒng)內(nèi)部啟動的事件(5/11)圖7-8呼叫的實例217.4.2由系統(tǒng)內(nèi)部啟動的事件(6/11)經(jīng)過時間經(jīng)過時間事件是一種因為經(jīng)過一段預(yù)設(shè)好的時間而觸發(fā)的事件,就像倒數(shù)碼錶一樣,當時間歸零時即會主動觸發(fā)一些動作比如當某個事件發(fā)生之後,過一定的時間,則自動啟動下一個動作,可用after關(guān)鍵字來限定「要經(jīng)過的時間」圖7-9時間事件實例227.4.2由系統(tǒng)內(nèi)部啟動的事件(7/11)狀態(tài)變更狀態(tài)變更事件以when為關(guān)鍵字來表示條件式,唯有條件式成立才變更物件的狀態(tài)和別的物件無關(guān),物件是自己因為某一個條件成立而執(zhí)行某項的操作而假使因為某個條件改變便能驅(qū)動某個操作,那麼這個條件就稱為變更事件圖7-10狀態(tài)變更事件的實例237.4.2由系統(tǒng)內(nèi)部啟動的事件(8/11)系統(tǒng)控制權(quán)的轉(zhuǎn)移產(chǎn)生信號的物件並沒有將系統(tǒng)的執(zhí)行控制權(quán)交出,也就是說,物件送出一個信號物件之後,會繼續(xù)執(zhí)行自己要做的動作,不等待其他物件的傳回值或說信號事件中,發(fā)出信號的物件,和接收到信號的物件之間,不一定有互動而呼叫事件與信號事件不同,一個物件呼叫另一個物件時,會停下來等待傳回值之後,才做接下來的動作,此為即時的互動至於其他兩種事件,由於都是由自身物件在某種條件下啟動一個動作或改變某種狀態(tài),並不牽涉到物件間的系統(tǒng)控制權(quán)轉(zhuǎn)移247.4.2由系統(tǒng)內(nèi)部啟動的事件(9/11)圖7-11控制權(quán)的轉(zhuǎn)移過程257.4.2由系統(tǒng)內(nèi)部啟動的事件(10/11)例外處理在設(shè)計類別和物件的處理時,通常會有例外的狀況需要處理例外的狀況可以當作是信號來處理,亦即當遇到例外的情形時,也讓物件拋出一個信號,去做別的處理而其他非例外的狀況,還是在正常的執(zhí)行程序中例外的操作,可以做在拋送的動作中,也可以放在信號裡267.4.2由系統(tǒng)內(nèi)部啟動的事件(11/11)圖7-12例外處理實例277.5.1狀態(tài)與狀態(tài)機(1/9)物件的狀態(tài)狀態(tài)(State)是由物件靜態(tài)的屬性值組合而成物件在一定的情境下,每個屬性都會有個當時的值,也就是當時的狀態(tài),物件隨著不同的情境(所有屬性值的組合不同)而有不同的狀態(tài)狀態(tài)圖,以物件為角度來看一個物件的狀態(tài)轉(zhuǎn)移情形287.5.1狀態(tài)與狀態(tài)機(2/9)狀態(tài)轉(zhuǎn)換的表示法在UML裡,將物件本身在某些情境之下的狀態(tài)轉(zhuǎn)換機制稱做狀態(tài)機。簡單來說,狀態(tài)機是指一個物件在參與某個(些)事件的過程中,可能會被引發(fā)的一連串反應(yīng)它討論的是物件本身,不涉及和其他物件的互動,所以適用於比較複雜的物件,也就是說物件本身會有多個狀態(tài)297.5.1狀態(tài)與狀態(tài)機(3/9)圖7-13冰箱狀態(tài)圖307.5.1狀態(tài)與狀態(tài)機(4/9)物件生命週期內(nèi)的狀態(tài)變化物件都有生命週期:從被創(chuàng)造出來,接受系統(tǒng)使用者的操作,或是與其他物件互動、傳遞訊息,至完成任務(wù),最後銷毀而結(jié)束物件的生命週期狀態(tài)機的設(shè)計重點起始狀態(tài)和結(jié)束狀態(tài)狀態(tài)機必須要有起始狀態(tài)(Initialstate),代表狀態(tài)機的開始運作點,在圖形中以小黑點‘˙’來表示而整個狀態(tài)轉(zhuǎn)換(生命週期)結(jié)束時,也要有個代表終止狀態(tài)變化的結(jié)束狀態(tài)(Finalstate)可以進入,在圖中以兩圈的小黑點‘⊙’來表示317.5.1狀態(tài)與狀態(tài)機(5/9)狀態(tài)名稱狀態(tài)通常有名稱,以文字字串來命名,可以有任意的字母、數(shù)字或是標點符號,但是不要有分號狀態(tài)名稱一般會用名詞或片語,可以表達狀態(tài)的情境,第一個字母用大寫,在圖形中以圓角長方形來表示轉(zhuǎn)換轉(zhuǎn)換是指兩個狀態(tài)之間的關(guān)係,當特定的事件發(fā)生、或是特定的條件被滿足時,物件會由一個狀態(tài)中轉(zhuǎn)換到另一個狀態(tài)去327.5.1狀態(tài)與狀態(tài)機(6/9)圖7-14狀態(tài)的轉(zhuǎn)換337.5.1狀態(tài)與狀態(tài)機(7/9)對轉(zhuǎn)換C而言A是來源狀態(tài)(Sourcestate)、B是目的狀態(tài)(Targetstate);至於C則稱為驅(qū)動事件(Eventtrigger),通常是一個特定事件,用來觸發(fā)狀態(tài)的轉(zhuǎn)移F()是某個動作,會在C事件觸發(fā)的同時操作所以用C/F()把事件和所要做的動作給同時表示出來驅(qū)動事件C可以是收到信號、被呼叫,或是滿足某種條件比如經(jīng)過一定的時間,或是某個屬性的值大於、小於某個預(yù)設(shè)的數(shù)值;以時間來控制的事件又特稱為時間事件(Timeevent)347.5.1狀態(tài)與狀態(tài)機(8/9)對轉(zhuǎn)換H而言物件的狀態(tài)由B轉(zhuǎn)換到G,所觸發(fā)的事件是H,H後的小括號表示有參數(shù)p,再用中括號來表示參數(shù)的條件,當參數(shù)滿足這個條件時,H才會被觸發(fā),這個條件稱為防衛(wèi)條件(Guardcondition)。一樣的,可以把當這個事件發(fā)生後,物件將執(zhí)行的動作描述出來,此處為J動作,同樣也可以用小括號將J的參數(shù)o表示出來對轉(zhuǎn)換K而言當K事件觸發(fā)之後,物件即從A狀態(tài)轉(zhuǎn)換到E狀態(tài);此事件不需要任何的參數(shù),而且觸發(fā)後也不會做額外的動作357.5.1狀態(tài)與狀態(tài)機(9/9)對轉(zhuǎn)換D而言D是一種自我的轉(zhuǎn)換(Selftransition),物件的狀態(tài)並不因為觸發(fā)D事件而改變,還是處於狀態(tài)A;只是當D的條件滿足時,物件會去做L()的這件事情。比如說,此處若為after(2second)/sendt.moveTo,即表示當物件進入狀態(tài)A之後,每經(jīng)過兩秒鐘就必須送一個信號出去對E狀態(tài)到G狀態(tài)的轉(zhuǎn)換另外,由E狀態(tài)到G狀態(tài)的箭頭沒有名稱,這個表示當E狀態(tài)結(jié)束時,就進入G狀態(tài),不需要有事件來驅(qū)動,可能E狀態(tài)本身就是有期限的,或者是狀態(tài)E已經(jīng)完成了某個特定的目的,這樣的轉(zhuǎn)換稱為非觸發(fā)轉(zhuǎn)換(Triggerlesstransition),也稱為完成轉(zhuǎn)換(Completiontransition)367.5.2多層的狀態(tài)結(jié)構(gòu)(1/4)在描寫複雜的狀態(tài)時,UML提供了子狀態(tài)(Substate)的設(shè)計觀念亦即採用階層的概念,以巢狀的方式來將物件的狀態(tài)分層建置出來,讓設(shè)計者可以把物件的狀態(tài)以更結(jié)構(gòu)化的方式來表示及處理,使複雜的狀態(tài)看起來更單純、更容易設(shè)計循序子狀態(tài)在巢狀的狀態(tài)架構(gòu)裡,若某一狀態(tài)可分為前後順序相關(guān)的幾個子狀態(tài),且每次只能啟動其中一種子狀態(tài),則這些子狀態(tài)就稱為該狀態(tài)的循序子狀態(tài)(Sequentialsubstate)377.5.2多層的狀態(tài)結(jié)構(gòu)(2/4)圖7-15汽車排檔狀態(tài)圖387.5.2多層的狀態(tài)結(jié)構(gòu)(3/4)歷史狀態(tài)有一些操作在執(zhí)行時,可能會基於某種原因而中斷,但因它已完成了一部分的工作,且這些已執(zhí)行的操作在下次重新執(zhí)行時不用重複再做一次,只需接續(xù)前一次未完成的內(nèi)容再接著往下進行,所以此時就需要記錄上一次執(zhí)行的狀態(tài)為了能分次且不重複地完成一個狀態(tài)下的所有操作,我們將該狀態(tài)分成由多個子狀態(tài)所組成的集合,同時為了能記錄下該狀態(tài)在前一次進行操作的情況,還特別加入一個歷史子狀態(tài),397.5.2多層的狀態(tài)結(jié)構(gòu)(4/4)圖7-16MRP系統(tǒng)中的歷史狀態(tài)407.4.1合作(1/6)在系統(tǒng)裡的各種類別、介面、元件和節(jié)點,可以透過互動的方式,共同合作來完成某些作業(yè),這比起各個單獨作業(yè)而言會更有力量以合作來完成某些作業(yè),可以稱之為機制(Mechanism),這些參與合作機制的類別、介面、元件、節(jié)點等稱為限定元(Classifier)合作機制可以設(shè)定限定元所扮演的角色417.4.1合作(2/6)合作機制的圖形用一個虛線的圓圈來表示代表著由系統(tǒng)外部的角度來看系統(tǒng),每個虛線的圈圈可能包含有數(shù)個類別、介面、元件或是節(jié)點,用以表現(xiàn)合作的觀點,將合作的機制給視覺化427.4.1合作(3/6)合作機制和類別庫、或是子系統(tǒng)是不一樣的,合作本身並沒有類別、介面等限定元它可以說是一個概念性的集合名詞,用來解釋某一種機制、某一件事情,可以跨越類別、介面、元件和節(jié)點等結(jié)構(gòu)化的元素使用案例通常拿來做使用者需求的擷取,由較高階的角度來表示系統(tǒng)功能,先用使用案例將使用者要系統(tǒng)幫他們做些什麼事給畫出來,接著,可以用合作機制來將案例實現(xiàn)(Realization)437.4.1合作(4/6)圖7-17合作機制447.4.1合作(5/6)圖7-18將合作機制實作的類別圖457.4.1合作(6/6)圖7-19將合作機制實作的循序圖467.6.2模板(1/5)針對系統(tǒng)中所面臨的共通問題所設(shè)計的解決方案,包含程式設(shè)計的概念、慣例、以及系統(tǒng)架構(gòu)模板本質(zhì)上就是一個模型,塑造出來之後,讓類似問題的系統(tǒng)開發(fā)可以套用,以節(jié)省開發(fā)的時間簡單的說,模板可以告訴我們:當以前的人遇到相似的問題時,是怎麼解決的?477.6.2模板(2/5)圖7-20
Sun公司網(wǎng)站所提供的模板中的BusinessDelegate類別圖487.6.2模板(3/5)在分散式的(Distributed)、多層次的(Multi-tiers)資訊系統(tǒng)裡,客戶不需要知道企業(yè)服務(wù)的操作細節(jié),而這些細節(jié)在許多系統(tǒng)中又相當類似,所以廠商便設(shè)計出一個叫做BusinessDelegate的類別,提供一般系統(tǒng)設(shè)計者用來當做客戶和系統(tǒng)的窗口客戶只要面對這個窗口即可,由BusinessDelegate來和系統(tǒng)內(nèi)部不同的所在、不同功能的類別交涉497.6.2模板(4/5)圖7-21
BusinessDelegate循序圖507.6.2模板(5/5)圖7-22廠商提供的BusinessDelegate實例517.7 活動圖物件導向設(shè)計裡共有五種描寫動態(tài)的圖形,這五種圖形包
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅小區(qū)施工進度控制方案
- 小學2025年第一學期社區(qū)服務(wù)計劃
- 西師版小學四年級下冊數(shù)學學科融合計劃
- 一年級數(shù)學下冊期末復(fù)習計劃
- 2025年供應(yīng)鏈策劃與綠色物流創(chuàng)新合作協(xié)議
- 2025年公共交通租賃合同范文與實施策略
- 2025年個人消費貸款還款協(xié)議范本
- 2025年建筑加固策劃植筋技術(shù)協(xié)議
- 2025年企業(yè)擔保策劃協(xié)議書示例
- 2025年債權(quán)轉(zhuǎn)讓質(zhì)押合同分析
- 2024年下半年中國海油秋季校園招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 《京東家法》定稿
- 旅游消費者行為學整套課件完整版電子教案課件匯總(最新)
- 學前兒童發(fā)展心理學(第3版-張永紅)教學課件1754
- 特氣供應(yīng)系統(tǒng)的規(guī)劃與設(shè)計
- 中職《機械基礎(chǔ)》全套課件(完整版)
- 勞技-中國結(jié)PPT通用課件
- 溫庭筠《望江南》ppt課件
- 口腔正畸學單詞
- 內(nèi)襯修復(fù)用HTPO管材企標
- 部編教材一年級下冊生字筆順筆畫
評論
0/150
提交評論