




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
授課:張金榮Email:zhjr2000@163.com
zhjr@QQ:zhjr@(即1211460305)電話:13983103704107030803、04班《統一建模語言與建模工具》教學要求狀態圖概念、定義、作用狀態及其表示法、狀態圖的標記符狀態轉換、事件、條件的概念掌握狀態圖的閱讀和繪制方法。重點:狀態圖的基本概念和元素難點:復合狀態圖的表達第
8
章狀態圖2目錄8.1狀態圖的基礎知識8.2狀態圖組成8.2.1狀態、狀態表示法包括名稱、入口/出口動作、內部轉換、子狀態(嵌套狀態)和延遲事件等五個部分8.2.2初始狀態(initialstate)8.2.3終止狀態(finalstate)8.2.4轉換和轉換的五要素8.2.5判定與復合轉換8.2.6狀態嵌套和歷史狀態8.3并發狀態圖(不做要求)8.4狀態圖設計實例8.5繪制狀態機圖38.1狀態圖的基礎知識1.狀態機狀態機是一種記錄下給定時刻狀態的設備,它可以根據各種不同的輸入對每個給定的變化而改變其狀態或引發一個動作,如計算機、各種客戶端軟件、Web上的各種交互頁面都是狀態機。在UML中狀態機由對象的各個狀態和連接這些狀態的轉換組成,是展示狀態與狀態轉換的圖。在面向對象的軟件系統中,一個對象無論多么簡單或者多么復雜,都必然會經歷一個從開始創建到最終消亡的完整過程,這個過程通常被稱為對象的生命周期。一般說來,對象在其生命周期內是不可能完全孤立的,它必然會接受消息來改變自身或者發送消息來影響其他對象。而狀態機就是用于說明對象在其生命周期中響應事件所經歷的狀態序列以及對這些事件的響應。在狀態機的語境中,一個事件就是一次激發的產生,每個激發都可以觸發一個狀態轉換。48.1狀態圖的基礎知識2.狀態圖定義:狀態圖是眾多開發人員都十分熟悉甚至經常使用的工具,它描述了一個特定對象的所有可能狀態以及由于各種事件的發生而引起的狀態之間的轉移。大多數面向對象技術都使用狀態圖來描述一個對象在其生命周期中的行為,尤其是通過給單個類繪制狀態圖以表該類單個對象的生存期行為。對象從產生到結束,可以處于一系列不同的狀態。狀態影響對象的行為,當這些狀態的數目有限時,就可以用狀態圖來為對象的行為建模,顯示其生命的整個進程。狀態圖把系統或對象所經歷的狀態以及導致狀態轉變的事件以圖的方式顯示出來。53.在畫對象的狀態圖時,需要考慮以下因素:1)對象有哪些有意義的狀態。2)如何決定對象的可能狀態。3)對象的狀態圖和其他模型之間如何進行映射。68.2狀態圖組成在UML中狀態圖由表示狀態的節點和表示狀態之間轉換的帶箭頭的直線組成。狀態的轉換由事件觸發,狀態和狀態之間由轉換箭頭連接。每一個狀態圖都有一初始狀態(實心圓),用來表示狀態機的開始,還有一個終止狀態(半實心圓),用來表示狀態機的終止。一個簡單的狀態圖如下圖所示。7一個簡單的狀態圖最為核心的元素無外乎是兩個:一個是用圓角矩形表示的狀態(初態和終態例外);另一個則是在狀態之間的、包含一些文字描述的有向箭頭線,這些箭頭線稱為轉換。8狀態圖的基本符號
基本狀態圖主要由元素狀態、轉換、初始狀態、終止狀態等組成98.2.1狀態、狀態表示法狀態是指在對象生命周期中滿足某些條件、執行某些活動或等待某些事件的一個條件和狀況一個狀態通常包括名稱、入口/出口動作、內部轉換、子狀態(嵌套狀態)和延遲事件等五個部分組成101.狀態名
狀態名指的是狀態的名字,通常用字符串表示,其中每個單詞的首字母大寫。狀態名可以包含任意數量的字母、數字和除冒號“:”以外的一些符號,可以較長,連續幾行。但是一定要注意一個狀態的名稱在狀態圖所在的上下文中應該是惟一的,能夠把該狀態和其他狀態區分開。112.入口和出口動作
一個狀態可以有或者沒有入口和出口動作。入口和出口動作分別指的是進入和退出一個狀態時所執行的“邊界”動作。這些動作的目的是封裝這個狀態,這樣就可以不必知道狀態的內部狀態而在外部使用它。入口動作:【用entry/動作】表示出口動作:【exit/動作】表示123.內部活動(inneractivity)狀態可以包含表達式的內部活動。【do/活動】表示當狀態進入時活動在進入動作完成后就開始。如果活動結束,狀態就完成,執行出口動作,然后一個從這個狀態出發的轉換被觸發,否則狀態等待觸發轉換以引起狀態本身的改變。如果在活動正在執行時轉換觸發,那么活動被迫結束并且退出動作被執行。134.內部轉換
內部轉換指的是不導致狀態改變的轉換。跟外部轉換形式是一樣的。內部轉換事件動作監護條件145.延遲事件延遲事件是一種特殊的事件,它是指該事件不會觸發狀態的轉換,當對象處于該狀態時事件不會丟失,但會被延遲執行。例如,當E-mail程序中正在發送第一封郵件時,用戶下達發送第二封郵件執令就會被延遲,但第一封郵件發送完成后,這封郵件就會被發送。這種事件就屬于延遲事件;再如打印事件。在狀態內部用/defer表示延遲事件158.2.2初始狀態(initialstate)每個狀態圖都應該有一個初始狀態,它代表狀態圖的起始位置。初始狀態是一個偽狀態(一個和普通狀態有連接的假狀態),對象不可能保持在初始狀態,必須要有一個輸出的無觸發轉換(沒有事件觸發器的轉換)。通常初始狀態上的轉換是無監護條件的并且初始狀態只能作為轉換的源,而不能作為轉換的目標在UML中一個狀態圖只能有一個初始狀態,用一個實心的圓表示。168.2.3終止狀態(finalstate)終止狀態是一個狀態圖的終點一個狀態圖可以擁有0個或者多個終止狀態。對象可以保持在終止狀態但是終止狀態不可能有任何形式的觸發轉換,它的目的就是為了激發封裝狀態上的完成轉換。因此終止狀態只能作為轉換的目標而不能作為轉換的源在UML中終止狀態用一個含有實心圓的空心圓表示。17需要注意的是,對于一些特殊的狀態圖,可以沒有終止狀態如圖所示為一部電的狀態圖,在這個狀態圖中沒有終止狀態。因為不管在什么樣的情況下,電話的狀態都在“空閑”和“忙”之間轉換。188.2.4轉換和轉換的五要素源狀態(SourceState):即受轉換影響的狀態目標狀態(TargetState):當轉換完成后對象的狀態觸發事件(EventTrigger):用來為轉換定義一個事件,包括調用、改變、信號、時間四類事件監護條件(GuardCondition):布爾表達式,決定是否激活轉換、動作(Action):轉換激活時的操作19與狀態off相關的轉換有兩個,其觸發事件都是turnOn,只不過其監護條件不同。如果對象收到事件turnOn,那么將判斷壺中是否有水;如果[沒水],則仍然處于off狀態;如果[有水]則轉為on狀態,并執行“燒水”動作而與狀態on相關的轉換也有兩個,如果“水開了”就執行turnOff,關掉開關;如果燒壞了,就進入了終態了20轉換的分類、描述和語法轉換類型描述語法①外部轉換對事件做出響應,引起狀態變化或自身轉換,同時引發一個特定動作,如果離開或進入狀態將引發進入轉換、離開轉換事件(參數)[監護條件]/動作②內部轉換對事件做出響應,并執行一個特定的活動,但并不引起狀態變化或進入轉換、離開轉換同①③進入轉換當進入某一狀態時,執行相應活動entry/動作④退出轉換當離開某一狀態時,執行相應活動exit/動作⑤自轉換一種特殊的外部轉換,起始狀態和終止狀態為同一狀態同①21自轉換內部轉換退出轉換進入轉換228.2.5判定與復合轉換判定用空心小菱形表示。工作流在此處按監護條件的取值而發生分支,各個分支組成復合轉換。23它的變體:可以看成是兩個轉換24鏈式分支(鏈式復合轉換)25非鏈式分支(非鏈式復合轉換)可以看成是多個轉換(如果把事件[監護條件]/動作看做是轉換的簽名的話)268.2.6狀態嵌套和歷史狀態1.狀態嵌套
狀態分為筒單狀態(SimpleState)和組成狀態(CompositeState)。簡單狀態是在語義上不可分解的、對象保持一定屬性值的狀況,簡單狀態不包含其他狀態;組成(復合)狀態是內部嵌套子狀態的狀態,在組成狀態的嵌套狀態圖部分包含的就是此狀態的子狀態。27(一)跟復合狀態關聯的轉換可以直接關聯子狀態復合狀態轉換的表達形式28(二)關聯外圍框的轉換從復合狀態外圍框出來的轉換若復合狀態內有終點狀態,則表示該出轉換是從終點狀態出來的若復合狀態內無終點狀態,則表示該出轉換可以從該復合狀態任意狀態出來指向復合狀態外圍框的轉換:直接指向外圍框表示指向該復合狀態的開始狀態兩者都可以對出入點命名確定,或用事件簽名約定(此時應該認為該事件簽名對應的出入口點是唯一確定的)29復合狀態表示法兩種表示方法:一種是子圖和父圖合在一塊,叫嵌套區域表示法另一種是子圖和父圖分開表示,叫分解指示符法第二種方法要注意高層狀態圖的出入口數和子圖的出入口數要平衡30(1)如果一個復合狀態只有一個入口點或出口點新圖例31若不使用則為了明確其復合狀態的身份,可以如此引用:32(2)如果一個復合狀態有多個入口點或出口點,若高層圖和子圖畫一塊,轉換可直接和子圖的狀態關聯若高層圖和子圖分離,要對出入口點命名處理。如圖:33Rose里面可用事件簽名區分出入口點342.歷史狀態組成狀態可能包含歷史狀態(HistoryState),歷史狀態本身是個偽狀態,用來說明組成狀態曾經有的子狀態。一般情況下,當狀態機通過轉換進入組成狀態嵌套的子狀態時,被嵌套的子狀態要從子初始狀態進行。但是如果一個被繼承的轉換引起從復合狀態的自動退出,狀態會記住當強制性退出發生的時候處于活動的狀態。這種情況下就可以直接進入上次離開組成狀態時的最后一個子狀態,而不必從它的子初始狀態開始執行歷史狀態代表上次離開組成狀態時的最后一個活動子狀態,它用一個包含字母H的小圓圈表示。H35圖中的含義是:當從狀態“結賬”和“顯示購物車”返回子狀態“顯示索引信息”時,將進入的是離開時的歷史狀態。也就是說,轉到購物
車或結賬區之后,
再回到“瀏覽目錄”的
頁面時,其中的內容
是不變的,仍然保留
原來的信息。368.3并發狀態圖(不做要求)用同步棒表示Rose里面,狀態圖默認沒有分叉匯合,要在工具條上自定義添加37教材8.4的說明!!!分區,可以有自己的區名38軟考試題:UML的狀態圖展示了一個特定對象的所有可能狀態,以及由于各種事件的發生而引起的狀態間的轉移(transition)。如果一個并發的狀態由m個并發的子狀態圖組成,那么該并發狀態在某時刻的狀態由()個子狀態圖中各取一個狀態組合而成。
A.任意一
B.任意兩
C.每一
D.任意n(n≤m)398.4狀態圖設計實例408.5繪制狀態機圖繪制狀態機圖的理想步驟是:尋找主要的狀態,確定狀態之間的轉換,細化狀態內的活動與轉換,用復合狀態來展開細節41以航班機票預訂系統為例:尋找主要狀態:在剛確定飛機計劃時,顯然是沒有任何預訂的,并且在有人預訂機票之前都將處于這種“無預訂”狀態對訂座而言顯然有“部分預訂”和“預訂完”兩種狀態而當航班快要起飛時,顯然要“預訂關閉”總結一下,主要有四種狀態:無預訂、部分預訂、預訂完以及預訂關閉42確定狀態間轉換源目標無預訂部分預訂預訂完預訂關閉無預訂預訂()不直接轉換關閉()部分預訂退訂(),使預訂人=0預訂(),無空座關閉()預訂完不直接轉換退訂()關閉()預訂關閉無轉換無轉換無轉換43細化狀態內的活動與轉換44使用復合狀態45本章小結首先介紹了“狀態”的概念和UML表示法,然后引入了狀態機的概念通過三個例子逐一說明簡單狀態機圖、包含復雜轉換的狀態機圖以及包含復合狀態的狀態機圖的閱讀方法,緊接著通過一個航班機票預訂系統來闡述了狀態圖的繪制過程:確定狀態,分析狀態間的轉換,細化活動與內部轉化,通過復合狀態來組織簡明地點出狀態圖的兩大功能:對對
象的生命周期建模以及對反應型對象
的行為建模46為什么要建模狀態圖
對象可能會有不同的狀態,某些行為依賴于這些狀態。例如,按下開關按鈕時,電燈將改變當前的狀態(由關變開或由開變關),因此:需要記錄對象當前的狀態發生了某種事件才會引起狀態間的轉移由一個狀態轉到另
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆應用職業技術學院《風景園林規劃設計》2023-2024學年第一學期期末試卷
- 湘潭醫衛職業技術學院《環境土壤學》2023-2024學年第二學期期末試卷
- 宮頸腫瘤的病理學課件
- 2025至2031年中國檔發行業投資前景及策略咨詢研究報告
- 2025汽車購車貸款合同范本
- 鄭州商學院《高分子科學基礎》2023-2024學年第二學期期末試卷
- 超聲基礎原理知識
- 樓盤房屋銷售方案范本
- 2025標準中介房屋租賃合同(版)
- 2025至2031年中國后腳踏行業投資前景及策略咨詢研究報告
- 小學生安全教育校本教材(中年級版)
- 中職語文 大國工匠——彭祥華
- 數字化語音存儲與回放系統(畢業設計)
- 喜達屋明星服務
- 煙草企業安全生產標準化規范-第3部分-考核評價準則和方法
- 武漢市控制性詳細規劃編制技術規程610
- 電子顯微分析試題集1
- ANCA相關性小血管炎
- 服裝面料采購合同
- 斯倫貝謝定向鉆井和旋轉導向
- 大學語文(高職版) 教學課件 ppt 作者 徐中玉 44 論讀書 第四十四課 論讀書
評論
0/150
提交評論