1. 程式人生 > >《UML面向物件建模與設計》 第6章——高階狀態建模

《UML面向物件建模與設計》 第6章——高階狀態建模

雖然寫這個部落格主要目的是為了給我自己做一個思路記憶錄,但是如果你恰好點了進來,那麼先對你說一聲歡迎。我並不是什麼大觸,只是一個菜菜的學生,如果您發現了什麼錯誤或者您對於某些地方有更好的意見,非常歡迎您的斧正!

目錄

6.1巢狀狀態圖

6.1.1平面狀態圖的問題:包含大量的冗餘

6.1.2擴充套件狀態

6.2巢狀狀態

6.3訊號泛化

6.4併發

6.4.1聚合併發

6.4.2物件內併發

6.4.3併發活動的同步

6.6類和狀態模型的關係


6.1巢狀狀態圖

6.1.1平面狀態圖的問題:包含大量的冗餘

6.1.2擴充套件狀態

子狀態機

:一種狀態圖,可以作為其他狀態圖的一部分來呼叫。實際上是狀態圖的“子程式”。

6.2巢狀狀態

●組合狀態名標識外部輪廓,輪廓完全包圍巢狀狀態

♦狀態可以巢狀到任意深度。

♦巢狀狀態會接受其組合狀態的輸出遷移

 

6.3訊號泛化

●藉助對訊號屬性的繼承,可以把訊號編排成泛化層次結構。

(個人感覺就是一種更加細化的一種分類)

6.4併發

●(個人感覺併發就是一種組裝的感覺,比如一個手錶拆分成各種零件)

6.4.1聚合併發

●每個部件對應一個狀態圖。

一個物件上的遷移可以依賴於處在某個給定狀態中的另一個物件。在保持模組性的條件下,允許狀態圖之間發生互動。

6.4.2物件內併發

●某些物件可以被劃分成屬性或連結的子集,每一個都有自己的子圖。

♦物件的狀態包括每個子圖的狀態。

♦子圖並不需要獨立;同一事件會在一個以上的子圖內引起遷移。

 

例子:橋牌遊戲。一開始兩區都在預設無局狀態,某一方贏得一盤,就會變成有局方。先贏兩局的一方會成為勝利者。

當某方贏得了第二局,就會遷移到相應的狀態贏得一局,此遷移會終止兩個併發區域,因為它們是同一組合狀態playing rubber的一部分,只有當頂狀態圖處於此狀態時,這兩個區域才是活動的。

6.4.3併發活動的同步

●一個物件必須併發執行兩項(或更多的)活動。不要求內部活動同步,但是正在前進到下一個狀態之前必須完成這兩項活動。

6.6類和狀態模型的關係

●狀態模型詳細描述了類模型中物件所允許的變化序列。

●狀態圖描述了某個給定類的物件的全部或部分行為。