資源描述:
《UML系統(tǒng)建?;A教程 第13章 狀態(tài)圖》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、重點內容:何謂狀態(tài)圖構成狀態(tài)圖的元素狀態(tài)圖的組成使用Rose創(chuàng)建狀態(tài)圖創(chuàng)建項目中的狀態(tài)圖第13章狀態(tài)圖一、何謂狀態(tài)圖狀態(tài)圖由狀態(tài)、轉換、事件、活動和動作5部分組成:1狀態(tài)指的是對象在其生命周期中的一種狀況,處于某個特定狀態(tài)中的對象必然會滿足某些條件、執(zhí)行某些動作或者是等待某些事件。一個狀態(tài)的生命周期是一個有限的時間階段。2轉換指的是兩個不同狀態(tài)之間的一種關系,表明對象將在第一個狀態(tài)中執(zhí)行一定的動作,并且在滿足某個特定條件下由某個事件觸發(fā)進入第二個狀態(tài)。3事件指的是發(fā)生在時間和空間上的對狀態(tài)機來講有意義的那些事情。事件通常會引起狀態(tài)的變遷,促使狀態(tài)機從一種狀態(tài)切換到另一種狀態(tài),如信號、
2、對象額度創(chuàng)建和銷毀等。4活動指的是狀態(tài)機中進行的非原子操作。5動作指的是狀態(tài)機中可以執(zhí)行的那些原子操作,所謂原子操作指的是它們在運行的過程中不能被其他消息所中斷,必須一直執(zhí)行下去,最終導致狀態(tài)的變更或者返回一個值。1、狀態(tài)圖的概念一、何謂狀態(tài)圖狀態(tài)用于對實體在其生命周期中的各種狀況進行建模,一個實體總是在有限的一段時間內保持一個狀態(tài)。狀態(tài)由一個帶圓角的矩形表示,狀態(tài)的描述應該包括:名稱、入口和出口動作、內部轉換和嵌套狀態(tài)。1、狀態(tài)圖的概念狀態(tài)一、何謂狀態(tài)圖在UML的狀態(tài)建模機制中,轉換用帶箭頭的直線表示,一端連接源狀態(tài),箭頭指向目標狀態(tài)。轉換還可以標注與此轉換相關的選項,如事件、監(jiān)護
3、條件和動作等,如果轉換上沒有標注觸發(fā)轉換的事件,則表示此轉換自動進行。1、狀態(tài)圖的概念轉換一、何謂狀態(tài)圖每個狀態(tài)圖都應該有一個初始狀態(tài),它代表狀態(tài)圖的起始位置。初始狀態(tài)是一個偽狀態(tài)(一個和普通狀態(tài)有連接的假狀態(tài)),對象不可能保持在初始狀態(tài),必須要有一個輸出的無觸發(fā)轉換(沒有事件觸發(fā)器的轉換)。通常初始狀態(tài)上的轉換是無監(jiān)護條件的,并且初始狀態(tài)只能作為轉換的源,而不能作為轉換的目標。一個狀態(tài)圖只能有一個初始狀態(tài),用一個實心的圓表示。1、狀態(tài)圖的概念初始狀態(tài)一、何謂狀態(tài)圖終止狀態(tài)是一個狀態(tài)圖的終點,一個狀態(tài)圖可以擁有一個或者多個終止狀態(tài)。對象可以保持在終止狀態(tài),但是終止狀態(tài)不可能有任何形式
4、的觸發(fā)轉換,它的目的就是為了激發(fā)封裝狀態(tài)上的完成轉換。1、狀態(tài)圖的概念終止狀態(tài)一、何謂狀態(tài)圖活動圖和狀態(tài)圖中都有需要根據(jù)給定條件進行判斷,然后根據(jù)不同的判斷結果進行不同的轉換的情況。實際就是工作流在此處按監(jiān)護條件的取值發(fā)生分支,在UML中判定用空心菱形表示。1、狀態(tài)圖的概念判定一、何謂狀態(tài)圖狀態(tài)圖的作用主要體現(xiàn)在以下幾個方面:1狀態(tài)圖清晰的描述了狀態(tài)之間的轉換順序,通過狀態(tài)的轉換順序也就可以清晰的看出事件的執(zhí)行順序。如果沒有狀態(tài)圖我們就不可避免的要使用大量的文字來描述外部事件的合法順序。2清晰的事件順序有利于程序員在開發(fā)程序時避免出現(xiàn)事件錯序的情況。3狀態(tài)圖清晰的描述了狀態(tài)轉換時所必
5、須的觸發(fā)事件、監(jiān)護條件和動作等影響轉換的因素,有利于程序員避免程序中非法事件的進入。4狀態(tài)圖通過判定可以更好的描述工作流因為不同的條件發(fā)生的分支。2、為什么要使用狀態(tài)圖二、構成狀態(tài)圖的元素狀態(tài)名:在實際使用中,狀態(tài)名通常是直觀、易懂、能充分表達語義的名詞短語,其中每個單詞的首字母要大寫。內部活動:狀態(tài)可以包含描述為表達式的內部活動。當狀態(tài)進入時,活動在進入動作完成后就開始。如果活動結束,狀態(tài)就完成,然后一個從這個狀態(tài)出發(fā)的轉換被觸發(fā)。內部轉換:狀態(tài)可能包含一系列的內部轉換,內部轉換因為只有源狀態(tài)而沒有目標狀態(tài),所以內部轉換的結果并不改變狀態(tài)本身。如果對象的事件在對象正處在擁有轉換的狀
6、態(tài)時發(fā)生,那內部轉換上的動作也被執(zhí)行。入口和出口動作:狀態(tài)可能具有入口和出口動作。這些動作的目的是封裝這個狀態(tài),這樣就可以不必知道狀態(tài)的內部狀態(tài)而在外部使用它。入口動作和出口動作原則上依附于進入和出去的轉換,但是將它們聲明為特殊的動作可以使狀態(tài)的定義不依賴狀態(tài)的轉換,因此起到封裝的作用。歷史狀態(tài):組成狀態(tài)可能包含歷史狀態(tài)(Historystete)。1、狀態(tài)二、構成狀態(tài)圖的元素轉換用于表示一個狀態(tài)機的兩個狀態(tài)之間的一種關系,即一個在某初始狀態(tài)的對象通過執(zhí)行指定的動作并符合一定的條件下進入第二種狀態(tài)。在這個狀態(tài)的變化中,轉換被稱作激發(fā)。在激發(fā)之前的狀態(tài)叫做源狀態(tài),在激發(fā)之后的狀態(tài)叫做目
7、標狀態(tài)。簡單轉換只有一個源狀態(tài)和一個目標狀態(tài)。復雜轉換有不止一個源狀態(tài)和(或)有不止一個目標狀態(tài)。2、轉換二、構成狀態(tài)圖的元素外部轉換是一種改變狀態(tài)的轉換,也是最普通最常見的一種轉換。在UML中,它用從源狀態(tài)到目標狀態(tài)的帶箭頭的線段表示,其他屬性以文字串附加在箭頭旁。2、轉換外部轉換二、構成狀態(tài)圖的元素內部轉換只有源狀態(tài),沒有目標狀態(tài),不會激發(fā)入口和出口動作,因此內部轉換激發(fā)的結果不改變本來的狀態(tài)。如果一個內部轉換帶有動作,它也要被執(zhí)行。內部轉換常用于對不