UML狀態(tài)圖的畫法_第1頁
UML狀態(tài)圖的畫法_第2頁
UML狀態(tài)圖的畫法_第3頁
UML狀態(tài)圖的畫法_第4頁
UML狀態(tài)圖的畫法_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、p動態(tài)模型描述系統(tǒng)與操作時間和順序有關(guān)的系統(tǒng) 方面、影響更改的事件、事件的序列、事件的環(huán) 境以及事件的組織 1 2 3 4 二、狀態(tài)圖(二、狀態(tài)圖(State Diagram) p狀態(tài)圖是系統(tǒng)分析的一種常見工具,用于描述系統(tǒng)的行為。狀態(tài)圖是系統(tǒng)分析的一種常見工具,用于描述系統(tǒng)的行為。 p實體的生存期比較復(fù)雜時,需要狀態(tài)圖對其建模。實體的生存期比較復(fù)雜時,需要狀態(tài)圖對其建模。 pUML中的狀態(tài)圖主要用于建立對象類或?qū)ο蟮膭討B(tài)行為中的狀態(tài)圖主要用于建立對象類或?qū)ο蟮膭討B(tài)行為 模型,表現(xiàn)模型,表現(xiàn)一個一個對象所經(jīng)歷的對象所經(jīng)歷的狀態(tài)狀態(tài)序列,引起狀態(tài)或活動序列,引起狀態(tài)或活動 轉(zhuǎn)移的轉(zhuǎn)移的事件事件,

2、以及因狀態(tài)或活動的轉(zhuǎn)移而伴隨的,以及因狀態(tài)或活動的轉(zhuǎn)移而伴隨的動作動作。 5 主要內(nèi)容主要內(nèi)容 1. 狀態(tài)機狀態(tài)機 2. 狀態(tài)狀態(tài) 3. 轉(zhuǎn)移轉(zhuǎn)移 4. 組合狀態(tài)組合狀態(tài) 5. 狀態(tài)圖的應(yīng)用狀態(tài)圖的應(yīng)用 6 3.1 狀態(tài)機狀態(tài)機1 狀態(tài)機對系統(tǒng)的動態(tài)特征建模。狀態(tài)機對系統(tǒng)的動態(tài)特征建模。 p狀態(tài)機表示一個模型元素在其生命期間的情況:從該模型元素的開始狀態(tài)起,狀態(tài)機表示一個模型元素在其生命期間的情況:從該模型元素的開始狀態(tài)起, 響應(yīng)事件,執(zhí)行某些動作,引起轉(zhuǎn)移到新狀態(tài),在新狀態(tài)下響應(yīng)事件,執(zhí)行響應(yīng)事件,執(zhí)行某些動作,引起轉(zhuǎn)移到新狀態(tài),在新狀態(tài)下響應(yīng)事件,執(zhí)行 動作,引起轉(zhuǎn)移到另一個狀態(tài),直到終結(jié)

3、狀態(tài)。動作,引起轉(zhuǎn)移到另一個狀態(tài),直到終結(jié)狀態(tài)。 p狀態(tài)機的組成:狀態(tài)、轉(zhuǎn)移、事件、活動、動作等。狀態(tài)機的組成:狀態(tài)、轉(zhuǎn)移、事件、活動、動作等。 狀態(tài)狀態(tài)(State):):表示一個模型元素在生存期的一種狀況,如滿足某些條件,表示一個模型元素在生存期的一種狀況,如滿足某些條件, 進行某些活動,或等待某些事件出現(xiàn)等。一個狀態(tài)在有限的時間段內(nèi)存在。進行某些活動,或等待某些事件出現(xiàn)等。一個狀態(tài)在有限的時間段內(nèi)存在。 轉(zhuǎn)移轉(zhuǎn)移/遷移遷移(Transition):表示一個模型元素的不同狀態(tài)之間的聯(lián)系。在事表示一個模型元素的不同狀態(tài)之間的聯(lián)系。在事 件觸發(fā)下,一個狀態(tài)可以轉(zhuǎn)移到另一個狀態(tài)。件觸發(fā)下,一個狀

4、態(tài)可以轉(zhuǎn)移到另一個狀態(tài)。 事件事件(Event):):一個有意義的出現(xiàn)(一個有意義的出現(xiàn)(Occurrence)的說明。該出現(xiàn)在某的說明。該出現(xiàn)在某 個時間或空間點發(fā)生,并且立即觸發(fā)一個狀態(tài)的轉(zhuǎn)移。例如,一個信號、一個時間或空間點發(fā)生,并且立即觸發(fā)一個狀態(tài)的轉(zhuǎn)移。例如,一個信號、一 個操作的調(diào)用、一個對象的創(chuàng)建或銷毀、超時、某個條件的改變等。個操作的調(diào)用、一個對象的創(chuàng)建或銷毀、超時、某個條件的改變等。 動作動作(Action):):一個可執(zhí)行的原子計算,它導(dǎo)致狀態(tài)的變更或返回一個值。一個可執(zhí)行的原子計算,它導(dǎo)致狀態(tài)的變更或返回一個值。 不能被中斷。不能被中斷。 活動活動(Activity):)

5、:是在狀態(tài)機中一系列動作的執(zhí)行?;顒涌赡鼙荒硞€事件是在狀態(tài)機中一系列動作的執(zhí)行?;顒涌赡鼙荒硞€事件 中斷。中斷。 7 3.1 狀態(tài)機狀態(tài)機2 p狀態(tài)機用于對狀態(tài)機用于對一個一個模型元素建立行為模型,該模型元素通模型元素建立行為模型,該模型元素通 常是一個對象類,也可以是一個子系統(tǒng),常是一個對象類,也可以是一個子系統(tǒng),甚至整個系統(tǒng)。甚至整個系統(tǒng)。 p在在UML中狀態(tài)機用狀態(tài)圖可視化表示。中狀態(tài)機用狀態(tài)圖可視化表示。 狀態(tài)圖:狀態(tài)的節(jié)點、轉(zhuǎn)移的弧、事件等組成。狀態(tài)圖:狀態(tài)的節(jié)點、轉(zhuǎn)移的弧、事件等組成。 源狀態(tài)源狀態(tài)目標狀態(tài)目標狀態(tài) 事件事件 8 3.2 狀態(tài)狀態(tài) p狀態(tài):對象全部屬性的當前值。狀態(tài)

6、:對象全部屬性的當前值。 (問題:對象任何一個新的屬性值組合就是一個新狀態(tài),狀態(tài)空間太大)(問題:對象任何一個新的屬性值組合就是一個新狀態(tài),狀態(tài)空間太大) p狀態(tài)屬性:對確定對象的狀態(tài)有重要意義的屬性。狀態(tài)屬性:對確定對象的狀態(tài)有重要意義的屬性。 p狀態(tài)屬性一般具有少量的值,而且這些屬性的值的轉(zhuǎn)換是有限的。狀態(tài)屬性一般具有少量的值,而且這些屬性的值的轉(zhuǎn)換是有限的。 并且其屬性值反映所屬對象的特定狀態(tài)。并且其屬性值反映所屬對象的特定狀態(tài)。 如:對于如:對于“汽車汽車”對象,可能有對象,可能有“型號型號”、“車況車況”、“使用情況使用情況”、 “公里數(shù)公里數(shù)”、“汽油剩余量汽油剩余量”等屬性。不應(yīng)

7、取等屬性。不應(yīng)取“公里數(shù)公里數(shù)”或或“汽油剩余量汽油剩余量” 作為狀態(tài)屬性,可取作為狀態(tài)屬性,可取“使用情況使用情況”作為屬性狀態(tài)。則,作為屬性狀態(tài)。則,“汽車汽車”對象的有對象的有 限個不同狀態(tài):限個不同狀態(tài):“開動開動”、“停車停車”、“維修維修”、“閑置閑置”、“報廢報廢”等。等。 p在在UML中,對一個對象(模型元素)的行為建模時,所選擇的該對中,對一個對象(模型元素)的行為建模時,所選擇的該對 象的生存期中的象的生存期中的狀態(tài)數(shù)量是有限的狀態(tài)數(shù)量是有限的,對象處于每個狀態(tài)的持續(xù)時間對象處于每個狀態(tài)的持續(xù)時間 也是有限的。也是有限的。當發(fā)生某個事件,或完成某個動作,都會觸發(fā)狀態(tài)的當發(fā)生

8、某個事件,或完成某個動作,都會觸發(fā)狀態(tài)的 轉(zhuǎn)移。轉(zhuǎn)移。 狀態(tài)舉例狀態(tài)舉例 p狀態(tài)指的是對象的狀態(tài)。例如: p發(fā)票(對象對象)被被支付支付(狀態(tài)狀態(tài)) p小車(對象對象)正在正在停著停著(狀態(tài)狀態(tài)) p發(fā)動機(對象對象)正在正在工作工作(狀態(tài)狀態(tài)) p電燈(對象對象)開著開著(狀態(tài)狀態(tài)) 9 10 3.2.1 狀態(tài)圖標狀態(tài)圖標 p 狀態(tài)圖標(狀態(tài)節(jié)點)狀態(tài)圖標(狀態(tài)節(jié)點) 一個狀態(tài)可以加入信息一個狀態(tài)可以加入信息: 進入操作、退出操作、進入操作、退出操作、 活動等活動等 狀態(tài)名狀態(tài)名 entry / 動作動作 do / 活動活動 exit / 動作動作 11 3.2.2 狀態(tài)行為狀態(tài)行為1 p進

9、入操作(進入操作(entry):):系統(tǒng)進入該狀態(tài)時要發(fā)生的動作,前面加上系統(tǒng)進入該狀態(tài)時要發(fā)生的動作,前面加上 entry和和“ / ”。不可中斷。不可中斷。 注:航班進入預(yù)定狀態(tài)時,注:航班進入預(yù)定狀態(tài)時, 系統(tǒng)將時刻表發(fā)布到系統(tǒng)將時刻表發(fā)布到Internet。 盡管發(fā)布動作在技術(shù)上是可以盡管發(fā)布動作在技術(shù)上是可以 中斷的,但其速度很快,用戶中斷的,但其速度很快,用戶 很難在其發(fā)生時取消事物。很難在其發(fā)生時取消事物。 p活動(活動(do):):系統(tǒng)處于該狀態(tài)時要發(fā)生的活動,前面加上系統(tǒng)處于該狀態(tài)時要發(fā)生的活動,前面加上do和和 “ / ”。 活動是可中斷行為,活動是可中斷行為, 可以在對象

10、處于該狀態(tài)時可以在對象處于該狀態(tài)時 運行完畢,也可以在對象運行完畢,也可以在對象 轉(zhuǎn)入另一狀態(tài)時中斷。轉(zhuǎn)入另一狀態(tài)時中斷。 航班預(yù)定航班預(yù)定 entry / 將時刻表發(fā)布到將時刻表發(fā)布到 Internet 航班取消航班取消 do / 為客戶尋找其它航班為客戶尋找其它航班 12 3.2.2 狀態(tài)行為狀態(tài)行為2 p退出操作(退出操作(exit):):系統(tǒng)離開該狀態(tài)時要發(fā)生的動作,前面加上系統(tǒng)離開該狀態(tài)時要發(fā)生的動作,前面加上 exit和和“ / ”。不可中斷。不可中斷。 注:飛機著陸時退出飛行狀態(tài),注:飛機著陸時退出飛行狀態(tài), 系統(tǒng)記錄登陸時間。系統(tǒng)記錄登陸時間。 p發(fā)送事件:發(fā)送事件:在活動、進

11、入和退出操作的動作中可以是對象內(nèi)部發(fā)生在活動、進入和退出操作的動作中可以是對象內(nèi)部發(fā)生 的行為,也可能是向另外的行為,也可能是向另外 一個對象發(fā)送消息。一個對象發(fā)送消息。 飛行狀態(tài)飛行狀態(tài) exit / 記錄登陸時間記錄登陸時間 狀態(tài)名狀態(tài)名 entry / 目標對象目標對象.消息名消息名(消息參數(shù)消息參數(shù)) do / 目標對象目標對象.消息名消息名(消息參數(shù)消息參數(shù)) exit / 目標對象目標對象.消息名消息名(消息參數(shù)消息參數(shù)) 13 3.2.3 初始與終結(jié)狀態(tài)初始與終結(jié)狀態(tài) p初始狀態(tài):初始狀態(tài):是模型元素的初始狀況,代表一個狀是模型元素的初始狀況,代表一個狀 態(tài)圖的起始點,是一個偽狀

12、態(tài)。初始狀態(tài)是轉(zhuǎn)移態(tài)圖的起始點,是一個偽狀態(tài)。初始狀態(tài)是轉(zhuǎn)移 的初始源,而不能是轉(zhuǎn)移的目標。實心圓表示。的初始源,而不能是轉(zhuǎn)移的目標。實心圓表示。 p終結(jié)狀態(tài):終結(jié)狀態(tài):是模型元素的最后狀態(tài),代表一個狀是模型元素的最后狀態(tài),代表一個狀 態(tài)圖的終止點,是一個偽狀態(tài)。終結(jié)狀態(tài)是轉(zhuǎn)移態(tài)圖的終止點,是一個偽狀態(tài)。終結(jié)狀態(tài)是轉(zhuǎn)移 的最后目標,而不能是轉(zhuǎn)移的初始源。牛眼表示。的最后目標,而不能是轉(zhuǎn)移的初始源。牛眼表示。 14 3.3 轉(zhuǎn)移轉(zhuǎn)移(遷移)(遷移)1 p轉(zhuǎn)移:用實箭線表示,箭尾連接出發(fā)狀態(tài),即轉(zhuǎn)移:用實箭線表示,箭尾連接出發(fā)狀態(tài),即源狀態(tài)源狀態(tài),箭頭連接到,箭頭連接到 達狀態(tài),即達狀態(tài),即目標狀

13、態(tài)目標狀態(tài)。在箭線上可以標示與該轉(zhuǎn)移有關(guān)的選項:事。在箭線上可以標示與該轉(zhuǎn)移有關(guān)的選項:事 件、保護件、保護(警戒)條件(警戒)條件和動作。和動作。 p當處于源狀態(tài)的對象接收到一個當處于源狀態(tài)的對象接收到一個事件,事件,并且保護條件得到滿足時并且保護條件得到滿足時 (如果有的話),則執(zhí)行相應(yīng)的動作,并從源狀態(tài)轉(zhuǎn)移到目標狀態(tài)。(如果有的話),則執(zhí)行相應(yīng)的動作,并從源狀態(tài)轉(zhuǎn)移到目標狀態(tài)。 p當發(fā)生一個轉(zhuǎn)移時,該轉(zhuǎn)移進入的狀態(tài)為活動狀態(tài),它將執(zhí)行相應(yīng)當發(fā)生一個轉(zhuǎn)移時,該轉(zhuǎn)移進入的狀態(tài)為活動狀態(tài),它將執(zhí)行相應(yīng) 的動作。當發(fā)生一個轉(zhuǎn)移離開一個狀態(tài)時,該狀態(tài)變?yōu)榉腔顒訝顟B(tài)。的動作。當發(fā)生一個轉(zhuǎn)移離開一個狀

14、態(tài)時,該狀態(tài)變?yōu)榉腔顒訝顟B(tài)。 p轉(zhuǎn)移類型:轉(zhuǎn)移類型:簡單轉(zhuǎn)移、自轉(zhuǎn)移、自動轉(zhuǎn)移、復(fù)合轉(zhuǎn)移等簡單轉(zhuǎn)移、自轉(zhuǎn)移、自動轉(zhuǎn)移、復(fù)合轉(zhuǎn)移等。 源狀態(tài)源狀態(tài)目標狀態(tài)目標狀態(tài) 事件事件警戒條件警戒條件/動作動作 事件事件 p事件(event)是指某個時刻發(fā)生的事情。 p事件中最常見的是: n信號事件(signal event):從一個對象到另一個對象 的明確的單向信息流動。 n變更事件(change event):是指由滿足布爾表達式 而引起的事件。 n時間事件(time event):是指在絕對時間上或在某 個時間間隔上發(fā)生的事情所引起的事件。 15 16 3.3 轉(zhuǎn)移轉(zhuǎn)移2 初始化初始化 do / 自啟

15、動自啟動 工作工作 關(guān)閉關(guān)閉 打開打開PC機機關(guān)閉機器關(guān)閉機器 屏幕保護屏幕保護 等待超時等待超時 擊鍵或移動鼠標擊鍵或移動鼠標 GUI的狀態(tài)圖的狀態(tài)圖 17 3.3.1 轉(zhuǎn)移類型轉(zhuǎn)移類型1 p自身轉(zhuǎn)移(自身轉(zhuǎn)移(Self-Transition):是指那些源狀態(tài)與目):是指那些源狀態(tài)與目 標狀態(tài)是同一狀態(tài)的轉(zhuǎn)移。標狀態(tài)是同一狀態(tài)的轉(zhuǎn)移。 如:賣票的航班中增加乘客如:賣票的航班中增加乘客 或減少乘客時,航班是打開的。或減少乘客時,航班是打開的。 p自動轉(zhuǎn)移(自動轉(zhuǎn)移(Automatic-Transition):自動轉(zhuǎn)移又稱):自動轉(zhuǎn)移又稱 完成轉(zhuǎn)移(完成轉(zhuǎn)移(Completion-Transit

16、ion)。每個狀態(tài)都)。每個狀態(tài)都 可能有一個不由事件觸發(fā)的轉(zhuǎn)移,它是根據(jù)該狀態(tài)內(nèi)的動可能有一個不由事件觸發(fā)的轉(zhuǎn)移,它是根據(jù)該狀態(tài)內(nèi)的動 作完成而自動觸發(fā)的。見作完成而自動觸發(fā)的。見GUI狀態(tài)圖。狀態(tài)圖。 打開打開 增加乘客增加乘客 人數(shù)人數(shù)+1 未滿未滿/sum+1 關(guān)閉關(guān)閉 增加增加人數(shù)人數(shù)+1 已滿已滿/sum+1 減少乘客減少乘客/sum-1減少乘客減少乘客/sum-1 18 3.3.1 轉(zhuǎn)移類型轉(zhuǎn)移類型2 p判定:是在狀態(tài)圖中的一個特定的位置,工作流在此依判定:是在狀態(tài)圖中的一個特定的位置,工作流在此依 據(jù)保護條件的取值而發(fā)生的分支。判定用空心小菱形表示。據(jù)保護條件的取值而發(fā)生的分支

17、。判定用空心小菱形表示。 p復(fù)合轉(zhuǎn)移(復(fù)合轉(zhuǎn)移(Compound-Transition):復(fù)合轉(zhuǎn)移由簡):復(fù)合轉(zhuǎn)移由簡 單轉(zhuǎn)移組成,這些簡單轉(zhuǎn)移通過分支判定、分叉組成。單轉(zhuǎn)移組成,這些簡單轉(zhuǎn)移通過分支判定、分叉組成。 源狀態(tài)源狀態(tài) 目標狀態(tài)目標狀態(tài)2 目標狀態(tài)目標狀態(tài)1條件條件1 條件條件2 19 3.3.1 轉(zhuǎn)移類型轉(zhuǎn)移類型3 制定計劃制定計劃 招聘人員招聘人員 實施實施 人員齊備人員齊備 人員未齊備人員未齊備 制定計劃制定計劃 招聘人員招聘人員 實施實施 人員齊備人員齊備 人員未齊備人員未齊備 20 源狀態(tài)源狀態(tài) 目標狀態(tài)目標狀態(tài)4 目標狀態(tài)目標狀態(tài)3 目標狀態(tài)目標狀態(tài)2 目標狀態(tài)目標狀態(tài)

18、1 事件事件1 條件條件1/動作動作1條件條件3/動作動作3 條件條件4/動作動作4 條件條件5/動作動作6 條件條件2/動作動作2 條件條件6/動作動作6 多條件鏈式分支多條件鏈式分支 源狀態(tài)源狀態(tài) 目標狀態(tài)目標狀態(tài)4 目標狀態(tài)目標狀態(tài)3 目標狀態(tài)目標狀態(tài)2 目標狀態(tài)目標狀態(tài)1 事件事件1條件條件1 and 條件條件3/動作動作1,動作,動作3 多條件非鏈式分支多條件非鏈式分支 事件事件1條件條件2 and 條件條件6/動作動作2,動作,動作6 事件事件1條件條件2 and 條件條件5/動作動作2,動作,動作5 事件事件1條件條件1 and 條件條件4/動作動作1,動作,動作4 21 3.3

19、.2 轉(zhuǎn)移示例轉(zhuǎn)移示例 未分配任務(wù)未分配任務(wù) 已分配任務(wù)已分配任務(wù) 取消對任務(wù)的資源分配取消對任務(wù)的資源分配 NumAssTasks1 / NumAssTasks-1 NumAssTasks=1 / NumAssTasks=0 分配任務(wù)給資源分配任務(wù)給資源 / NumAssTasks+1 資源休閑資源休閑 資源管理員資源管理員 PRMS的一個資源狀態(tài)圖的一個資源狀態(tài)圖 分配任務(wù)給資源分配任務(wù)給資源 / NumAssTasks+1 22 3.4.1 組合狀態(tài)組合狀態(tài)子狀態(tài)子狀態(tài) p一個狀態(tài)內(nèi)嵌套了若干個狀態(tài),則稱該狀態(tài)為一個狀態(tài)內(nèi)嵌套了若干個狀態(tài),則稱該狀態(tài)為組合狀態(tài)組合狀態(tài)(超狀態(tài))。(超狀態(tài)

20、)。 其中,被嵌套的狀態(tài)稱為其中,被嵌套的狀態(tài)稱為子狀態(tài)子狀態(tài)。子狀態(tài)本身仍然可以是組合狀態(tài)。子狀態(tài)本身仍然可以是組合狀態(tài)。 p一個組合狀態(tài)可以有一個被嵌套的子狀態(tài)圖,它代表了該組合狀態(tài)的一個組合狀態(tài)可以有一個被嵌套的子狀態(tài)圖,它代表了該組合狀態(tài)的 一個活動。子狀態(tài)圖中必須有自己的初始和終結(jié)狀態(tài)。對組合狀態(tài)的一個活動。子狀態(tài)圖中必須有自己的初始和終結(jié)狀態(tài)。對組合狀態(tài)的 一個入轉(zhuǎn)移代表對其子區(qū)域內(nèi)的初始狀態(tài)的入轉(zhuǎn)移,對子區(qū)域內(nèi)的終一個入轉(zhuǎn)移代表對其子區(qū)域內(nèi)的初始狀態(tài)的入轉(zhuǎn)移,對子區(qū)域內(nèi)的終 結(jié)狀態(tài)的轉(zhuǎn)移代表包含它的組合狀態(tài)的相應(yīng)活動的完成。結(jié)狀態(tài)的轉(zhuǎn)移代表包含它的組合狀態(tài)的相應(yīng)活動的完成。 p采

21、用組合狀態(tài)可以簡化復(fù)雜行為的建模。采用組合狀態(tài)可以簡化復(fù)雜行為的建模。 發(fā)貨處理發(fā)貨處理 取消取消 已發(fā)貨已發(fā)貨 取消取消 網(wǎng)上商店處理送貨過程的狀態(tài)圖網(wǎng)上商店處理送貨過程的狀態(tài)圖 檢查檢查 do / 檢查商品檢查商品 辦貨處理辦貨處理 do / 啟動發(fā)貨啟動發(fā)貨 等待等待 取消取消已發(fā)貨已發(fā)貨 全部商品已全部商品已 檢查完,但部檢查完,但部 分商品缺貨分商品缺貨 全部商品全部商品 檢查完且全檢查完且全 部商品都有部商品都有 收到商品收到商品 全部商品都有全部商品都有 收到商品收到商品 部分商品缺貨部分商品缺貨 未檢查完未檢查完 全部商品全部商品 / 取下一個取下一個 取消取消 取消取消 取消

22、取消 網(wǎng)上商店處理送貨過程的狀態(tài)圖網(wǎng)上商店處理送貨過程的狀態(tài)圖 檢查檢查 do / 檢查商品檢查商品 辦貨處理辦貨處理 do / 啟動發(fā)貨啟動發(fā)貨 等待等待 取消取消已發(fā)貨已發(fā)貨 全部商品已全部商品已 檢查完,但部檢查完,但部 分商品缺貨分商品缺貨 全部商品已全部商品已 檢查完且全部檢查完且全部 商品都有商品都有 收到商品收到商品 全部商品都有全部商品都有 收到商品收到商品 部分商品缺貨部分商品缺貨 發(fā)貨處理發(fā)貨處理 未檢查完未檢查完 全部商品全部商品 / 取下一個取下一個 網(wǎng)上商店處理送貨過程的狀態(tài)圖網(wǎng)上商店處理送貨過程的狀態(tài)圖 取消取消 25 在店內(nèi)在店內(nèi) entry/ 令令store =

23、 theStore(本店本店) 購入項目購入項目 已出租已出租 歸還項目歸還項目 棄置項目棄置項目 租出項目租出項目 已租出已租出 正常正常 entry/ 令令store = null(空值空值) do/ 每天檢查到期時間每天檢查到期時間 超過到期日子超過到期日子 過期過期 entry/ 通知會員通知會員 租借店軟件系統(tǒng)中的租借項目租借店軟件系統(tǒng)中的租借項目(錄像帶、游戲等錄像帶、游戲等)狀態(tài)圖狀態(tài)圖 租出項目租出項目 26 3.4.2 順序子狀態(tài)順序子狀態(tài) p順序子狀態(tài):子狀態(tài)是一個一個順序轉(zhuǎn)移的,不是并發(fā)存順序子狀態(tài):子狀態(tài)是一個一個順序轉(zhuǎn)移的,不是并發(fā)存 在的。在的。 等待用戶輸入等待用

24、戶輸入登記用戶輸入登記用戶輸入顯示用戶輸入顯示用戶輸入 輸入輸入 工作工作 GUI中中“工作工作”的組合狀態(tài)的組合狀態(tài) 27 活動活動 ? ? ? 驗卡驗卡 撥號撥號通話通話 掛斷掛斷 休閑休閑 繼續(xù)繼續(xù) 維修維修 結(jié)束結(jié)束 維修完成維修完成 維修維修 插卡插卡 取消取消 IC卡電話機順序狀態(tài)示例卡電話機順序狀態(tài)示例 28 3.4.3 并發(fā)子狀態(tài)并發(fā)子狀態(tài)1 p并發(fā)狀態(tài)圖用于描述一個對象在某個時刻有多個并發(fā)的子并發(fā)狀態(tài)圖用于描述一個對象在某個時刻有多個并發(fā)的子 狀態(tài)機的情況,并發(fā)狀態(tài)圖是這些子狀態(tài)圖的組合。狀態(tài)機的情況,并發(fā)狀態(tài)圖是這些子狀態(tài)圖的組合。 等待用戶輸入等待用戶輸入登記用戶輸入登記

25、用戶輸入顯示用戶輸入顯示用戶輸入 輸入輸入 工作工作 監(jiān)視監(jiān)視 系統(tǒng)時鐘系統(tǒng)時鐘 更新更新 界面顯示界面顯示 時鐘間隔已過時鐘間隔已過 GUI中中“工作工作”的并發(fā)組合狀態(tài)的并發(fā)組合狀態(tài) 29 3.4.3 并發(fā)子狀態(tài)并發(fā)子狀態(tài)2 網(wǎng)上商店系統(tǒng)中網(wǎng)上商店系統(tǒng)中“訂貨訂貨”對象的并發(fā)狀態(tài)圖對象的并發(fā)狀態(tài)圖 等待等待 商品檢查商品檢查辦理裝貨辦理裝貨 付款檢查付款檢查已付款已付款 取消取消 發(fā)貨發(fā)貨 拒絕拒絕 訂貨訂貨 30 3.4.4 同步同步 p同步:同步可定義為并發(fā)工作流的分劈(同步:同步可定義為并發(fā)工作流的分劈(Fork)與接合)與接合 (Join)。)。 分劈(拆分):分劈(拆分):是一個

26、源狀態(tài)分為兩個或兩個以上的目標狀態(tài)。是一個源狀態(tài)分為兩個或兩個以上的目標狀態(tài)。 接合:接合:是兩個以上的源狀態(tài)連接為一個目標狀態(tài)。是兩個以上的源狀態(tài)連接為一個目標狀態(tài)。 同步在狀態(tài)圖中用一條粗短實線表示,稱為同步桿。同步在狀態(tài)圖中用一條粗短實線表示,稱為同步桿。 源狀態(tài)源狀態(tài)目標狀態(tài)目標狀態(tài) 目標狀態(tài)目標狀態(tài)1 目標狀態(tài)目標狀態(tài)2 源狀態(tài)源狀態(tài)1 源狀態(tài)源狀態(tài)2 31 3.4.4 并發(fā)子狀態(tài)并發(fā)子狀態(tài)同步同步 p在并發(fā)狀態(tài)圖中一個子狀態(tài)圖中在并發(fā)狀態(tài)圖中一個子狀態(tài)圖中 的子狀態(tài),常常需要與另一個子的子狀態(tài),常常需要與另一個子 狀態(tài)圖中的子狀態(tài)的行為同步。狀態(tài)圖中的子狀態(tài)的行為同步。 在在UML

27、中使用同步狀態(tài)表示這中使用同步狀態(tài)表示這 種情況。種情況。 p并發(fā)子狀態(tài)之間的同步狀態(tài)用含并發(fā)子狀態(tài)之間的同步狀態(tài)用含 “*”的小圓表示(偽狀態(tài)),放的小圓表示(偽狀態(tài)),放 在分隔子狀態(tài)的虛線上。在分隔子狀態(tài)的虛線上。 p例:例:建筑住宅的并發(fā)狀態(tài)圖建筑住宅的并發(fā)狀態(tài)圖。 其中有二個子狀態(tài)圖,分別其中有二個子狀態(tài)圖,分別 代表主體工程施工和水電工程代表主體工程施工和水電工程 施工,它們是并行進行的。施工,它們是并行進行的。 砌筑基礎(chǔ)砌筑基礎(chǔ) 鋪設(shè)鋪設(shè) 室內(nèi)管線室內(nèi)管線 安裝安裝 水電設(shè)備水電設(shè)備 主體結(jié)構(gòu)主體結(jié)構(gòu)水電準備水電準備 安裝門框安裝門框 室內(nèi)裝修室內(nèi)裝修 竣工驗收竣工驗收 * *

28、32 3.4.5 歷史狀態(tài)歷史狀態(tài)1 p歷史狀態(tài)(歷史狀態(tài)(History State):代表上次離開組合狀態(tài)時代表上次離開組合狀態(tài)時 的最后一個活動子狀態(tài)。歷史狀態(tài)用含有字母的最后一個活動子狀態(tài)。歷史狀態(tài)用含有字母“H”的小的小 園圈表示。每當轉(zhuǎn)移到組合狀態(tài)中的歷史狀態(tài)時,對象便園圈表示。每當轉(zhuǎn)移到組合狀態(tài)中的歷史狀態(tài)時,對象便 恢復(fù)上次離開該組合狀態(tài)時最后一個子狀態(tài),并執(zhí)行入口恢復(fù)上次離開該組合狀態(tài)時最后一個子狀態(tài),并執(zhí)行入口 動作。動作。 p歷史狀態(tài)是一個偽狀態(tài)的圖形標記,只能作為組合狀態(tài)中歷史狀態(tài)是一個偽狀態(tài)的圖形標記,只能作為組合狀態(tài)中 的子狀態(tài),不能在頂層狀態(tài)圖中使用。的子狀態(tài),不

29、能在頂層狀態(tài)圖中使用。 33 3.4.5 歷史狀態(tài)歷史狀態(tài)2 停止停止 播發(fā)播發(fā) 選擇選擇 暫停暫停 H 恢復(fù)恢復(fù) 活動活動 中斷中斷 影碟機對象工作的部分狀態(tài)圖影碟機對象工作的部分狀態(tài)圖 34 3.5 狀態(tài)圖的應(yīng)用狀態(tài)圖的應(yīng)用 p狀態(tài)圖為一個對象的生命周期建立模型。狀態(tài)圖可以表示狀態(tài)圖為一個對象的生命周期建立模型。狀態(tài)圖可以表示 一個對象的歷史,引起一個狀態(tài)向另一個狀態(tài)轉(zhuǎn)移的事件,一個對象的歷史,引起一個狀態(tài)向另一個狀態(tài)轉(zhuǎn)移的事件, 以及由于狀態(tài)的轉(zhuǎn)移而引發(fā)的動作。以及由于狀態(tài)的轉(zhuǎn)移而引發(fā)的動作。 p狀態(tài)圖適合描述一個對象穿越多個狀態(tài)圖適合描述一個對象穿越多個Use Case的行為,但的行為

30、,但 不適合描述多個對象的協(xié)同行為。不適合描述多個對象的協(xié)同行為。 p使用狀態(tài)圖可以對一個對象(類)的行為建模,也可以對使用狀態(tài)圖可以對一個對象(類)的行為建模,也可以對 一個子系統(tǒng)或整個系統(tǒng)的行為建模。一個子系統(tǒng)或整個系統(tǒng)的行為建模。 狀態(tài)圖建模技術(shù)狀態(tài)圖建模技術(shù) p建模的時候要找出對象所處的狀態(tài)、觸發(fā)狀態(tài)改 變的動作,以及對象狀態(tài)改變時應(yīng)執(zhí)行的動作 具體步驟如下: 1、找出適合用模型描述其行為的類。、找出適合用模型描述其行為的類。 2、確定對象可能存在的狀態(tài)。、確定對象可能存在的狀態(tài)。找出狀態(tài)屬性。找出狀態(tài)屬性。 3、確定引起狀態(tài)轉(zhuǎn)換的事件。、確定引起狀態(tài)轉(zhuǎn)換的事件。 4、確定轉(zhuǎn)換進行時對

31、對象執(zhí)行的相應(yīng)動作。、確定轉(zhuǎn)換進行時對對象執(zhí)行的相應(yīng)動作。利用利用 子狀態(tài)、分支、歷史狀態(tài)等概念組織和簡化一個子狀態(tài)、分支、歷史狀態(tài)等概念組織和簡化一個 復(fù)雜的狀態(tài)機。復(fù)雜的狀態(tài)機。 5、對建模的結(jié)果進行相應(yīng)的精化和細化。、對建模的結(jié)果進行相應(yīng)的精化和細化。 35 36 3.5.2 系統(tǒng)總體狀態(tài)圖系統(tǒng)總體狀態(tài)圖 備份系統(tǒng)備份系統(tǒng) 未激活未激活 PRMS 未激活未激活 備份系統(tǒng)備份系統(tǒng) 已激活已激活 PRMS 已激活已激活 退出系統(tǒng)退出系統(tǒng) 啟動系統(tǒng)啟動系統(tǒng) 啟動備份系統(tǒng)啟動備份系統(tǒng)/ 使使PRMS備份備份 例程工作例程工作 關(guān)閉備份系統(tǒng)關(guān)閉備份系統(tǒng)/ 使使PRMS備份備份 例程不工作例程不工作

32、 啟動啟動PRMS 第一次使用第一次使用 啟動啟動PRMS 非第一次使用非第一次使用 /裝載數(shù)據(jù)裝載數(shù)據(jù) 關(guān)閉關(guān)閉PRMS系統(tǒng)系統(tǒng) 備份系統(tǒng)已激活備份系統(tǒng)已激活 /備份數(shù)據(jù)備份數(shù)據(jù) 37 PRMS已激活已激活 資源管理資源管理 項目管理項目管理 系統(tǒng)管理系統(tǒng)管理 休閑休閑忙忙 資源管理啟動處理資源管理啟動處理 完成處理完成處理 休閑休閑忙忙 項目管理啟動處理項目管理啟動處理 完成處理完成處理 休閑休閑忙忙 系統(tǒng)管理啟動處理系統(tǒng)管理啟動處理 完成處理完成處理 PRMS的激活狀態(tài)的組合狀態(tài)的激活狀態(tài)的組合狀態(tài) 38 用于預(yù)定的狀態(tài)圖:用于預(yù)定的狀態(tài)圖:在在Reservation創(chuàng)建后,就處于等待狀

33、態(tài),創(chuàng)建后,就處于等待狀態(tài), 一旦到達一旦到達Concluded狀態(tài),在系統(tǒng)中就不再承擔(dān)任何任務(wù)。狀態(tài),在系統(tǒng)中就不再承擔(dān)任何任務(wù)。 Waiting 沒找到汽車沒找到汽車 Notifiable Needing Renewal Collectable Storable Concluded 會員取消會員取消 會員沒有來會員沒有來 會員取車會員取車 返回汽車返回汽車 助手找到汽車助手找到汽車 沒有汽車回來沒有汽車回來 會員取消會員取消 助手存儲助手存儲 會員再次預(yù)約會員再次預(yù)約 找不到會員找不到會員 會員取消會員取消 助手已通知會員助手已通知會員 會員取消會員取消 找不到會員找不到會員 何時使用狀態(tài)

34、圖何時使用狀態(tài)圖 p大多數(shù)面向商業(yè)的應(yīng)用中的類不需要狀態(tài)圖 p以下情況經(jīng)常使用狀態(tài)圖:狀態(tài)多于三個 n動態(tài)模型中產(chǎn)生或接收大量信息的類:訂單、交通 n界面類 n實時系統(tǒng)中的類 39 40 41 42 狀態(tài)圖的代碼實現(xiàn)狀態(tài)圖的代碼實現(xiàn) p狀態(tài)圖用于輔助類圖建模 p遷移通常被實現(xiàn)成對象上的操作,操作名與信號 名相對應(yīng);信號比操作更富有表現(xiàn)力,因為信號 不僅依賴于類,而且依賴于狀態(tài) p狀態(tài)通常是類的屬性 p狀態(tài)的完整性反映了屬性的取值的特點 p遷移與狀態(tài)的關(guān)系反映了對象屬性與操作的關(guān)系 43 44 兩種不同的系統(tǒng)兩種不同的系統(tǒng) p一種是“信息處理系統(tǒng)”:系統(tǒng)對某些輸入信息按照預(yù)先指定 的步驟和方式進

35、行處理,以便得到某些輸出的信息,系統(tǒng)目前 的狀態(tài)可以用資料目前的狀態(tài)來描述,例如:人事薪資系統(tǒng)、 倉儲物流系統(tǒng); p另外一類是與外界環(huán)境互動的系統(tǒng),例如:飛航管制系統(tǒng)、交 通管制系統(tǒng)、游戲等等,這一類系統(tǒng)一般沒有明確的輸入和輸 出,但是與外界有很多不預(yù)期的互動。 p通常系統(tǒng)回應(yīng)的方法與系統(tǒng)內(nèi)部的狀態(tài)有關(guān)系,而系統(tǒng)內(nèi)部通 常有許多記錄的變數(shù)。 p針對這兩大類的系統(tǒng),我們描述他們的方法也不一樣,對于前 者,我們通常使用活動圖來描述,因為活動圖中最重要的部分 是活動的處理控制。 p后者則常用狀態(tài)圖。 45 練習(xí)練習(xí)1: 圖書館中圖書館中“圖書圖書”的狀態(tài)圖的狀態(tài)圖 p圖書狀態(tài)有:訂購、編目、館藏、借

36、出。 46 47 四、活動圖(四、活動圖(Activity Diagram) p活動圖是系統(tǒng)的一種行為視圖,它描述參與行為的對象類的活動圖是系統(tǒng)的一種行為視圖,它描述參與行為的對象類的活動活動的順序,包的順序,包 括依賴于條件的行為和并發(fā)行為。括依賴于條件的行為和并發(fā)行為。 p活動圖演示了系統(tǒng)中的功能流。如:在業(yè)務(wù)模型中顯示業(yè)務(wù)工作流;在收集活動圖演示了系統(tǒng)中的功能流。如:在業(yè)務(wù)模型中顯示業(yè)務(wù)工作流;在收集 需求時顯示一個用例中的事件流等?;顒訄D定義了工作流從哪里開始,到哪需求時顯示一個用例中的事件流等?;顒訄D定義了工作流從哪里開始,到哪 里結(jié)束,工作流中發(fā)生了哪些活動,這些活動按什么順序發(fā)生

37、,活動是由哪里結(jié)束,工作流中發(fā)生了哪些活動,這些活動按什么順序發(fā)生,活動是由哪 些對象來完成的。些對象來完成的。 p活動圖是狀態(tài)圖的一種擴展形式。如果在一個狀態(tài)圖中的大多數(shù)狀態(tài)是表示活動圖是狀態(tài)圖的一種擴展形式。如果在一個狀態(tài)圖中的大多數(shù)狀態(tài)是表示 操作的活動,而轉(zhuǎn)移是自動轉(zhuǎn)移,就演化為活動圖。但兩者有區(qū)別,活動圖操作的活動,而轉(zhuǎn)移是自動轉(zhuǎn)移,就演化為活動圖。但兩者有區(qū)別,活動圖 描述的是響應(yīng)內(nèi)部處理的對象類行為,狀態(tài)圖描述的是對象類響應(yīng)事件的外描述的是響應(yīng)內(nèi)部處理的對象類行為,狀態(tài)圖描述的是對象類響應(yīng)事件的外 部行為。部行為。 48 接受訂貨接受訂貨 填寫訂單填寫訂單 通宵發(fā)貨通宵發(fā)貨常規(guī)發(fā)

38、貨常規(guī)發(fā)貨 寄送貨票寄送貨票 接收付款接收付款 關(guān)閉訂貨關(guān)閉訂貨 快速訂貨快速訂貨否則否則 顧客訂貨處理的活動圖顧客訂貨處理的活動圖 49 主要內(nèi)容主要內(nèi)容 1. 活動圖的組成活動圖的組成 2. 活動分解活動分解 3. 并發(fā)與同步并發(fā)與同步 4. 活動圖的應(yīng)用活動圖的應(yīng)用 50 4.1 活動圖的組成活動圖的組成1 p活動圖的基本圖形元素有:活動圖的基本圖形元素有:動作狀態(tài)(或活動狀態(tài))、轉(zhuǎn)移、泳道、動作狀態(tài)(或活動狀態(tài))、轉(zhuǎn)移、泳道、 對象流、信號。此外,初始狀態(tài)、終結(jié)狀態(tài)、判定、同步等也是常用對象流、信號。此外,初始狀態(tài)、終結(jié)狀態(tài)、判定、同步等也是常用 的圖形元素和符號。的圖形元素和符號。

39、(1)動作狀態(tài):動作狀態(tài):表達不可中斷的動作或操作的執(zhí)行。動作的持續(xù)時間不重要。表達不可中斷的動作或操作的執(zhí)行。動作的持續(xù)時間不重要。 表示方式:圓邊矩形圖框,框內(nèi)可以設(shè)置動作名稱或動作表達式。表示方式:圓邊矩形圖框,框內(nèi)可以設(shè)置動作名稱或動作表達式。 動作狀態(tài)可以有動作狀態(tài)可以有入轉(zhuǎn)移入轉(zhuǎn)移,動作狀態(tài)至少有一條,動作狀態(tài)至少有一條出轉(zhuǎn)移出轉(zhuǎn)移,出轉(zhuǎn)移不是基于外部事,出轉(zhuǎn)移不是基于外部事 件,而是件,而是隱含表示內(nèi)部動作的完成隱含表示內(nèi)部動作的完成。 matrix.invert(tolerance:real) 選擇課程選擇課程 51 4.1 活動圖的組成活動圖的組成2 活動狀態(tài):活動狀態(tài):表達

40、一個非原子的運行。一個活動可以擁有一組不可中斷的動作或表達一個非原子的運行。一個活動可以擁有一組不可中斷的動作或 操作?;顒颖旧砜梢员恢袛啵彝ǔP枰掷m(xù)一個時間段才能完成。用動操作?;顒颖旧砜梢员恢袛?,而且通常需要持續(xù)一個時間段才能完成。用動 作圖標來表示活動狀態(tài)。作圖標來表示活動狀態(tài)。 活動狀態(tài)可以進一步分解,或者用另外一個活動圖來表示。與狀態(tài)圖一樣,活動狀態(tài)可以進一步分解,或者用另外一個活動圖來表示。與狀態(tài)圖一樣, 活動狀態(tài)可以有入口動作和出口動作,也可以有內(nèi)部轉(zhuǎn)移。活動狀態(tài)可以有入口動作和出口動作,也可以有內(nèi)部轉(zhuǎn)移。 注:注:動作狀態(tài)的圖標可以代表一個不可中斷的動作狀態(tài),也可以代表一

41、個可動作狀態(tài)的圖標可以代表一個不可中斷的動作狀態(tài),也可以代表一個可 以被中斷的活動,后者可用另外的活動圖詳細表達。以被中斷的活動,后者可用另外的活動圖詳細表達。 制定計劃制定計劃 制訂計劃制訂計劃 entry / SetGoal() 52 4.1 活動圖的組成活動圖的組成3 (2)轉(zhuǎn)移:轉(zhuǎn)移:在活動圖中轉(zhuǎn)移用實箭線表示,箭線從一個動作出發(fā)指向在活動圖中轉(zhuǎn)移用實箭線表示,箭線從一個動作出發(fā)指向 另一個動作狀態(tài)。轉(zhuǎn)移可以是無條件的,也可以是有條件的。另一個動作狀態(tài)。轉(zhuǎn)移可以是無條件的,也可以是有條件的。 計算所得計算所得 計算所得稅計算所得稅 發(fā)放津貼發(fā)放津貼 else 總所得總所得2000 計算

42、所得計算所得 計算所得稅計算所得稅 發(fā)放津貼發(fā)放津貼 else 總所得總所得2000 53 4.1 活動圖的組成活動圖的組成4 (3)泳道(泳道(Swimlance):):泳道代表對象對活動的責(zé)任。泳道代表對象對活動的責(zé)任。泳道把活動泳道把活動 圖中的活動劃分為若干組,并把這些組指定給對象,這些對象必須履行圖中的活動劃分為若干組,并把這些組指定給對象,這些對象必須履行 該組所包含的活動。泳道是該組所包含的活動。泳道是把活動與對象相聯(lián)系把活動與對象相聯(lián)系的方法之一,它明確表的方法之一,它明確表 示哪些活動由哪些對象進行的。示哪些活動由哪些對象進行的。 在活動圖上泳道用垂直實線畫出,垂直線分隔的區(qū)

43、域就是泳道。在在活動圖上泳道用垂直實線畫出,垂直線分隔的區(qū)域就是泳道。在 泳道的上方給出泳道的名字或?qū)ο竺?,該對象負?zé)泳道內(nèi)的全部活動。泳道的上方給出泳道的名字或?qū)ο竺?,該對象負?zé)泳道內(nèi)的全部活動。 泳道沒有順序,不同泳道中的活動可以是順序進行的,也可以是并發(fā)進泳道沒有順序,不同泳道中的活動可以是順序進行的,也可以是并發(fā)進 行的,允許轉(zhuǎn)移和對象流穿過泳道分隔線。行的,允許轉(zhuǎn)移和對象流穿過泳道分隔線。 填寫訂單填寫訂單 發(fā)貨發(fā)貨 接受訂貨接受訂貨 寄送貨票寄送貨票 關(guān)閉訂貨關(guān)閉訂貨 接收付款接收付款 財務(wù)結(jié)算財務(wù)結(jié)算顧客服務(wù)顧客服務(wù)處理訂貨處理訂貨 泳道示例泳道示例 55 p考慮咨詢公司會見

44、一個新客戶時的業(yè)務(wù)過程?;顒涌赡苓@樣發(fā)生:考慮咨詢公司會見一個新客戶時的業(yè)務(wù)過程?;顒涌赡苓@樣發(fā)生: (1)公司業(yè)務(wù)員打電話給客戶,確定一個約定。)公司業(yè)務(wù)員打電話給客戶,確定一個約定。 (2)如果約定的地點在公司內(nèi),那么公司中的技術(shù)人員就要為會面)如果約定的地點在公司內(nèi),那么公司中的技術(shù)人員就要為會面 準備一間會議室。準備一間會議室。 (3)如果約定地點在公司外,那么咨詢顧問就要用便攜電腦準備一)如果約定地點在公司外,那么咨詢顧問就要用便攜電腦準備一 份陳述報告。份陳述報告。 (4)咨詢顧問與客戶在約定的時間和地點見面。)咨詢顧問與客戶在約定的時間和地點見面。 (5)業(yè)務(wù)員隨后給他們準備好會

45、議用紙。)業(yè)務(wù)員隨后給他們準備好會議用紙。 (6)如果會議產(chǎn)生了一個問題陳述,咨詢顧問就要根據(jù)問題陳述建)如果會議產(chǎn)生了一個問題陳述,咨詢顧問就要根據(jù)問題陳述建 立一個提案并把該提案發(fā)給客戶。立一個提案并把該提案發(fā)給客戶。 在一般情況下,繪制活動圖時應(yīng)先集中注意力在在一般情況下,繪制活動圖時應(yīng)先集中注意力在業(yè)務(wù)工作上或業(yè)務(wù)工作上或 系統(tǒng)的服務(wù)內(nèi)容系統(tǒng)的服務(wù)內(nèi)容上,繪制動作狀態(tài)和轉(zhuǎn)移等,弄清楚系統(tǒng)的總上,繪制動作狀態(tài)和轉(zhuǎn)移等,弄清楚系統(tǒng)的總 體行為含義,而后在繪制泳道,把開展活動的責(zé)任分配到對象。體行為含義,而后在繪制泳道,把開展活動的責(zé)任分配到對象。 Call client and set u

46、p appointment Prepare a conference room Prepare a laptop appointment onsite appointment offsite Meet with the client Send follow-up letter Create proposal statement of problem Send proposal to client no statement of problem 參見參見“創(chuàng)建文創(chuàng)建文 檔檔”活動圖活動圖 業(yè)務(wù)過程業(yè)務(wù)過程“會見新客戶會見新客戶”的活動圖的活動圖 Call client and set up ap

47、pointment Send follow-up letter Prepare a conference room appointment onsite Create proposal Send proposal to client Meet with the client Prepare a laptop appointment offsite 參見參見“創(chuàng)建創(chuàng)建 文檔文檔“活動圖活動圖 statement of problem no statement of problem Corporate Technician Consultant Sale Person 58 4.1 活動圖的組成活

48、動圖的組成5 當活動圖過于復(fù)雜時,繪制泳道可能出現(xiàn)困難,這時可以不用泳道表現(xiàn)活動當活動圖過于復(fù)雜時,繪制泳道可能出現(xiàn)困難,這時可以不用泳道表現(xiàn)活動 與對象的聯(lián)系。替代的方法之一是在活動上貼上對象名標簽,或者改用交互與對象的聯(lián)系。替代的方法之一是在活動上貼上對象名標簽,或者改用交互 圖指定負責(zé)活動的對象。圖指定負責(zé)活動的對象。 (4)對象流(對象流(Object Flow):):對象流是動作狀態(tài)(或活動狀態(tài))與對象之對象流是動作狀態(tài)(或活動狀態(tài))與對象之 間的依賴聯(lián)系,表示動作使用對象或動作對對象的影響。間的依賴聯(lián)系,表示動作使用對象或動作對對象的影響。 在活動圖中在活動圖中對象流用虛箭線表示對

49、象流用虛箭線表示。 虛箭線從動作狀態(tài)出發(fā)指向?qū)ο筇摷€從動作狀態(tài)出發(fā)指向?qū)ο螅罕硎驹搫幼鲃?chuàng)建或更新了對象流所指的對:表示該動作創(chuàng)建或更新了對象流所指的對 象,該對象是動作的輸出。象,該對象是動作的輸出。 虛箭線從對象出發(fā)指向動作狀態(tài):表示該動作使用對象流所指的對象,該對虛箭線從對象出發(fā)指向動作狀態(tài):表示該動作使用對象流所指的對象,該對 象是動作的輸入。象是動作的輸入。 59 按名找資源按名找資源 按名找技能按名找技能 指定技能給資源指定技能給資源 R : 資源資源 S : 技能技能 R-S: 資源資源-技能技能 把技能指定給資源的活動圖把技能指定給資源的活動圖 資源中已指定技能資源中已指定技能

50、 資源中未指定技能資源中未指定技能 60 4.1 活動圖的組成活動圖的組成6 (5)信號事件(信號事件(Signal Event):):在活動圖中,可以使用信號發(fā)送在活動圖中,可以使用信號發(fā)送 構(gòu)造型圖標和信號接收構(gòu)造型圖標表示信號事件。發(fā)送信號圖標是凸構(gòu)造型圖標和信號接收構(gòu)造型圖標表示信號事件。發(fā)送信號圖標是凸 角五邊形,接收信號圖標是凹角五邊形。當信號被接收時,會引起一角五邊形,接收信號圖標是凹角五邊形。當信號被接收時,會引起一 個活動的發(fā)生。個活動的發(fā)生。 P124 Press Channel Number Watch Change(channel) Show New Channel T

51、elevision Change(channel) 61 4.2 活動分解活動分解 p一個活動可以分解為若干個子活動或動作,這些子活動或一個活動可以分解為若干個子活動或動作,這些子活動或 動作本身組成一個活動圖。動作本身組成一個活動圖。 p如果一個活動內(nèi)嵌套了若干個活動或動作,則稱該活動為如果一個活動內(nèi)嵌套了若干個活動或動作,則稱該活動為 組合活動,其中的被嵌套的活動稱為子活動。組合活動,其中的被嵌套的活動稱為子活動。 p使用活動分解的好處是,在高一層的活動圖中只需要給出使用活動分解的好處是,在高一層的活動圖中只需要給出 組合活動,不必涉及子活動圖的內(nèi)容,組合活動的內(nèi)部行組合活動,不必涉及子活

52、動圖的內(nèi)容,組合活動的內(nèi)部行 為可以在低一層的活動圖中表示,這樣便于抓住主要問題,為可以在低一層的活動圖中表示,這樣便于抓住主要問題, 使得圖形更為簡潔明了。使得圖形更為簡潔明了。 接受訂貨接受訂貨 填寫訂單填寫訂單 發(fā)貨發(fā)貨 ?通宵發(fā)貨通宵發(fā)貨常規(guī)發(fā)貨常規(guī)發(fā)貨 寄送貨票寄送貨票 接收付款接收付款 關(guān)閉訂貨關(guān)閉訂貨 緊急訂貨緊急訂貨否則否則 組合活動示例組合活動示例 63 使用使用Office軟件包建立一個文檔的過程。一個活動軟件包建立一個文檔的過程。一個活動 序列可能如下:序列可能如下: (1)打開)打開Word處理軟件包。處理軟件包。 (2)創(chuàng)建一個文檔。)創(chuàng)建一個文檔。 (3)命名該文檔

53、并為該文檔指定一個存放目錄。)命名該文檔并為該文檔指定一個存放目錄。 (4)鍵入文檔的內(nèi)容。)鍵入文檔的內(nèi)容。 (5)如果文檔中需要圖形,則打開圖形軟件包,創(chuàng)建圖形,將圖形粘)如果文檔中需要圖形,則打開圖形軟件包,創(chuàng)建圖形,將圖形粘 貼到文檔中。貼到文檔中。 (6)如果文檔中需要電子表格,則打開電子表格軟件包,建立電子表)如果文檔中需要電子表格,則打開電子表格軟件包,建立電子表 格,將電子表格粘貼到文檔中。格,將電子表格粘貼到文檔中。 (7)保存該文件。)保存該文件。 (8)打印一份該文檔的硬拷貝。)打印一份該文檔的硬拷貝。 (9)退出)退出Office軟件包。軟件包。 tables no n

54、eeded Open Word Processing Package Create File Save File Type the Document Open and Use Graphing Package Open and Use Spreadsheet Save the File Print Hard Copy Exit Office Suite graphics needed graphics no needed tables needed 一個文檔創(chuàng)建過程的活動圖一個文檔創(chuàng)建過程的活動圖 print(file) print(file) :Printer Print 未完成未完成 已完

55、成已完成 65 4.3 并發(fā)與同步并發(fā)與同步 p在活動圖中用在活動圖中用“分劈分劈”(Fork)和和“接合接合”(Join)來表達并發(fā)和同步行來表達并發(fā)和同步行 為。為。 “分劈分劈”和和“接合接合”均用同步桿(均用同步桿(Synchronization bar)表示。表示。 p對于對于“接合接合”的同步的規(guī)則:的同步的規(guī)則: 只有當所有的入轉(zhuǎn)移全部只有當所有的入轉(zhuǎn)移全部 完成其活動后才發(fā)生出轉(zhuǎn)完成其活動后才發(fā)生出轉(zhuǎn) 移??捎幸环N例外情況,移??捎幸环N例外情況, 就是條件線程就是條件線程 (Conditional Thread),), 條件線程是從一個條件線程是從一個“分劈分劈” 發(fā)出的線程上

56、加上條件,發(fā)出的線程上加上條件, 在執(zhí)行時,如果該線程在執(zhí)行時,如果該線程 的條件取值為的條件取值為“假假”,則就,則就 “接合接合”而論認為該線程已經(jīng)完成。而論認為該線程已經(jīng)完成。 享用晚餐享用晚餐 烹調(diào)菜肴烹調(diào)菜肴煮飯煮飯 安排餐桌安排餐桌 打開啤酒打開啤酒 想喝酒想喝酒 砌筑基礎(chǔ)砌筑基礎(chǔ) 主體結(jié)構(gòu)主體結(jié)構(gòu)水電準備水電準備 安裝門窗安裝門窗 鋪設(shè)室內(nèi)管道鋪設(shè)室內(nèi)管道 室內(nèi)裝修室內(nèi)裝修 安裝水電設(shè)備安裝水電設(shè)備 竣工驗收竣工驗收 活動的同步狀態(tài)示例活動的同步狀態(tài)示例 67 3.4.4 并發(fā)子狀態(tài)并發(fā)子狀態(tài)同步同步 p在并發(fā)狀態(tài)圖中一個子狀態(tài)圖中在并發(fā)狀態(tài)圖中一個子狀態(tài)圖中 的子狀態(tài),常常需要

57、與另一個子的子狀態(tài),常常需要與另一個子 狀態(tài)圖中的子狀態(tài)的行為同步。狀態(tài)圖中的子狀態(tài)的行為同步。 在在UML中使用同步狀態(tài)表示這中使用同步狀態(tài)表示這 種情況。種情況。 p并發(fā)子狀態(tài)之間的同步狀態(tài)用含并發(fā)子狀態(tài)之間的同步狀態(tài)用含 “*”的小圓表示(偽狀態(tài)),放的小圓表示(偽狀態(tài)),放 在分隔子狀態(tài)的虛線上。在分隔子狀態(tài)的虛線上。 p例:例:建筑住宅的并發(fā)狀態(tài)圖建筑住宅的并發(fā)狀態(tài)圖。 其中有二個子狀態(tài)圖,分別其中有二個子狀態(tài)圖,分別 代表主體工程施工和水電工程代表主體工程施工和水電工程 施工,它們是并行進行的。施工,它們是并行進行的。 砌筑基礎(chǔ)砌筑基礎(chǔ) 鋪設(shè)鋪設(shè) 室內(nèi)管線室內(nèi)管線 安裝安裝 水電設(shè)

58、備水電設(shè)備 主體結(jié)構(gòu)主體結(jié)構(gòu)水電準備水電準備 安裝門框安裝門框 室內(nèi)裝修室內(nèi)裝修 竣工驗收竣工驗收 * * Time Event 68 A time event with an incoming edge represents a timeout A time event with no incoming flows models a repeating time event Calling Other Activities 69 Rather than cluttering up the top-level diagram with details of the Prepare Mother

59、board action, details are provided in another activity diagram Objects - Showing Objects Passed Between Actions 70 The Order object node emphasizes that it is important data in this activity and shows which actions interact with it P125 Objects-Showing Action Inputs and Outputs 71 Pins in this chang

60、e request approval process allow finer- grained specification of input and output parameters Transformations show where input parameters come from, only part of Order needed Objects-Showing How Objects Change State During an Activity 72 The focus of this diagram is the change of state of the Order o

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論