1. 程式人生 > >EA&UML日拱一卒-狀態圖::狀態機

EA&UML日拱一卒-狀態圖::狀態機

行為狀態機概念

以下內容摘自UML2,今天的內容是說明狀態機具有上下文類目的情況。

行為狀態機可以用於定義下面的場景(不限於)

  • 主動類的類目行為

  • 一個行為化類目的除了類目行為以外的擁有行為。

如果狀態機有某種行為類目上下文,那麼這個類目定義了哪些訊號和呼叫事件可以適用於那個狀態機,也定義了哪些特徵對狀態機擁有的行為可用。狀態機的訊號觸發條件和呼叫事件觸發條件根據這個類目的接受和操作被分別定義。這些特徵可以被用於定義狀態機的訊息事件觸發條件。

--UML2.5 14.2.3.1 StateMachine(狀態機)

用一個不是很嚴密,但是簡單的說就是:狀態機可以用於定義類目的類目的行為。這時,狀態機可以呼叫上下文類目的行為,也可以將上下文類目中定義的事件用於定義狀態機的觸發條件。


示例

我們繼續使用按鈕式訊號系統的例子。

定義上下文類目

在本例中就是一個類:TrafficLight.

TrafficLight類是一個主動類,主動類的行為就是狀態機。

TrafficLight類有兩個方法,SetCurrentLight和SetShuttingDownFlag。它們會在狀態機中呼叫。

為類目新增狀態機

開啟【Project Browser】中TrafficLight的上下文選單,選擇【Add】-【State Machine】選單項。

就可以得到一個狀態機物件和一個狀態圖。

繪製狀態圖

接下來的內容就是我們前面講過的了。以下是按鈕式型號系統的狀態圖。

從圖中可以看出以下不同:

狀態圖的外面包圍著一個方框,表示這是一個狀態機。

狀態機的進入/退出行為,遷移的效應行為呼叫的是TrafficLight類的方法。

進入/退出行為的設定和表示方法

  1. 開啟進入/退出行為對話方塊


  2. 選擇【Behavior】屬性頁

  3. 在【Behavior】文字框中輸入行為的詳細內容

  4. 如果需要類類圖中顯示詳細內容,則選擇藍色圓圈中的【Show Behavior in Diagram】專案。

參考資料:

14.2 Behavior StateMachines(1)--狀態機概要

14.2 Behavior StateMachines (10) --記法

開啟方法如下:

  1. 進入【面向物件思考】 公眾號  

  2. 開啟【UML】-【UML2.5中文譯文】選單

  3. 選擇【狀態圖】分類

  4. 選擇相關文章

以上就是今天的文章,歡迎點贊,關注並推薦給您的朋友! 閱讀更多更新文章,請掃描下面二維碼,關注微信公眾號【面向物件思考】

相關推薦

EA&UML--類::列舉型別(enumeration)

列舉型別本身沒有什麼好說的,本文主要說明在EA中如何定義列舉型別。 新增列舉型別 開啟類圖,拖動下面的列舉型別圖示即可新增列舉型別。 接下來就是輸入型別名,本例中我們輸入PlayerState 輸入列舉值 選擇【Detail】頁面並點選【Attributes...】按鈕進入

EA&UML--類::泛化(generalization)

類和類之間,除了存在關聯/聚合/組合這種協作關係以外,還有泛化關係,也就是C++中的繼承關係。 定義 泛化是指一個較特殊的類到一個較普通的類之間的關係。較特殊的類也叫子類(subclass);較普通的類也叫超類(superclass)。子類繼承了超類的所有特性(屬性和操作),任何使用超類的地方,都

EA&UML-活動::異常

UML和很多語言一樣,都有異常處理機制。當系統發生不正常的情況時,處理機制會中斷正常的處理流程,然後由內向外尋找異常處理器並激活它。 語義 異常表示一種非正常情況的發生阻止了正常的執行過程。它通常是系統底層在應對執行過程中出現的故障時所產生的。這種場景下的異常處理是一種

EA&UML--序列(Sequence Diagram)::互動概述

之前的兩篇文章分別介紹了時序圖中互動和門的概念並進行了簡單的比較。相信門的用途比較好理解,但是互動的應用場景恐怕就不是一下子可以想到的了。 今天稍微跳躍一下,通過互動概述圖進一步說明互動的使用場景。 複習 先看看【EA&UML日拱一卒-時序圖::互動和互動使用

EA&UML--活動::分支和合並

上一篇文章是活動圖入門,作為例子我們介紹瞭解一元二次方程的流程。但是並沒有詳細說明解方程的步驟,這部分是今天的內容。 首先介紹今天的主角:分支和合並。 判斷節點(decision node) 語義 和流程圖一樣,活動圖中的控制流也可以包含分支結構:判斷節點。判斷節點

EA&UML-狀態::狀態

行為狀態機概念 以下內容摘自UML2,今天的內容是說明狀態機具有上下文類目的情況。 行為狀態機可以用於定義下面的場景(不限於) 主動類的類目行為 一個行為化類目的除了類目行為以外的擁有行為。 如果狀態機有某種行為類目上下文,那麼這個類目定義了哪些訊號和呼叫事件可以適用於那個狀態機,也

EA&UML-0基礎學習微信小程式(4)- 安裝開發工具

小程式賬號申請成功之後的工作就是準備開發環境。 微信小程式管理的頁面如下:左面是分類標籤,根據分類的不同,會在右面顯示相應的內容,目前的狀態是【首頁】被選擇的狀態。 在上述頁面中選擇紅框中的【下載開發工具】,就可以開啟下面的下載地址頁面。 根據作業系統選擇合適

EA&UML-0基礎學習微信小程式(1)- 開篇

這次選了一個時髦的話題,同時也是一個真正從0開始的話題----微信小程式。說它時髦當然是因為這東西出來沒多長時間,許多開發者不要說做過,恐怕連用都沒有用過。說從0開始是因為作者本人不光是對微信小程式沒有概念,恐怕對開發中用到的技術,手法同樣沒有經驗。 選題的目的 第一當

EA&UML-微信小程式實戰:位置鬧鈴 (11)-稍微聰明一點

問題的提出小程式使用wx.playVoice播放音訊時,需要從網上下載播放的物件檔案,但是每次播放都要下載的話,就太傻了。好在小程式提供了儲存檔案的功能。思路準備一個url到快取檔案的對映,當小程式成功的下載播放鈴聲以後,自動儲存下載的檔名。下次播放同一個檔案時確認是否存在已

EA&UML-0基礎學習微信小程式(15)-弄得像真的一樣

光顯示數字當然沒什麼意思,我們稍加修改,爭取把這個小程式弄的像真的一樣。 建立/新增影象資源 首先用Word畫,然後轉換成png。 接下來在小程式工程中新增images目錄,將png檔案拷貝到該目錄中。 index.wxml <!--index.wxml-

EA&UML-0基礎學習微信小程式(9)-C++程式設計師眼中的app.js

終於到了說明真正的程式的部分。 作為程式設計師來講,似乎只有看到了能動的程式碼才會安心。但是這裡的程式是Javascript,C或者C++程式設計師看起來會比較陌生。 作者一邊查,一邊理解,一邊儘量詳細的說明。如果有說錯的地方,敬請指正。 物件字面量表示法 這部分的

EA&UML-微信小程式實戰:位置鬧鈴 (13)-使用類優化程式結構

雖然Javascript是一種指令碼語言,但是依然可以定義和使用類。在這個小程式中,將監控點相關的功能做成了一個類。alarm.js//alarm.js:constutil =require('./util.js')constCHECK_BUFFER_SIZE =3//建構函

EA&UML-微信小程式實戰:位置鬧鈴 (7)-在畫面之間共享資料

序列圖為了理順使用者的操作邏輯,我們將監控點的設定分到選擇監控點和編輯監控條件兩個畫面進行;為了新建監控點和編輯監控點流程的共通化,建立監控點物件的工作被分配到了主畫面。序列圖如下:index.jsnewButtonTaped:function() {   console.l

EA&UML-微信小程式實戰:位置鬧鈴 (17)-儲存和取出設定資訊

設定了監控點之後,小程式會取得最新位置,判斷各個監控點的到達,離開情況並播放提示音。很多情況下,使用者會希望這些資訊可以儲存起來以便將來使用。這就是今天的主題:在小程式中儲存設定資訊。API位置鬧鈴使用微信小程式API中以下的資料快取介面儲存設定資訊,本節內容來自微信小程式開

EA&UML-0基礎學習微信小程式(5)- Hello world!

全貌 上一篇文章的最後,我們的開發工具是下面的狀態。 畫面的最左邊是導航選單,用於切換編輯,除錯,專案設定等功能。今天我們集中說明編輯功能。 導航選單的右側分為3個大的區域,分別是小程式執行區域,目錄樹和程式碼編輯區域。 小程式執行區域 該區域的最上面有兩個

EA&UML-0基礎學習微信小程式(13)-一個都不能少

經過兩篇文章的積累,我們回到Hello world中來。util.js這段程式碼包含3個段落,按照參照關係逐一說明。格式化數字函式function formatNumber(n) {  n = n.toString()  return n[1] ? n : '0' + n}這

EA&UML-0基礎學習微信小程式(6)- 配置檔案的形式和內容

上篇文章中講到,小程式有兩種配置檔案,本別針對的是小程式全體和單獨的頁面,本文從形式和內容兩個方面來解析小程式中的配置檔案。 形式 從配置檔案的副檔名json可以知道配置檔案的格式是JSON(Ja

EA&UML-微信小程式實戰:位置鬧鈴 (6)-播放音訊

昨天停更了一天,不是作者偷懶,而是掉到了一個坑裡。本來以為播放音訊很簡單,但是還是遇到的各種問題,比如:1)小程式無法播放手機儲存目錄中的檔案,只能播放網上的或者是小程式暫存的檔案。2)播放暫存檔案的介面貌似只支援.silk格式的檔案。3)播放網上檔案的時候不容易找到合適的物

EA&UML-微信小程式實戰:位置鬧鈴 (5)-顯示所在位置的資訊

假設我們指定了多個監控點,接下來的需求就是給每個監控點取名字。如果是手動輸入的話,會比較麻煩。所以位置鬧鈴再向前走一步,從地圖上取得監控點所在位置的資訊作為監控點的名稱。 畫面說明 當我們選定監控點以後,該處的資訊會在下面的列表中表示出來。通過上下滾動列表中的內容,

——160個crackme之#6

今天我們用的是第六個附件 aLoNg3x.1.exe 我們先執行這個軟體看看, 誒,有個help,我最喜看幫助了,看看有什麼內容, 圖就不截了,作者大概是說破解成功的話,OK按鈕會變成可用狀態,Cancella會被刪掉, 好了,直接載入OD