版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第8章章 狀態(tài)圖和活動圖狀態(tài)圖和活動圖 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計 status類型為枚舉類型為枚舉(Received, InInspection, Accepted, Rejected) 則應(yīng)根據(jù)屬性則應(yīng)根據(jù)屬性status建立狀態(tài)圖建立狀態(tài)圖. 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計 包含子狀態(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) 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計 事件相同但警戒條件互斥事件相同但警戒條件互斥. 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML27 8.2.4 轉(zhuǎn)移轉(zhuǎn)移
2、下面的示例演示了銀行帳戶中的轉(zhuǎn)移及其有效狀態(tài),如下圖下面的示例演示了銀行帳戶中的轉(zhuǎn)移及其有效狀態(tài),如下圖 所示。所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML28 8.2.4 轉(zhuǎn)移轉(zhuǎn)移 決策點決策點 決策點在建模狀態(tài)圖時提供了方便,因為它通過在中心位決策點在建模狀態(tài)圖時提供了方便,因為它通過在中心位 置分組轉(zhuǎn)移到各自的方向,從而提高了狀態(tài)圖的可視性,如下置分組轉(zhuǎn)移到各自的方向,從而提高了狀態(tài)圖的可視性,如下 圖所示。圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML29 8.2.4 轉(zhuǎn)移轉(zhuǎn)移 同步同步 狀態(tài)圖中使用同步條是為了說明并發(fā)工作流的狀態(tài)圖中使用同步條是為了說明并發(fā)工作流的分
3、叉分叉與與聯(lián)合聯(lián)合。 下圖所示為同步條的標(biāo)記符。下圖所示為同步條的標(biāo)記符。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML30 8.2.4 轉(zhuǎn)移轉(zhuǎn)移 條件條件用來描述狀態(tài)轉(zhuǎn)移的前提。用來描述狀態(tài)轉(zhuǎn)移的前提。事件事件用來指示什么觸發(fā)了轉(zhuǎn)用來指示什么觸發(fā)了轉(zhuǎn) 移,移,動作動作用來說明當(dāng)轉(zhuǎn)移發(fā)生時會產(chǎn)生什么情況。事件、條件用來說明當(dāng)轉(zhuǎn)移發(fā)生時會產(chǎn)生什么情況。事件、條件 和動作是轉(zhuǎn)移的三個選項,其定義格式見下圖所示。和動作是轉(zhuǎn)移的三個選項,其定義格式見下圖所示。 該圖描述的信息是該圖描述的信息是“如果如果guardConditionguardCondition為為truetrue,當(dāng),當(dāng) anEvent
4、anEvent發(fā)生時,將執(zhí)行發(fā)生時,將執(zhí)行anActionanAction,并立即進入狀態(tài),并立即進入狀態(tài)B”B” 事件事件 條件條件 動作動作 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML31 8.2.5 事件事件 事件通常在從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)移路徑上直接指事件通常在從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)移路徑上直接指 定。事件用來指示是什么導(dǎo)致了模型中狀態(tài)的改變。下圖演示定。事件用來指示是什么導(dǎo)致了模型中狀態(tài)的改變。下圖演示 了電話卡事件的標(biāo)記符。了電話卡事件的標(biāo)記符。 事件事件 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML32 8.2.5 事件事件 事件是對一個在時間和空間上占有一定位置的有
5、意義事件是對一個在時間和空間上占有一定位置的有意義 的事情的詳細說明的事情的詳細說明. (1) 調(diào)用事件調(diào)用事件, 表示對操作的調(diào)用表示對操作的調(diào)用. 問題問題: 調(diào)用誰的操作調(diào)用誰的操作? 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML33 8.2.5 事件事件 (2) 變化事件變化事件, 表示某布爾表達式值變化表示某布爾表達式值變化, 引起的事件引起的事件. 注意注意: 變化事件與警戒條件區(qū)別變化事件與警戒條件區(qū)別 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML34 8.2.5 事件事件 (3) 時間事件時間事件, 表示滿足某一時間表達式表示滿足某一時間表達式, 引起的事件引起的事件. (4)
6、 信號事件信號事件, 表示對象接收到某信號的事件表示對象接收到某信號的事件. 信號是對象之間異步發(fā)送信號是對象之間異步發(fā)送/接收的接收的, 它們之間可以形它們之間可以形 成泛化關(guān)系成泛化關(guān)系. 信號事件與調(diào)用事件類似信號事件與調(diào)用事件類似, 是異步和同步的區(qū)別是異步和同步的區(qū)別. 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML35 8.2.6 動作動作 動作說明了當(dāng)事件發(fā)生時發(fā)生了什么行為。動作說明了當(dāng)事件發(fā)生時發(fā)生了什么行為。 EventEvent類型的動作示例如類型的動作示例如 右圖右圖. .這個示例說明了只這個示例說明了只 要要ResetUsersResetUsers事件傳遞事件傳遞 的所
7、有用戶都沒有打開,的所有用戶都沒有打開, 他們就會被全部刪除。他們就會被全部刪除。 動作動作 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML36 8.2.6 動作動作 動作是一個可執(zhí)行的原子計算動作是一個可執(zhí)行的原子計算. UML中沒有規(guī)定動作的中沒有規(guī)定動作的 具體語法形式具體語法形式, 采用程序設(shè)計的語言語法即可采用程序設(shè)計的語言語法即可. 兩種特殊動作兩種特殊動作: 進入動作進入動作: entry / action-expression 退出動作退出動作: exit / action-expression 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML37 8.2.7 條件條件 條件說明狀態(tài)
8、轉(zhuǎn)移必須要滿足的前提。條件一般為一個布爾條件說明狀態(tài)轉(zhuǎn)移必須要滿足的前提。條件一般為一個布爾 表達式。如下圖所示。表達式。如下圖所示。 條件條件 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML38 8.2.8 狀態(tài)圖狀態(tài)圖- 復(fù)雜轉(zhuǎn)換復(fù)雜轉(zhuǎn)換 轉(zhuǎn)換類型轉(zhuǎn)換類型描述描述語法語法 外部轉(zhuǎn)換外部轉(zhuǎn)換 對事件做出響應(yīng),引起狀態(tài)變化對事件做出響應(yīng),引起狀態(tài)變化 或自身轉(zhuǎn)換,同時引發(fā)一個特定或自身轉(zhuǎn)換,同時引發(fā)一個特定 動作,如果離開或進入狀態(tài)將引動作,如果離開或進入狀態(tài)將引 發(fā)進入轉(zhuǎn)換、離開轉(zhuǎn)換發(fā)進入轉(zhuǎn)換、離開轉(zhuǎn)換 事件事件(參數(shù)參數(shù))監(jiān)護條件監(jiān)護條件/動動 作作 內(nèi)部轉(zhuǎn)換內(nèi)部轉(zhuǎn)換 對事件做出響應(yīng),并執(zhí)行
9、一個特對事件做出響應(yīng),并執(zhí)行一個特 定的活動,但并不引起狀態(tài)變化定的活動,但并不引起狀態(tài)變化 或進入轉(zhuǎn)換、離開轉(zhuǎn)換或進入轉(zhuǎn)換、離開轉(zhuǎn)換 事件事件(參數(shù)參數(shù))監(jiān)護條件監(jiān)護條件/動動 作作 進入轉(zhuǎn)換進入轉(zhuǎn)換 當(dāng)進入某一狀態(tài)時,執(zhí)行相應(yīng)活當(dāng)進入某一狀態(tài)時,執(zhí)行相應(yīng)活 動動 entry/活動活動 退出轉(zhuǎn)換退出轉(zhuǎn)換 當(dāng)離開某一狀態(tài)時,執(zhí)行相應(yīng)活當(dāng)離開某一狀態(tài)時,執(zhí)行相應(yīng)活 動動 exit/活動活動 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML39 8.2.8 狀態(tài)圖狀態(tài)圖- 復(fù)雜轉(zhuǎn)換復(fù)雜轉(zhuǎn)換 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML40 8.2.8 狀態(tài)圖狀態(tài)圖- 復(fù)雜轉(zhuǎn)換復(fù)雜轉(zhuǎn)換 進入和退出轉(zhuǎn)換:
10、當(dāng)進入一個狀態(tài)時,執(zhí)行某個動作;進入和退出轉(zhuǎn)換:當(dāng)進入一個狀態(tài)時,執(zhí)行某個動作; 或當(dāng)退出某個狀態(tài)時,執(zhí)行什么動作。這時就可以使用或當(dāng)退出某個狀態(tài)時,執(zhí)行什么動作。這時就可以使用 進入和退出轉(zhuǎn)換來表示進入和退出轉(zhuǎn)換來表示 內(nèi)部轉(zhuǎn)換:用來處理一些不離開該狀態(tài)的事件內(nèi)部轉(zhuǎn)換:用來處理一些不離開該狀態(tài)的事件 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML41 8.3.1 狀態(tài)圖的閱讀狀態(tài)圖的閱讀 最為核心的元素?zé)o外乎是兩個:一個是用圓角矩形表示最為核心的元素?zé)o外乎是兩個:一個是用圓角矩形表示 的狀態(tài)(初態(tài)和終態(tài)例外);另一個則是在狀態(tài)之間的、的狀態(tài)(初態(tài)和終態(tài)例外);另一個則是在狀態(tài)之間的、 包含一些
11、文字描述的有向箭頭線,這些箭頭線稱為轉(zhuǎn)換包含一些文字描述的有向箭頭線,這些箭頭線稱為轉(zhuǎn)換 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML42 8.3.1 狀態(tài)圖的閱讀狀態(tài)圖的閱讀 源狀態(tài):即受轉(zhuǎn)換影響的狀態(tài)源狀態(tài):即受轉(zhuǎn)換影響的狀態(tài) 目標(biāo)狀態(tài):當(dāng)轉(zhuǎn)換完成后對象的狀態(tài)目標(biāo)狀態(tài):當(dāng)轉(zhuǎn)換完成后對象的狀態(tài) 觸發(fā)事件:用來為轉(zhuǎn)換定義一個事件,包括調(diào)用、改變、觸發(fā)事件:用來為轉(zhuǎn)換定義一個事件,包括調(diào)用、改變、 信號、時間四類事件信號、時間四類事件 監(jiān)護條件:布爾表達式,決定是否激活轉(zhuǎn)換、監(jiān)護條件:布爾表達式,決定是否激活轉(zhuǎn)換、 動作:轉(zhuǎn)換激活時的操作動作:轉(zhuǎn)換激活時的操作 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)
12、計&UML43 8.3.1 狀態(tài)圖的閱讀狀態(tài)圖的閱讀 與狀態(tài)與狀態(tài)off相關(guān)的轉(zhuǎn)換有兩個,其觸發(fā)事件都是相關(guān)的轉(zhuǎn)換有兩個,其觸發(fā)事件都是turnOn, 只不過其監(jiān)護條件不同。如果對象收到事件只不過其監(jiān)護條件不同。如果對象收到事件turnOn,那,那 么將判斷壺中是否有水;如果么將判斷壺中是否有水;如果沒水沒水,則仍然處于,則仍然處于off狀狀 態(tài);如果態(tài);如果有水有水則轉(zhuǎn)為則轉(zhuǎn)為on狀態(tài),并執(zhí)行狀態(tài),并執(zhí)行“燒水燒水”動作動作 而與狀態(tài)而與狀態(tài)on相關(guān)的轉(zhuǎn)換也有兩個,如果相關(guān)的轉(zhuǎn)換也有兩個,如果“水開了水開了”就執(zhí)就執(zhí) 行行turnOff,關(guān)掉開關(guān);如果燒壞了,就進入了終態(tài)了,關(guān)掉開關(guān);如果燒
13、壞了,就進入了終態(tài)了 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML44 8.3.1 狀態(tài)圖狀態(tài)圖 練習(xí):練習(xí): 閱讀一個電梯系統(tǒng)的狀態(tài)圖閱讀一個電梯系統(tǒng)的狀態(tài)圖 步驟步驟: : 1 1)標(biāo)識出狀態(tài)。)標(biāo)識出狀態(tài)。 2 2)標(biāo)識出轉(zhuǎn)移。)標(biāo)識出轉(zhuǎn)移。 3 3)標(biāo)識出事件和動作。)標(biāo)識出事件和動作。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML45 8.2.1 狀態(tài)狀態(tài) 8.2.1 狀態(tài)狀態(tài) 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML46 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 狀態(tài)圖建模需要執(zhí)行以下步驟:狀態(tài)圖建模需要執(zhí)行以下步驟: 1 1)標(biāo)識出需要進一步建模的實體。)標(biāo)識出需要進一步
14、建模的實體。 2 2)標(biāo)識出每一個實體的開始狀態(tài)和結(jié)束狀態(tài)。)標(biāo)識出每一個實體的開始狀態(tài)和結(jié)束狀態(tài)。 3 3)確定與每一個實體相關(guān)的事件。)確定與每一個實體相關(guān)的事件。 4 4)從起始狀態(tài)開始創(chuàng)建狀態(tài)圖。)從起始狀態(tài)開始創(chuàng)建狀態(tài)圖。 5 5)如果必要則創(chuàng)建組合狀態(tài)。)如果必要則創(chuàng)建組合狀態(tài)。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML47 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 1標(biāo)識出需要進一步建模的實體 首先要標(biāo)識出哪些實體需要使用狀態(tài)圖進一步建模。狀態(tài) 圖應(yīng)該用于復(fù)雜的實體,而不必用于具有復(fù)雜行為的實體。 對于有復(fù)雜行為的實體,使用活動圖可能會更加適合。具有 清晰、有序的狀態(tài)實體
15、最適合使用狀態(tài)圖進一步建模。后面 將會建模一個Grade對象,尤其是它的保存功能。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML48 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 2標(biāo)識出每一個實體的開始和結(jié)束狀態(tài) 要想標(biāo)識出某個實體的開始狀態(tài),需要知道實體是如何實例 化的,以及實體是如何開始的。Grade對象在有了一個新的分?jǐn)?shù) 需要保存時實例化。要想標(biāo)識出某個實體的結(jié)束狀態(tài),需要知 道相反的信息:實體何時從系統(tǒng)中退出?Grade對象在完成保存 數(shù)據(jù)的操作之后退出系統(tǒng),不管該操作是否成功。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML49 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 因此,因
16、此,Grade對象的狀態(tài)圖具有如下描述保存功對象的狀態(tài)圖具有如下描述保存功 能的開始狀態(tài)和結(jié)束狀態(tài):能的開始狀態(tài)和結(jié)束狀態(tài): Information Entered 開始狀態(tài)。開始狀態(tài)。 Destroy 結(jié)束狀態(tài)。結(jié)束狀態(tài)。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML50 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 3 3確定與每一個實體相關(guān)的事件確定與每一個實體相關(guān)的事件 事件用來最終完成實體的功能。要想確定實體的事件,需要事件用來最終完成實體的功能。要想確定實體的事件,需要 知道事件的任務(wù)。對于知道事件的任務(wù)。對于GradeGrade對象,它的任務(wù)是保存分?jǐn)?shù)。進一對象,它的任務(wù)是保存分
17、數(shù)。進一 步了解事件的任務(wù)之后,就可以確定步了解事件的任務(wù)之后,就可以確定GradeGrade對象的事件包括接受對象的事件包括接受 數(shù)據(jù)、成功地保存數(shù)據(jù)和不成功地保存數(shù)據(jù)。數(shù)據(jù)、成功地保存數(shù)據(jù)和不成功地保存數(shù)據(jù)。 有了這些事件之后,就可以為有了這些事件之后,就可以為GradeGrade對象創(chuàng)建這些事件的狀對象創(chuàng)建這些事件的狀 態(tài)列表,如下所示:態(tài)列表,如下所示: Ready Ready 用于數(shù)據(jù)加載時。用于數(shù)據(jù)加載時。 Persisting Persisting 用于數(shù)據(jù)保存時。用于數(shù)據(jù)保存時。 Saved Saved 用于數(shù)據(jù)已經(jīng)保存后。用于數(shù)據(jù)已經(jīng)保存后。 Error Error 用于數(shù)據(jù)
18、由于出錯而未成功保存時。用于數(shù)據(jù)由于出錯而未成功保存時。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML51 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 4 4從開始狀態(tài)開始創(chuàng)建從開始狀態(tài)開始創(chuàng)建 狀態(tài)圖狀態(tài)圖 利用上述的信息,我利用上述的信息,我 們就可以創(chuàng)建一個簡單們就可以創(chuàng)建一個簡單 的狀態(tài)圖來描述的狀態(tài)圖來描述GradeGrade對對 象的不同狀態(tài),以及觸象的不同狀態(tài),以及觸 發(fā)狀態(tài)改變的事件,如發(fā)狀態(tài)改變的事件,如 下圖所示。下圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML52 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 5 5如果必要則指定合成狀態(tài)如果必要則指定合成狀態(tài)
19、創(chuàng)建狀態(tài)圖的第一步工作完成之后,可以檢查一下是否創(chuàng)建狀態(tài)圖的第一步工作完成之后,可以檢查一下是否 需要通過創(chuàng)建合成狀態(tài)來進一步修飾某些狀態(tài)。需要通過創(chuàng)建合成狀態(tài)來進一步修飾某些狀態(tài)。 在本例中,我們認(rèn)為在本例中,我們認(rèn)為PersistingPersisting狀態(tài)過于籠統(tǒng),因此可狀態(tài)過于籠統(tǒng),因此可 以為其提供子狀態(tài),其中包括以為其提供子狀態(tài),其中包括LoadLoad、UpdateUpdate和和SaveSave,或者只,或者只 包括包括InsertInsert,如下圖所示。,如下圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML53 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 面向?qū)ο?/p>
20、分析與設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML54 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 例:航班機票預(yù)訂系統(tǒng)例:航班機票預(yù)訂系統(tǒng) 尋找主要狀態(tài):對于航班機票預(yù)訂系統(tǒng)而言,顯然包括尋找主要狀態(tài):對于航班機票預(yù)訂系統(tǒng)而言,顯然包括 的狀態(tài)主要有的狀態(tài)主要有 - 在剛確定飛機計劃時,顯然是沒有任何預(yù)訂的,并在剛確定飛機計劃時,顯然是沒有任何預(yù)訂的,并 且在有人預(yù)訂機票之前都將處于這種且在有人預(yù)訂機票之前都將處于這種“無預(yù)訂無預(yù)訂”狀態(tài)狀態(tài) - 對訂座而言顯然有對訂座而言顯然有“部分預(yù)訂部分預(yù)訂”和和“預(yù)訂完預(yù)訂完”兩種兩種 狀態(tài)狀態(tài) - 而當(dāng)航班快要起飛時,顯然要而當(dāng)航班快要起飛時,顯然要“預(yù)訂關(guān)閉
21、預(yù)訂關(guān)閉” 總結(jié)一下,主要有四種狀態(tài):無預(yù)訂、部分預(yù)訂、預(yù)訂總結(jié)一下,主要有四種狀態(tài):無預(yù)訂、部分預(yù)訂、預(yù)訂 完以及預(yù)訂關(guān)閉完以及預(yù)訂關(guān)閉 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML55 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 確定狀態(tài)間轉(zhuǎn)換確定狀態(tài)間轉(zhuǎn)換 源目標(biāo)源目標(biāo)無預(yù)訂無預(yù)訂部分預(yù)訂部分預(yù)訂預(yù)訂完預(yù)訂完預(yù)訂關(guān)閉預(yù)訂關(guān)閉 無預(yù)訂無預(yù)訂預(yù)訂預(yù)訂()不直接轉(zhuǎn)換不直接轉(zhuǎn)換關(guān)閉關(guān)閉() 部分預(yù)訂部分預(yù)訂退訂退訂(),使預(yù)訂人使預(yù)訂人=0預(yù)訂預(yù)訂(),無空座無空座關(guān)閉關(guān)閉() 預(yù)訂完預(yù)訂完不直接轉(zhuǎn)換不直接轉(zhuǎn)換退訂退訂()關(guān)閉關(guān)閉() 預(yù)訂關(guān)閉預(yù)訂關(guān)閉無轉(zhuǎn)換無轉(zhuǎn)換無轉(zhuǎn)換無轉(zhuǎn)換無轉(zhuǎn)換無轉(zhuǎn)換 面向
22、對象分析與設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML56 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 細化狀態(tài)內(nèi)的活動與轉(zhuǎn)換細化狀態(tài)內(nèi)的活動與轉(zhuǎn)換 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML57 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 使用復(fù)合狀態(tài)使用復(fù)合狀態(tài) 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML58 8.3.2 狀態(tài)圖的建模方法狀態(tài)圖的建模方法 練習(xí):練習(xí): 建模航班狀態(tài)圖建模航班狀態(tài)圖 創(chuàng)建一個狀態(tài)圖來描述航班如何從提出申請、創(chuàng)建一個狀態(tài)圖來描述航班如何從提出申請、 制定航班計劃、售票、起飛、飛行、到著陸的狀態(tài)制定航班計劃、售票、起飛、飛行、到著陸的狀態(tài) 過程。過程。 練習(xí)步驟;練習(xí)
23、步驟; 1 1)標(biāo)識出要建模的實體。)標(biāo)識出要建模的實體。 2 2)標(biāo)識出實體的狀態(tài)。)標(biāo)識出實體的狀態(tài)。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML59 航班申請 航班計劃 entry/ 發(fā)布航班信息 do/ 檢查當(dāng)前日期 批準(zhǔn)航班計劃 不允許申請 航班還有票 航班票 售完 結(jié)束售 票 飛行 準(zhǔn)時到達目的 機場 延時到達 目的機場 售票/退票 開始預(yù)售 售最后一張票 起飛前30分鐘 退票 起飛前30分鐘 起飛 天氣非正常 天氣正常 降落 降落 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML60 8.4 什么是活動圖什么是活動圖 活動圖是一種用于描述系統(tǒng)行為的模型視圖,它可用活動圖是一種用于描
24、述系統(tǒng)行為的模型視圖,它可用 來描述過程(業(yè)務(wù)過程、工作流、事件流等)中的活動及來描述過程(業(yè)務(wù)過程、工作流、事件流等)中的活動及 其遷移。其遷移。 活動圖的標(biāo)記符與狀態(tài)圖的標(biāo)記符非常相似,有時會活動圖的標(biāo)記符與狀態(tài)圖的標(biāo)記符非常相似,有時會 讓人混淆。其實,讓人混淆。其實,狀態(tài)圖狀態(tài)圖用來表示用來表示單個對象單個對象的行為如何改的行為如何改 變其狀態(tài)。而變其狀態(tài)。而活動圖活動圖是用來建模是用來建模不同區(qū)域不同區(qū)域的工作如何彼此的工作如何彼此 交互。交互。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML61 8.4 什么是活動圖什么是活動圖 活動圖能夠附加在如下建模元素中以描述該活動圖能夠附加在
25、如下建模元素中以描述該 元素的行為。元素的行為。 用例用例 類類 接口接口 組件組件 節(jié)點節(jié)點 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML62 8.4 活動圖的用途活動圖的用途 活動圖的主要應(yīng)用活動圖的主要應(yīng)用 1.1.描述用例的行為描述用例的行為 活動圖對用例描述尤其有用,它可建模用例的活動圖對用例描述尤其有用,它可建模用例的 工作流,顯示用例內(nèi)部和用例之間的路徑;它也可工作流,顯示用例內(nèi)部和用例之間的路徑;它也可 以向讀者說明需要滿足什么條件用例才會有效,以以向讀者說明需要滿足什么條件用例才會有效,以 及用例完成后系統(tǒng)保留的條件或者狀態(tài)。及用例完成后系統(tǒng)保留的條件或者狀態(tài)。 面向?qū)ο蠓治?/p>
26、與設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML63 8.4 活動圖的用途活動圖的用途 2 2理解工作流程理解工作流程 活動圖對理解業(yè)務(wù)處理過程十分有用??梢援嫵龌顒訄D對理解業(yè)務(wù)處理過程十分有用??梢援嫵?描述業(yè)務(wù)工作流的活動圖與領(lǐng)域?qū)<疫M行交流,明確描述業(yè)務(wù)工作流的活動圖與領(lǐng)域?qū)<疫M行交流,明確 業(yè)務(wù)處理操作是如何進行的,將會有怎樣的變化。業(yè)務(wù)處理操作是如何進行的,將會有怎樣的變化。 3 3描述復(fù)雜過程的算法描述復(fù)雜過程的算法 在這種情況下使用的活動圖不過是在這種情況下使用的活動圖不過是UMLUML版的程序流版的程序流 程圖,常規(guī)的順序、分支過程在活動圖中都能得到充程圖,常規(guī)的順序、分支過程在活動圖中都能得
27、到充 分的表現(xiàn)。分的表現(xiàn)。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML64 8.5 活動圖的基本概念活動圖的基本概念 活動圖保留了許多傳統(tǒng)的流活動圖保留了許多傳統(tǒng)的流 程圖的特征,它包含如下元素。程圖的特征,它包含如下元素。 活動活動 操作操作 狀態(tài)狀態(tài) 轉(zhuǎn)移轉(zhuǎn)移 對象流對象流 分叉與分叉與聯(lián)結(jié)聯(lián)結(jié) (匯合)(匯合) 決策決策 (分支分支) 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML65 8.5 活動圖的基本概念活動圖的基本概念 1.1. 活動活動 活動在活動圖中,用來指示要完成某項工作的動作活動在活動圖中,用來指示要完成某項工作的動作 或表示工作流的步驟。其或表示工作流的步驟。其UMLU
28、ML標(biāo)記符是一個帶有圓角標(biāo)記符是一個帶有圓角 的矩形,如下圖所示。的矩形,如下圖所示。 在確定活動名稱時應(yīng)該恰當(dāng)?shù)孛?,選擇準(zhǔn)確描在確定活動名稱時應(yīng)該恰當(dāng)?shù)孛?,選擇準(zhǔn)確描 述所發(fā)生動作的幾個詞。例如,述所發(fā)生動作的幾個詞。例如,Save FileSave File或者或者 Create New DocumentCreate New Document就是比較恰當(dāng)?shù)幕顒用Q,而就是比較恰當(dāng)?shù)幕顒用Q,而 RunRun或者或者Update Update 對讀者而言是不完整的名稱。對讀者而言是不完整的名稱。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML66 8.5 活動圖的基本概念活動圖的基本概念
29、2. 操作 可以用操作在活動中增加更多詳細的步驟。可以用操作在活動中增加更多詳細的步驟。操作操作是活動中執(zhí)是活動中執(zhí) 行的小步驟。在下列情況下發(fā)生:行的小步驟。在下列情況下發(fā)生: 進入活動時發(fā)生的操作,標(biāo)有進入活動時發(fā)生的操作,標(biāo)有entryentry字樣。字樣。 活動進行時發(fā)生的操作,直到離開活動,標(biāo)有活動進行時發(fā)生的操作,直到離開活動,標(biāo)有dodo字樣。字樣。 離開活動時發(fā)生的操作,標(biāo)有離開活動時發(fā)生的操作,標(biāo)有exitexit字樣。字樣。 特定事件發(fā)生時的操作,標(biāo)有特定事件發(fā)生時的操作,標(biāo)有eventevent字樣和事件名。字樣和事件名。 操作是可選的,但提供的詳細信息有助于后面完成系統(tǒng)
30、設(shè)計。操作是可選的,但提供的詳細信息有助于后面完成系統(tǒng)設(shè)計。 如果包括操作,則其在活動內(nèi)顯示,不管其屬于上面哪一類。下如果包括操作,則其在活動內(nèi)顯示,不管其屬于上面哪一類。下 面是帶操作的活動例子。面是帶操作的活動例子。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML67 8.5 活動圖的基本概念活動圖的基本概念 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML68 8.5 活動圖的基本概念活動圖的基本概念 3. 3. 狀態(tài)狀態(tài) 狀態(tài)的標(biāo)記符與活動類似,也是帶圓角的矩形,但狀態(tài)的狀態(tài)的標(biāo)記符與活動類似,也是帶圓角的矩形,但狀態(tài)的 圓角比較小,如下圖所示。圓角比較小,如下圖所示。 狀態(tài)通常使用一個指示
31、系統(tǒng)當(dāng)前狀態(tài)的單詞或者短語來標(biāo)狀態(tài)通常使用一個指示系統(tǒng)當(dāng)前狀態(tài)的單詞或者短語來標(biāo) 識。例如,識。例如,StoppedStopped是一個狀態(tài),而是一個狀態(tài),而stopstop則是一個活動。則是一個活動。 UMLUML包含兩個特殊狀態(tài),即開始狀態(tài)和結(jié)束狀態(tài)。開始包含兩個特殊狀態(tài),即開始狀態(tài)和結(jié)束狀態(tài)。開始 狀態(tài)以實心黑點表示,結(jié)束狀態(tài)以帶有圓圈的實心黑點表示。狀態(tài)以實心黑點表示,結(jié)束狀態(tài)以帶有圓圈的實心黑點表示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML69 8.5 活動圖的基本概念活動圖的基本概念 注意:每一個活動圖注意:每一個活動圖只能有一個開始狀態(tài)只能有一個開始狀態(tài),但是可但是可 以有
32、無數(shù)個結(jié)束狀態(tài)以有無數(shù)個結(jié)束狀態(tài)。如下圖所示:。如下圖所示: 與狀態(tài)圖不同與狀態(tài)圖不同 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML70 8.5 活動圖的基本概念活動圖的基本概念 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML71 8.5 活動圖的基本概念活動圖的基本概念 4 4轉(zhuǎn)移轉(zhuǎn)移 轉(zhuǎn)移用來指示一種狀態(tài)到另一個狀態(tài)的控制流。它們可以顯示轉(zhuǎn)移用來指示一種狀態(tài)到另一個狀態(tài)的控制流。它們可以顯示 活動之間或者狀態(tài)之間的控制流。轉(zhuǎn)移的標(biāo)記符是帶開放箭頭的活動之間或者狀態(tài)之間的控制流。轉(zhuǎn)移的標(biāo)記符是帶開放箭頭的 實線,如下圖所示。實線,如下圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML72
33、8.5 活動圖的基本概念活動圖的基本概念 綜合運用綜合運用 現(xiàn)在已經(jīng)學(xué)習(xí)了活動圖的現(xiàn)在已經(jīng)學(xué)習(xí)了活動圖的4 4種主要標(biāo)記符,下面綜合運用種主要標(biāo)記符,下面綜合運用 這些標(biāo)記來生成一個活動圖,如下圖所示。這些標(biāo)記來生成一個活動圖,如下圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML73 8.5 活動圖的基本概念活動圖的基本概念 5. 5. 決策決策 (分支)(分支) 決策是基于判斷條件選擇控制流繼續(xù)的方向。決策的決策是基于判斷條件選擇控制流繼續(xù)的方向。決策的UMLUML符符 號是一個小菱形標(biāo)記符,然后從這里再按條件控制分支轉(zhuǎn)移到號是一個小菱形標(biāo)記符,然后從這里再按條件控制分支轉(zhuǎn)移到 滿足條
34、件的活動,如下圖所示。滿足條件的活動,如下圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML74 8.5 活動圖的基本概念活動圖的基本概念 例例 描述教師記錄學(xué)生成績用例的活動圖描述教師記錄學(xué)生成績用例的活動圖 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML75 8.5 活動圖的基本概念活動圖的基本概念 學(xué)習(xí)活動圖中的其他標(biāo)記符學(xué)習(xí)活動圖中的其他標(biāo)記符 1.1.泳道泳道 泳道是活動圖中的區(qū)域泳道是活動圖中的區(qū)域 劃分,根據(jù)每個活動的職責(zé)劃分,根據(jù)每個活動的職責(zé) 對所有活動進行劃分,每個對所有活動進行劃分,每個 泳道代表一個責(zé)任區(qū)。泳道代表一個責(zé)任區(qū)。 泳道可以使活動圖非常泳道可以使活動圖非常
35、 整潔,因為它們在很大程度整潔,因為它們在很大程度 上增強了活動圖的可讀性。上增強了活動圖的可讀性。 泳道使用幾個大矩形框表示,泳道使用幾個大矩形框表示, 如右圖所示。如右圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML76 8.5 活動圖的基本概念活動圖的基本概念 下面示例顯示了一個在下面示例顯示了一個在TeacherTeacher和和Web InterfaceWeb Interface 泳道之間交叉轉(zhuǎn)移控制流的活動圖。如果沒有泳道,泳道之間交叉轉(zhuǎn)移控制流的活動圖。如果沒有泳道, 該活動圖就無法說明該活動圖就無法說明Teacher Teacher 使用了使用了LogonLogon、Ch
36、oose Choose StudentStudent和和Change Student InfoChange Student Info活動,活動,Web Web InterfaceInterface使用使用Validate UserValidate User、Retrieve Student Retrieve Student InfoInfo和和 Persist User InfoPersist User Info活動,如下圖所示。活動,如下圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML77 8.5 活動圖的基本概念活動圖的基本概念 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML78 8.
37、5 活動圖的基本概念活動圖的基本概念 2.2.分叉和聯(lián)結(jié)分叉和聯(lián)結(jié)( (匯合匯合) ) 分叉用來表示并行活動的分支處理,聯(lián)結(jié)用來把并行活動分叉用來表示并行活動的分支處理,聯(lián)結(jié)用來把并行活動 的匯集到同步處理。的匯集到同步處理。 分叉分叉和聯(lián)結(jié)在和聯(lián)結(jié)在UMLUML中的表示方法相似,都用粗黑線表示。分中的表示方法相似,都用粗黑線表示。分 叉叉具有一個轉(zhuǎn)移入口,兩個或者多個轉(zhuǎn)移出口。分具有一個轉(zhuǎn)移入口,兩個或者多個轉(zhuǎn)移出口。分叉叉描述了單描述了單 向處理控制流分成了多個控制流。聯(lián)結(jié)與此相反,聯(lián)結(jié)具有兩向處理控制流分成了多個控制流。聯(lián)結(jié)與此相反,聯(lián)結(jié)具有兩 個或者多個轉(zhuǎn)移個或者多個轉(zhuǎn)移入入口,只有一
38、個出口。聯(lián)結(jié)描述了不同的處理口,只有一個出口。聯(lián)結(jié)描述了不同的處理 控制流合并到一起形成一個單向處理,如下圖所示??刂屏骱喜⒌揭黄鹦纬梢粋€單向處理,如下圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML79 8.5 活動圖的基本概念活動圖的基本概念 如果一個處理在其他處理之前到達了聯(lián)結(jié),它將會如果一個處理在其他處理之前到達了聯(lián)結(jié),它將會等待等待, 直到所有的處理都準(zhǔn)備好之后才會向聯(lián)結(jié)傳遞控制權(quán)。直到所有的處理都準(zhǔn)備好之后才會向聯(lián)結(jié)傳遞控制權(quán)。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML80 8.5 活動圖的基本概念活動圖的基本概念 左例演示了分叉中的一左例演示了分叉中的一 個處理時間長于
39、另一個的個處理時間長于另一個的 情況。當(dāng)然,這完全是由情況。當(dāng)然,這完全是由 每一個處理中的活動數(shù)假每一個處理中的活動數(shù)假 定的。由于我們不知道每定的。由于我們不知道每 一個活動有多長,因此不一個活動有多長,因此不 能保證哪一個首先完成。能保證哪一個首先完成。 為此,我們在讓用戶訪問為此,我們在讓用戶訪問 應(yīng)用程序之前插入了一個應(yīng)用程序之前插入了一個 聯(lián)結(jié),以便確保兩個獨立聯(lián)結(jié),以便確保兩個獨立 的處理彼此連接在一起。的處理彼此連接在一起。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML81 8.5 活動圖的基本概念活動圖的基本概念 3 3對象流對象流 活動可以輸入和輸出對象,并可以修改對象狀活
40、動可以輸入和輸出對象,并可以修改對象狀 態(tài)。我們能夠在活動圖上用對象流表示這些。如下態(tài)。我們能夠在活動圖上用對象流表示這些。如下 圖所示。圖所示。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML82 8.5 活動圖的基本概念活動圖的基本概念 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML83 8.5 活動圖的基本概念活動圖的基本概念 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML84 8.7 活動圖建模活動圖建模 創(chuàng)建活動圖共有創(chuàng)建活動圖共有5 5個任務(wù):個任務(wù): 1 1)標(biāo)識需要活動圖的用例。)標(biāo)識需要活動圖的用例。 2 2)建模每一個用例的主路徑。)建模每一個用例的主路徑。 3 3)建模每一個用
41、例的從路徑。)建模每一個用例的從路徑。 4 4)添加游泳道來標(biāo)識活動的事務(wù)分區(qū)。)添加游泳道來標(biāo)識活動的事務(wù)分區(qū)。 5 5)改進高層活動并添加更多活動到圖中。)改進高層活動并添加更多活動到圖中。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML85 8.7 活動圖建?;顒訄D建模 1 1 標(biāo)識用例標(biāo)識用例 在建?;顒訄D之前,需要首先確定要建模什么。下面的教師在建?;顒訄D之前,需要首先確定要建模什么。下面的教師 更新分?jǐn)?shù)用例是一組較大用例的一部分,我們就從它開始。如下更新分?jǐn)?shù)用例是一組較大用例的一部分,我們就從它開始。如下 圖所示。這個用例實際上使用了圖所示。這個用例實際上使用了3 3個用例。我們不僅
42、有個用例。我們不僅有Update Update GradeGrade用例,還有用例,還有Save GradeSave Grade和和Load GradeLoad Grade用例。用例。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML86 8.7 活動圖建?;顒訄D建模 2 2建模主路徑建模主路徑 在開始創(chuàng)建用例的活動圖時,往往先建立一條明顯的路徑在開始創(chuàng)建用例的活動圖時,往往先建立一條明顯的路徑 執(zhí)行工作流,然后從該路徑進行擴展,如下圖所示。執(zhí)行工作流,然后從該路徑進行擴展,如下圖所示。 該路徑僅考慮用例的正?;顒勇窂剑ǖ卿?、選擇學(xué)生、加該路徑僅考慮用例的正?;顒勇窂剑ǖ卿?、選擇學(xué)生、加 載他們的
43、分?jǐn)?shù),修改分?jǐn)?shù),保存修改結(jié)果等活動過程),載他們的分?jǐn)?shù),修改分?jǐn)?shù),保存修改結(jié)果等活動過程), 沒沒 有考慮任何錯誤和判斷的路徑。有考慮任何錯誤和判斷的路徑。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML87 8.7 活動圖建?;顒訄D建模 3 3建模從路徑建模從路徑 考慮用例其他可能的工作流情況。如處理錯誤,考慮用例其他可能的工作流情況。如處理錯誤, 或許是執(zhí)行其他活動?;蛟S是執(zhí)行其他活動。 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML88 8.7 活動圖建?;顒訄D建模 面向?qū)ο蠓治雠c設(shè)計面向?qū)ο蠓治雠c設(shè)計&UML89 8.7 活動圖建?;顒訄D建模 4 4添加泳道添加泳道 泳道對于提高活動圖的可讀性非常有益,在本
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度律師事務(wù)所專業(yè)復(fù)印機及法律文件管理系統(tǒng)采購合同3篇
- 二零二五年度禽類養(yǎng)殖標(biāo)準(zhǔn)化示范項目禽類采購合同3篇
- 二零二五年度電子商務(wù)大賽賽事知識產(chǎn)權(quán)保護與侵權(quán)處理合同3篇
- 2024種植業(yè)務(wù)戰(zhàn)略合作伙伴合同樣本版B版
- 二零二五版高端石材采購與安裝服務(wù)合同3篇
- 二零二五年度車隊車輛租賃與售后服務(wù)合同2篇
- 2024藥品采購及冷鏈物流服務(wù)保障協(xié)議3篇
- 2025年度校園食堂廚房設(shè)備采購與安裝綜合服務(wù)合同2篇
- 2025年度拍賣合同信息安全與隱私保護
- 2025年度智能穿戴設(shè)備銷售合同協(xié)議4篇
- PDCA循環(huán)提高護士培訓(xùn)率
- 2024年工程咨詢服務(wù)承諾書
- 青桔單車保險合同條例
- 車輛使用不過戶免責(zé)協(xié)議書范文范本
- 《獅子王》電影賞析
- 2023-2024學(xué)年天津市部分區(qū)九年級(上)期末物理試卷
- DB13-T 5673-2023 公路自愈合瀝青混合料薄層超薄層罩面施工技術(shù)規(guī)范
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測試題含解析
- 哈爾濱研學(xué)旅行課程設(shè)計
- 2024 smart汽車品牌用戶社區(qū)運營全案
- 中醫(yī)護理人文
評論
0/150
提交評論