狀態機圖狀態活動_第1頁
狀態機圖狀態活動_第2頁
狀態機圖狀態活動_第3頁
狀態機圖狀態活動_第4頁
狀態機圖狀態活動_第5頁
已閱讀5頁,還剩66頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第1頁,共71頁,2023年,2月20日,星期日狀態機圖(StatemachineDiagram)狀態機(statemachine):一種邏輯上的流程機

用于描述一個對象在其生命周期中的動態行為表現對象響應事件所經歷的狀態序列以及伴隨的動作狀態圖和活動圖用于描述一個狀態機(狀態機圖)活動圖強調了從活動到活動的控制流狀態圖強調了從狀態到狀態的轉換第2頁,共71頁,2023年,2月20日,星期日狀態圖狀態圖的作用描述一個特定對象的所有可能狀態以及由于各種事件的發生,而引起的狀態間的轉移第3頁,共71頁,2023年,2月20日,星期日狀態圖狀態圖的組成節點是狀態:包括初始狀態和終止狀態,用圓角矩形表示關系是轉換(或轉移):用狀態之間包含一些文字描述的有向箭頭線表示第4頁,共71頁,2023年,2月20日,星期日狀態狀態的幾種類型1.初態和終態2.中間狀態3.組合狀態4.歷史狀態第5頁,共71頁,2023年,2月20日,星期日1.初態和終態初態(Startstate)顯示狀態圖中狀態機的執行的開始一個狀態機只能有一個初態,因為每一個執行都是從相同的地方開始的。如果一個狀態機用多張圖描述,則多張圖用同一個初態嵌套狀態中可以使用新的初態終態(EndState)表示一個最后的或者終端狀態終態的數目可以不確定第6頁,共71頁,2023年,2月20日,星期日2.中間狀態中間狀態的組成1)狀態名(Name)2)進入/退出動作(entry/exitaction)第7頁,共71頁,2023年,2月20日,星期日2.中間狀態3)內部轉換(InternalTransition)不導致狀態改變的轉換,不會執行entry和exit動作語法格式:event事件名/動作表達式第8頁,共71頁,2023年,2月20日,星期日2.中間狀態4)子狀態(Substate)嵌套在另外一個狀態中的狀態第9頁,共71頁,2023年,2月20日,星期日2.中間狀態4)子狀態(Substate)嵌套在另外一個狀態中的狀態第10頁,共71頁,2023年,2月20日,星期日3.組合狀態(compositestate)含有子狀態的狀態被稱為組合狀態1.順序組合狀態圖2.并發組合狀態圖第11頁,共71頁,2023年,2月20日,星期日順序組合狀態圖第12頁,共71頁,2023年,2月20日,星期日并發組合狀態圖在UML2.0中已經廢棄了同步狀態第13頁,共71頁,2023年,2月20日,星期日4.歷史狀態(Historystate)歷史狀態是一種偽狀態可以存儲退出組合狀態時所處的子狀態,則返回組合狀態時可以直接回到相應的子狀態第14頁,共71頁,2023年,2月20日,星期日轉換的五要素源狀態(SourceState):轉換激發之前對象所處的狀態目標狀態(TargetState)

:轉換完成后對象所處的狀態觸發事件(TriggerEvent)

:引起轉換發生的事件監護條件(GuardCondition)

:方括號括起來的布爾表達式,用于決定是否激活轉換動作(Action):轉換激活時對象執行的操作第15頁,共71頁,2023年,2月20日,星期日智能水壺的狀態圖打開[有水]/燒水:打開:觸發事件有水:監護條件燒水:動作第16頁,共71頁,2023年,2月20日,星期日信用卡狀態圖第17頁,共71頁,2023年,2月20日,星期日無觸發轉移定義:狀態轉移不是因為某個事件觸發引起的而是由于對象完成了某些活動,而引起的狀態的轉變第18頁,共71頁,2023年,2月20日,星期日觸發事件的四種類型信號事件對象之間通過發送信號和接收信號實現通信信號是兩個對象之間通信的媒介,它是一種異步機制在計算機中,鼠標和鍵盤的操作均屬于此類事件對于一個信號而言,對象一般都有相應的事件處理器,如onMouseClick()等調用事件調用某個對象的成員方法就是調用事件,它是一種同步的機制。例如:在燒水器的狀態圖中,turnOn就是一種調用事件,用來將開關置于“On”狀態。第19頁,共71頁,2023年,2月20日,星期日觸發事件的四種類型改變事件某個指定屬性值為真時,事件得到觸發。在對象生命周期內,一直在計算改變事件中的屬性值。當屬性值為真時,事件觸發,計算停止例如:when(temperature>100)/alerm()時間事件當時間流逝到某個時刻,觸發事件對對象起作用它可以指定為絕對形式,也可以指定為相對形式。第20頁,共71頁,2023年,2月20日,星期日其他事件延遲事件(Deferredevent)延遲到下一狀態中處理的事件是一種特殊的事件,它是指該事件不會觸發狀態的轉換,當對象處于該狀態時事件不會丟失,但會被延遲執行例如,當E-mail程序中正在發送第一封郵件時,用戶下達發送第二封郵件執令就會被延遲,但第一封郵件發送完成后,這封郵件就會被發送。這種事件就屬于延遲事件第21頁,共71頁,2023年,2月20日,星期日轉換類型第22頁,共71頁,2023年,2月20日,星期日狀態圖應用為對象生命周期建模:主要描述對象能夠響應的事件、對這些事件的響應以及過去對當前行為的影響為反應型對象建模:這個對象可能處于的穩定狀態、從一個狀態到另一個狀態之間的轉換所需的觸發事件,以及每個狀態改變時發生的動作狀態機圖既可以用來表示一個業務領域的知識,也可以用來描述設計階段對象的狀態變遷第23頁,共71頁,2023年,2月20日,星期日繪制狀態機圖的步驟尋找主要的狀態確定狀態之間的轉換細化狀態內的活動與轉換用復合狀態來展開細節第24頁,共71頁,2023年,2月20日,星期日狀態圖(購物網站)當從狀態“結賬”和“顯示購物車”返回子狀態“顯示索引信息”時,將進入的是離開時的歷史狀態。也就是說,轉到購物或結賬區之后,再回到“瀏覽目錄”的頁面時,其中的內容是不變的,仍保留原來的信息。第25頁,共71頁,2023年,2月20日,星期日狀態圖(CD播放機)第26頁,共71頁,2023年,2月20日,星期日狀態圖(智能卡系統)閱讀狀態圖第27頁,共71頁,2023年,2月20日,星期日狀態圖(訂單處理1)訂單處理辦理發貨之前需要檢查商品,查看是否齊全。如果缺部分商品,則進入等待狀態(直至商品齊全)貨品發出之前,任何時候都可以取消訂單第28頁,共71頁,2023年,2月20日,星期日狀態圖(訂單處理2)第29頁,共71頁,2023年,2月20日,星期日狀態圖(訂單處理3)第30頁,共71頁,2023年,2月20日,星期日狀態圖(航班預訂1)第31頁,共71頁,2023年,2月20日,星期日狀態圖(航班預訂2)細化狀態內的活動與轉換第32頁,共71頁,2023年,2月20日,星期日狀態圖(航班預訂3)使用復合狀態第33頁,共71頁,2023年,2月20日,星期日課堂練習繪制電腦工作時的狀態轉換圖第34頁,共71頁,2023年,2月20日,星期日課堂練習繪制手機工作時的狀態轉換圖第35頁,共71頁,2023年,2月20日,星期日課堂練習(電梯系統的狀態圖)電梯開始處于空閑狀態(idle),當有人按下按鈕要求使用電梯時(事件isrequired發生),電梯進入運行狀態(run)。如果電梯的當前樓層比想要的樓層高時(監護條件[currentFloor>desiredFloor]成立),電梯進入下降狀態(movingdown);反之,如果電梯的當前樓層比想要的樓層低時(監護條件[currentFloor<desiredFloor]成立),電梯進入上升狀態(movingup);如果電梯的當前樓層與想要的樓層相同時(監護條件[currentFloor=desiredFloor]成立),電梯門打開(dooropen)。在電梯上升或下降期間,每經過一個樓層就判斷監護條件[currentFloor=desiredFloor]是否成立,若不成立,繼續移動,若成立,就進入停止狀態(stop),15秒后,電梯門自動打開(dooropen),2分鐘后,電梯門自動關上(doorclose),如果有更多的電梯使用要求,進入運行狀態(run),反之,則進入空閑狀態(idle)。第36頁,共71頁,2023年,2月20日,星期日課堂練習(電梯系統的狀態圖)第37頁,共71頁,2023年,2月20日,星期日帶有復雜轉換的狀態圖第38頁,共71頁,2023年,2月20日,星期日補充說明(狀態圖)適用情況:適用于描述跨越多個用例的單個對象行為不適合描述多個對象之間的行為協作故需與其他技術(類圖、對象圖)結合使用注意事項:不要花費大量時間和精力為系統中的每個類都畫對應的狀態圖開發人員只關心關鍵類的行為,只需為這些類建立狀態圖,幫助理解所研究的問題第39頁,共71頁,2023年,2月20日,星期日活動圖(ActivityDiagram)概念:由活動節點和轉換流程構成的狀態機圖作用:描述系統或業務的活動序列構成的控制流用來描述事物或對象的活動變化流程為系統或業務工作流程和用例實現建模第40頁,共71頁,2023年,2月20日,星期日活動圖(ActivityDiagram)活動圖與流程圖:流程圖:表示算法的執行序列、過程、判定點、分支和循環活動圖:支持并行活動,支持多線程編程活動圖的應用:描述類的操作描述用例的執行過程活動圖的缺點:難以清楚地表示對象和動作之間的關系第41頁,共71頁,2023年,2月20日,星期日活動圖(ActivityDiagram)與狀態圖的區別狀態圖由某個對象的狀態序列組成,以狀態為中心活動圖由某個過程中若干對象的活動序列組成,以活動為中心第42頁,共71頁,2023年,2月20日,星期日活動圖(ActivityDiagram)組成元素活動節點起點和終點(即初態和終態)中間活動節點轉換流程轉換分支與合并分叉與匯合第43頁,共71頁,2023年,2月20日,星期日活動節點活動節點是活動圖中最主要的元素之一,用來表示工作過程中的一個(或多個)工作步驟表示方法:用一個圓角矩形表示,活動的名稱寫在圓角矩形內部活動節點的表示第44頁,共71頁,2023年,2月20日,星期日活動節點動作狀態:原子性的動作或操作的執行狀態,不能被外部事件的轉換中斷活動狀態:非原子性的,可以分解成其他子活動或動作狀態,可以從外部中斷。可以在圖標中給出入口動作和出口動作等信息組合活動:一種內嵌活動圖的狀態,用于表示復雜的活動第45頁,共71頁,2023年,2月20日,星期日轉換(StateTransition)作用:當一個活動結束時,活動控制流馬上轉向下一個活動節點表示方法:一條帶箭頭的直線轉換的表示第46頁,共71頁,2023年,2月20日,星期日分支與合并(決策)程序控制流的三種基本結構:順序、分支、循環分支:用于將一條轉換路徑分成多個部分,每一部分都有單獨的監護條件和不同的結果當動作流遇到分支時,會根據監護條件的真假來判定動作的流向注意:分支的每個路徑的監護條件應該是互斥的,因此只有一條路徑的轉換會被激發分支的表示條件互斥第47頁,共71頁,2023年,2月20日,星期日分支與合并(決策)合并:兩個或者多個控制路徑在此匯合的情況,表示從對應分支開始的條件行為的結束合并和分支都使用菱形表示,且常常成對使用省略表示分支與合并的菱形不會丟失任何信息第48頁,共71頁,2023年,2月20日,星期日分叉與匯合(同步)分叉與匯合:都用來表示并發執行的活動分叉線和匯合線(同步線):都使用加粗的水平線或垂直線段表示分叉:一個進入轉換,多個離去轉換表明系統從單一的過程變為過個并發的過程第49頁,共71頁,2023年,2月20日,星期日分叉與匯合(同步)匯合:多個進入轉換,一個離去轉換表示系統將結束多個并發過程,再次進入單一的過程注意:當且僅當所有的并發分支都到達匯合點后,活動流程才能進入下一個活動節點第50頁,共71頁,2023年,2月20日,星期日示例(同步)商品打包與付款兩個活動是并行的即:這兩個活動的執行順序是任意的可以先后進行可以同時交叉進行第51頁,共71頁,2023年,2月20日,星期日泳道泳道技術:將活動用線條分成一些縱向的矩形,每個矩形屬于一個特定的對象或部門對象的名字放在泳道的頂部屬于該對象的所有活動都被放在泳道的區域內第52頁,共71頁,2023年,2月20日,星期日繪制順序方法一:先確定參與活動的對象然后分析在整個過程中每個對象的活動方法二:先對活動進行全局的分析再將活動分配各具體的對象建議:兩種方法各有利弊根據個人習慣和具體情況而定第53頁,共71頁,2023年,2月20日,星期日分類(1.簡單活動圖)第54頁,共71頁,2023年,2月20日,星期日分類(1.簡單活動圖)第55頁,共71頁,2023年,2月20日,星期日分類(2.標識泳道的活動圖)泳道(SwimLane):用于有效地標識每個活動的實施者。表示方法:用一條垂直的線將活動分開每個泳道都有一個唯一的名稱每個活動節點、分支必須只屬于一個泳道;而轉換,分叉與匯合是可以跨泳道的。第56頁,共71頁,2023年,2月20日,星期日分類(2.標識泳道的活動圖)第57頁,共71頁,2023年,2月20日,星期日分類(3.標識對象流的活動圖)某些活動中,對象與節點活動是緊密相關的:活動節點創建、刪除或輸出一些對象經過活動處理,修改了對象的狀態對象流描述了活動與對象之間的關系,表示了活動使用對象以及活動對對象的影響。用戶可以在活動圖中把相關的對象標識出來標識哪些對象進入活動節點標識哪些對象從活動節點中輸出第58頁,共71頁,2023年,2月20日,星期日分類(3.標識對象流的活動圖)第59頁,共71頁,2023年,2月20日,星期日注冊(活動圖)第60頁,共71頁,2023年,2月20日,星期日構建活動圖1.業務分析階段活動圖中每一條泳道表示一個職責單位(個人或部門),每個泳道的執行者體現了職能部門的工作職責、業務范圍、部門之間的交互關系2.系統分析和設計階段用活動圖對對象的職責進行建模,每一個對象占據一個泳道,而活動是該對象的成員方法本階段采用帶泳道活動圖的情況較少,因為序列圖會更好地體現對象間的交互關系。活動圖更適合于對復雜用例中的事件流進行建模第61頁,共71頁,2023年,2月20日,星期日課堂練習一個咨詢公司會見新客戶時的業務過程:1、公司業務員打電話給客戶確定一個約定2、如果約定地點是在公司之內,那么公司中的技術人員就要為會面準備一間會議室3、如果約定地點是公司之外,那么咨詢顧問就要用膝上電腦準備一份陳述報告4、咨詢顧問與顧客在約定的時間和地點見面5、業務員隨后給他們準備好會議用紙6、如果會議產生了一個問題陳述,咨詢顧問就根據問題陳述建立一個提案并把該提案發給客戶。 請分別建立簡單活動圖和標識泳道的活動圖第62頁,共71頁,2023年,2月20日,星期日第63頁,共71頁,2023年,2月20日,星期日第64頁,共71頁,2023年,2月20日,星期日1、確定需求用例系統管理員查看修改員工信息系統管理員是參與者,其在查看修改員工信息的活動中,共有3個用例:1.登錄:要進入系統,首先要登錄。2.查詢員工信息:進入系統后可以選擇查詢不同員工的信息。3.修改員工信息:需要修改某些員工的部分信息,比如員工晉升后需要修改的員工的職務和工資信息。第65頁,共71頁,2023年,2月20日,星期日2、確定用例

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論