




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章系統設計與對象動態交互模型zhufei@系統對象設計對象接口設計設計算法和數據結構確認子系統子系統間的通信規約
系統體系結構設計(1)任務管理設計主從結構設計。如果對象不是同時活動的,則它們不需要并發處理,此時這些對象可以再同一機器上實現分布式結構設計。如果對象必須對一些事件同時異步處理,則被認為是并發的,可以將并發的子系統分別分配到不同的計算機上過,或分配到同一計算機,并由操作系統提供并發支持數據管理設計定義數據類型。設計數據管理。數據管理設計提供了持久對象的基本結構。其目的是將操作數據結構的低層次需求和處理系統的高層次需求加以分離CompanyLogo系統體系結構設計(2)用戶界面設計通常在設計階段根據系統分析階段給出的對象類的屬性和操作,把交互的細節加入到用戶界面的設計中包括有效地人機交互所必需的實際顯示和輸入這方面的設計主要有:用戶分類、描述用戶及其任務的場景、設計命令層、設計詳細的交互、設計人機交互類、根據圖形用戶界面進行設計CompanyLogo系統設計規格說明報告CompanyLogo交互模型建模面向對象的系統分析與設計中,如何理解和掌握系統全部的控制流是一件困難的事情。系統中有很多個對象類,每個對象類都有一組操作,對象之間通過哪些交互完成系統功能要求,而要通過這些眾多的操作來理解和想象系統行為的先后順序也是非常困難的。在UML中,利用順序圖和合作圖可以有效的幫助人們觀察和分析系統的交互行為CompanyLogo順序圖和交互圖概述順序圖和交互圖是系統行為視圖的組成部分,從不同的角度描述了系統的行為順序圖描述對象之間信息交互時的時間順序合作圖描述對象間如何協作共同完成系統功能要求順序圖和合作圖相互補充,并可以相互轉化順序圖和交互圖具體描述了完成某種系統功能,系統中各對象間的交互與協作,可以有效的幫助人們觀察和理解系統行為CompanyLogo對象之間的通信在面向對象技術中,對象間的交互是通過對象間消息的傳遞來完成的。通常,當一個對象調用另一個對象中的操作時,即完成了一次消息傳遞。當操作執行后,控制便返回到調用者。對象通過相互間的通信(消息傳遞)進行協作,并在其生命周期中根據通信的結果不斷改變自身的狀態。CompanyLogo消息內容標識格式消息內容標識格式[序號][警戒條件]*[重復次數][回送值表:=]操作名(參數表)使用規則:序號:表示消息在對象間交互的時間順序號。[警戒條件]:選擇項,為一布爾條件表達式。*[重復次數]:選擇項,表示消息重復發送的次數。回送值表:以“,”區分的名字表列,分別表示完成指定操作后返回的系列值。可缺省。操作名:必須是接收該消息的對象類角色中的操作名。“()”內的參數表是以“,”號區分的實參表,傳送給接收消息的對象中的某個操作。CompanyLogo發送消息可以觸發的動作創建一個對象或釋放一個對象調用另一個對象的操作調用本對象的操作發送消息給另一個對象返回值給調用者CompanyLogo消息的4種控制流簡單消息同步消息異步消息返回消息CompanyLogo消息的4種控制流簡單消息(SimpleMessage)表示簡單的控制流。用于描述控制如何在對象間進行傳遞,而不考慮通信的細節。同步消息(SynchronousMessage)表示嵌套的控制流。操作的調用是一種典型的同步消息。調用者發出消息后必須等待消息返回,只有當處理消息的操作執行完畢后,調用者才可繼續執行自己的操作。異步消息(AsynchronousMessage)表示異步控制流。當調用者發出消息后不用等待消息的返回即可繼續執行自己的操作。異步消息主要用于描述實時系統中的并發行為。(返回消息:一般可省略)CompanyLogo時序圖(順序圖SequenceDiagram)順序圖(SequenceDiagram)用來描述對象之間動態的交互關系,著重體現對象間消息傳遞的時間順序。順序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時間。順序圖中的對象用一個帶有垂直虛線的矩形框表示,并標有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內對象是存在的。對象間的通信通過在對象的生命線間畫消息來表示。消息的箭頭指明消息的類型。CompanyLogo時序圖說明順序圖中的消息可以是信號(Signal)、操作調用或類似于C++中的RPC(RemoteProcedureCalls)和Java中的RMI(RemoteMethodInvocation)。當收到消息時,接收對象立即開始執行活動,即對象被激活了。通過在對象生命線上顯示一個細長矩形框來表示激活。消息可以用消息名及參數來標識。消息也可帶有順序號,但較少使用。消息還可帶有條件表達式,表示分支或決定是否發送消息。如果用于表示分支,則每個分支是相互排斥的,即在某一時刻僅可發送分支中的一個消息。CompanyLogo順序圖實例CompanyLogo順序圖實例說明圖最左邊的“合同管理員”也有激活期,在激活期上端向“購進合同管理數據庫”對象發出簡單消息,標在消息箭頭線上的內容標識是“增加購進合同”;在激活期下端接收來自“購進合同管理數據庫”對象發出的返回消息,返回值是“購進合同”對象,激活期結束。“購進合同管理數據庫”對象接收到“合同管理員”發來的“增加購進合同”消息后,在其激活期上端發出簡單消息“構造購進合同”,系統在該信息發送的時間點上創建一個“購進合同”對象。“購進合同管理數據庫”對象向自己發出簡單消息(稱自調用或遞歸調用),將新創建的“購進合同”對象存入自己的“購進合同管理數據庫”中,成為持久對象,本操作完成。“購進合同管理數據庫”對象在其激活期下端向行為者“合同管理員”發送返回消息和返回值。至此,該工作進程結束。CompanyLogo順序圖在順序圖的左邊可以有說明信息,用于說明消息發送的時刻、描述動作的執行情況以及約束信息等。說明一個消息是重復發送的。另外,可以定義兩個消息間的時間限制。一個對象可以通過發送消息來創建另一個對象,當一個對象被刪除或自我刪除時,該對象用"X"標識。CompanyLogoCompanyLogousecaseview中和logicview中時序圖的區別這是從兩個層面進行描述的問題usecaseview的順序圖是描述用戶日常業務的時序關系,是偏向用戶需求的,應在業務模型中描述。logicview的順序圖是表達該流程在計算機中怎樣實現,及實現的時序關系,是偏向設計人員的,應該在分析模型或設計模型中描述。CompanyLogo對象之間的同步操作同步消息的發送者把進程控制傳遞給消息的接收者,然后暫停活動,等待消息的接收者放棄或返回控制;同步消息的接收者執行所請求的操作,如果需要的話,可以把控制傳遞給另一個對象角色,請求做某個操作,并且當該操作完成后把控制返回給原來的同步消息的發送者;同步消息的接收者也可以直接返回或發送信息給原來的消息發送者。CompanyLogo同步消息同步消息通過操作調用完成同步操作的嵌套控制流同步消息的接收者必須是一個被動對象同步消息必須用一條帶實心三角箭頭的箭線表示一般同步消息有一個配對的返回消息,可以省略。CompanyLogo同步操作實例CompanyLogo對象之間的異步操作異步消息的發送者通過發消息把信號傳遞給消息的接收者,然后繼續自己的活動,不等待消息接收者返回信息或控制;異步消息的接收者執行所請求的操作,操作完成后可以向異步消息的發送者返回信息;異步消息的發送者和接收者采用并發工作方式。CompanyLogo異步消息可以做的工作一條異步消息每次只發一個信號,即只做一件事,可以做的事情有:創建一個新對象;創建一個新線程,此時異步消息連接到一個激活期的頂部;與一個正在運行的線程通信。CompanyLogo異步消息異步消息是表達異步請求的一個操作的非嵌套的控制流。異步消息由一條帶半叉箭頭或半實心箭頭的箭線表示異步消息的發送和接受者采用并發工作方式CompanyLogo帶條件和分支的時序圖消息有一個內容標識,可帶參數表,消息上可附帶警戒條件,當條件為真時消息才被發送或接收。條件可用于描述分支。當幾個消息箭頭上的條件互斥時,表示某一時刻只有一個消息被發送,稱為條件分支;如果條件不是互斥的,則這些消息會被并行發出。CompanyLogo帶條件分支的時序圖實例CompanyLogo帶條件分支的時序圖實例說明當一臺計算機接收到請求打印文件的消息后,立即向“打印機服務器”對象發送“打印文件”請求。“打印機服務器”對象接收到消息后,同時發出兩條帶警戒條件的消息:一條發送給“:打印機”對象,警戒條件為:“如果[打印機空閑],則打印文件”;另一條發送給“:隊列”對象,其警戒條件為:“如果[打印機忙],則存儲文件”,即將該文件存儲到指定存儲器中排隊等候,當打印機有空閑時,再按文件排隊的先后順序依次打印。因為這兩條消息的警戒條件是互斥的,因此,在同一時刻只能執行滿足條件的一條消息,而另一條消息則不會執行。CompanyLogo帶條件分支并發執行的時序圖CompanyLogo帶條件分支并發執行的時序圖說明當一臺計算機接收到請求打印文件的消息后,立即向“打印機服務器”對象發送“打印文件”請求。“打印機服務器”對象接收到消息后,同時發出兩條帶警戒條件的消息:一條發送給“:打印機1”對象,警戒條件為:“如果「打印機1空閑],則打印文件”;另一條發送給“:打印機2”對象,其警戒條件為:“如果[打印機1忙],則到打印機2打印(文件)”。當兩臺打印機都處于空閑狀態,而計算機只有兩個文件需要打印時,這兩條消息可以并發執行。CompanyLogo帶約束標記的時序圖約束用分隔符{}圍起。標記可以是任何類型的,如時間標記和世界約束。CompanyLogo帶約束標記的時序圖實例CompanyLogo帶循環標記的時序圖一個對象向另一個對象連續多次發送同一組消息,稱為消息的循環循環標記用一個矩形框與其包含的一組消息表示。用[]圍起的表示停止(或繼續)循環的條件,標識在矩形框的底線內側邊上。可以用一條在發送方豎立的虛線代替方框。CompanyLogo帶循環標記的時序圖實例CompanyLogo協作圖(合作圖)合作圖(CollaborationDiagram)用于描述相互合作的對象間的交互關系和鏈接關系。雖然順序圖和合作圖都用來描述對象間的交互關系,但側重點不一樣。順序圖著重體現交互的時間順序合作圖則著重體現交互對象間的靜態鏈接關系。CompanyLogo協作圖(合作圖)合作圖中對象的外觀與順序圖中的一樣。如果一個對象在消息的交互中被創建,則可在對象名稱之后標以{new}。類似地,如果一個對象在交互期間被刪除,則可在對象名稱之后標以{destroy}。對象間的鏈接關系類似于類圖中的聯系(但無多重性標志)。通過在對象間的鏈接上標志帶有消息串的消息(簡單、異步或同步消息)來表達對象間的消息傳遞。CompanyLogo協作圖的成分:鏈接鏈接用于表示對象間的各種關系,包括組成關系的鏈接(CompositionLink)聚集關系的鏈接(AggregationLink)限定關系的鏈接(QualifiedLink)導航鏈接(NavigationLink)各種鏈接關系與類圖中的定義相同,在鏈接的端點位置可以顯示對象的角色名和模板信息。CompanyLogo協作圖實例CompanyLogo協作圖實例解釋圖中,有4個對象類:合同、銷售合同、收款單和出庫單。這些對象類之間用實線連接,表示它們之間有關聯,關聯角色和多重性標志在關聯的兩端標出。“:合同”對象類和“:銷售合同”對象類之間的關聯角色表明銷售合同是合同之一;它們之間的多重性是一對多關系。“:銷售合同”對象類與“:收款單”對象類之間的關聯角色表明銷售合同與收款單之間進行“核對”;它們之間的多重性是一對多關系。“:銷售合同”對象類與“:出庫單”對象類之間的關聯角色表明銷售合同與出庫單之間進行“履約核對”;它們之間的多重性也是一對多關系。“:收款單”對象類與“:出庫單”對象類之間的關聯角色表明收款單與出庫單之間也進行“核對”,核對正確則“提貨”;它們之間的多重性是多對多關系。CompanyLogo協作圖的成分:消息流在協作圖的鏈接線上,可以用帶有消息串的消息來描述對象間的交互。消息的箭頭指明消息的流動方向。消息串說明要發送的消息、消息的參數、消息的返回值以及消息的序列號等信息。CompanyLogo協作圖中對象的生存期在協作圖的對象框中,可以在{}內填寫文字用來表示該對象的創建或消亡。對象創建{new},表示該對象在協作期被創建;對象消亡{destroyed},表示該對象在協作期消亡;對象創建并消亡{transient},表示該對象在創作期被創建并消亡CompanyLogo一個電梯按鈕的協作圖CompanyLogo一個電梯按鈕的協作圖的說明在該協作圖中各個對象之間發送的都是同步消息。協作從一個乘客要求乘電梯時開始,電梯按鈕的協作圖工作過程如下:
“:乘客”:一個電梯“:乘客”壓入按鈕,向“:按鈕”對象發送消息,希望得到電梯。“:按鈕”對象:接收到“:乘客”發送的消息后,向“:電梯控制”對象發送序號為1的消息,調用“:電梯控制”對象的操作“:得到電梯(樓層)”,即要求電梯來到乘客所在的樓層。“:電梯控制”對象:接收到消息后,為完成該操作,向不同對象發出一系列嵌套消息:CompanyLogo一個電梯按鈕的協作圖的說明“:電梯控制”對象:接收到消息后,為完成該操作,向不同對象發出一系列嵌套消息:首先向“:隊列”對象發送序號為1的具有廣播性的嵌套消息:1.1:*[所有隊列]=長度(),即對存儲在隊列中的所有工作隊列的長度進行循環檢查,找出其中最短的,即離乘客所在樓層最近且同方向的工作;發送序號為2的嵌套消息:1.2:建立(工作);建立一個工作命令對象,在該對象框的對象名后面標明{new},說明該對象被創建,并將該帶參數的消息“{Parameter}工作”命令置于最短的隊列中;同時,“命令”對象向“電梯”對象發送一個局部消息:進行下一步工作;3)最后向“:隊列”對象發送序號為3的嵌套消息:1.3:激發(工作)。
“:隊列”對象接收到1.3:“激發(工作)”消息后,“電梯”對象同時運轉,并從隊列中選出下一個工作;將電梯開到乘客所在樓層。CompanyLogo協作圖中消息的層次關系協作圖中,對象之間傳遞的消息必須表明序號,用以說明消息傳送的先后順序。嵌套消息表示法消息順序表示法:缺乏層次感CompanyLogo嵌套表示的處理付款單協作圖CompanyLogo嵌套表示的處理付款單協作圖說明該圖只是描述銷售合同管理系統中處理付款單這項工作的協作圖。在協作圖中,合同管理員向“:銷售合同管理窗口”對象發送消息,調用其操作“啟動系統(密碼)”檢驗密碼正確后,銷售合同管理系統開始工作。合同管理員在窗口下選擇“處理付款單”功能“:銷售合同管理窗口”對象向“:付款單”對象發送序號為1的循環處理消息“1:*所有付款單]:處理()”,檢查是否有財務系統傳送來的付款單,如果有付款單,依次循環對付款單逐一處理,直到所有付款單處理完畢。CompanyLogo嵌套表示的處理付款單協作圖說明在循環處理過程中所有對象發出的消息都是嵌套消息,即“:付款單”對象及后面所有對象發出的消息都是“消息1”的嵌套消息,通過各條消息的序號排列,可以看出它們具有明顯的層次隸屬關系:1:*[所有付款單]:處理()1.1:核對合同()1.2:*[所有銷售貨物清單]:核對清單()1.2.1:有存貨︰=核查()
:[小于預警量]:檢查():[小于預警量]:打印()1.3:[有存貨]:打印()CompanyLogo順序消息序號的標識CompanyLogo協作圖中自調用與回調一個對象可以調用自己的操作,稱為消息的自我調用或遞歸調用。在協作圖中,消息的自我調用的表示方法:連接線從消息的發送者對象返回到對象本身,也可以在連接線旁標記構造型<<self>>CompanyLogo回調對象之間也有消息的回調,即消息的接收對象也可以向消息的發送對象發送消息。消息回調的標記是在對象連接線的上下方各有一條方向相反的消息,如果連接線上方的消息為正常消息傳遞方向,則其下方的反方向傳送消息稱之為回調。回調都是異步消息,可以并發運行。CompanyLogo回調的協作圖CompanyLogo回調的時序圖CompanyLogo協作圖中的重復消息一個對象存儲器(容器)中對象之間的動態交互關系可以用協作圖來描述。在協作圖中,如果對象存儲器要在多個對象中查找滿足某個條件的對象,就要向其管理的對象發送一個可重復循環執行的消息。這個時候,接收方就是多個對象,可以用重疊的對象框表示。CompanyLogo一個重復消息發送給多個對象的協作圖CompanyLogo動態建模的應用進程:進程是一個動作流;能夠與其它進程并發執行。線程:線程是進程內部的一個動作流;能夠與其它線程并發執行。CompanyLogo動態建模的應用主動對象:一個擁有進程或線程的對象;能初始化控制活動;主動對象一旦被創建,無須由其它對象發來消息觸發就能自動執行動作;主動對象提供主動服務一個系統可以有多個主動對象,各自獨立并發
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- XXXX小學校服專項問題整治自查情況報告范文
- 2025年醫院電子病歷系統在醫療科研中的應用優化報告
- 2025年醫院電子病歷系統優化構建醫療信息化安全防護體系與技術創新報告
- 2025年醫藥市場醫藥電商發展趨勢:仿制藥一致性評價下的機遇報告
- 2025年醫藥企業研發外包(CRO)與臨床試驗監管政策報告
- 咨詢工程師2019課件
- 鄉村振興視角下2025年職業技能培訓的職業技能標準制定報告
- 新型頁巖氣開采技術2025環境影響評估與綠色礦山建設標準研究報告
- 原始點健康講座課件
- 預制菜行業2025年市場細分與消費者購買行為研究報告
- 項目工程EHS管理
- 產品合格證模板-合格證模板樣本
- 免疫學(全套課件)
- 熱力工程竣工資料模板(含換熱站)全
- 半導體中載流子的統計分布和計算
- 心血管診治與搶救標準操作規程(SOP)
- 橋梁養護與加固教案
- 中南大學自主招生綜合素質測試面試試題答題技巧
- 密度計和浮力秤問題
- 國之瑰寶 京劇(說課課件)
- 附表:1.臨汾市市直行政事業單位定點加油通知單
評論
0/150
提交評論