UML學習——狀態圖(四)

来源:http://www.cnblogs.com/wwyx-xi/archive/2017/09/27/7600714.html
-Advertisement-
Play Games

1.什麼是UML狀態圖 UML狀態圖是描述類對象可能經歷的所有狀態的模型圖,描述了對象基於事件反應的動態行為。顯示實體根據當時的狀態做出具體的動作。 2.UML類圖的作用。 UML類圖的作用是研究類對象,角色,子系統或者其他組件之間的實時行為。 3.UML狀態圖的繪製 3.1 狀態圖的模型組成元素 ...


1.什麼是UML狀態圖

  UML狀態圖是描述類對象可能經歷的所有狀態的模型圖,描述了對象基於事件反應的動態行為。顯示實體根據當時的狀態做出具體的動作。

2.UML類圖的作用。

  UML類圖的作用是研究類對象,角色,子系統或者其他組件之間的實時行為。

3.UML狀態圖的繪製

  3.1 狀態圖的模型組成元素

    狀態,轉換,時間

  3.2狀態的表示法

    狀態由兩部分組成:名稱和內部動作

    名稱:表示狀態的名字

    內部動作:表示進入或者走出此狀態的應該執行的動作。內部動作可以分為以下四種類型。

      entry:表示進入該狀態時該進行的動作。

      exit:表示退出該狀態時該進行的動作。

      do:表示該狀態下進行的動作。

      on:表示該狀態下,發生某件事件時發生的動作。

    一個狀態可以包含多個內部動作。

    如圖:

    

  3.3轉換的表示法

    轉換:原狀態在滿足一定的條件,或者觸發某個事件時,執行完內部動作後,轉到目標狀態的過程。

    轉換包含的元素:原狀態,目標狀態,觸發事件,監護條件,執行動作。

    觸發事件:引起狀態轉換的事件,如:信號,調用,時間等。

    監護條件:狀態轉化必須滿足的條件,是一個Boolean值,不同轉化的監護條件不同,但是觸發事件可以相同。

    執行動作:一組可執行語句或者計算處理的過程。

  3.4 轉換的分類

    轉換通常分為內部轉換,外部轉換,完成轉換,複合轉換四種。

    內部轉換:不離開狀態本身,執行完動作後依舊在此狀態。

    外部轉換:最常見的轉換,狀態從原狀態轉換到目標狀態、

    完成轉換:或者叫自轉換,無觸發事件。

    複合轉換:由簡單轉換組成,通過分支判斷將簡單轉換組合起來。

  3.5狀態的繪製

    初始狀態:用一個實心圓表示,一個狀態圖中只有一個

    終止狀態:用一個包含實心圓的空心圓表示。

    子狀態:有子狀態的狀態稱為複合狀態。

  3.6狀態圖模型

    

  3.7子狀態圖表示

    

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡單工廠模式:由一個工廠對象決定創建出哪一種類的實例。 1.抽象類 2.具體類 3.具體類 4.工廠 5.測試代碼 工廠方法模式:定義一個用於創建對象的介面,讓子類去決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。 1.抽象工廠 2.抽象產品和具體實現類。 3.具體工廠,用來具體實現哪個產 ...
  • 專業定製仿百度文庫網站系統,仿豆丁網網站,仿道客巴巴網站,文庫網站系統源碼,文庫網站建設開發,支持電腦版+手機版+微信版+小程式版+APP版,由10年的技術團隊專業定製,需要的朋友可以聯繫我們。 網站採用:PHP+MySQL+thinkPHP框架(可定製) <ignore_js_op> <ignor ...
  • 所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2~16的任一整數整除。因此判斷一個整數m是否是素數,只需把m被2~m-1之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數另外判斷方法還可以簡化。m不必唄2~m-1之間的每一個整數去除,只需被2~√m之間 ...
  • 修改表 修改表 語法: Alter table <舊表名> rename [ TO] <新表名>; 例子:Alter table `demo01` rename `demo02`; 添加欄位 語法: Alter Table 表名 ADD 欄位名 數據類型 [屬性]; 例子:Alter Table ` ...
  • 第一部分說明 第一部分大概有20來章,主要講的是一些開發常識、開發前中後期準備內容、開發環境與伺服器部署環境安裝設置、python基礎框架結構與功能等內容,代碼會比較簡單。 本系列會以故事的方式,向大家描述一位有點開發基礎的程式猿,怎麼將一個小系統,根據需求的增加,以及對技術的追求,慢慢的通過重構, ...
  • 項目結構 在目錄中運行 ant war 即可. ...
  • 本來應一個可愛帥氣的編輯之邀,要寫一本書《靜兒的互聯網服務治理私房菜》。想選服務治理的題材,想急著簽協議就寫了一個很匆忙的目錄和例章。寫書本是計划了很久的一件事情。現在反而有些猶豫了。我是不是應該把腳步放慢一些,再穩一些。我是不是應該自己先寫了一部分,再考慮簽約出版的事情。要做的事情太多了,比如:家 ...
  • 原文地址: http://michael-j.net/2017/09/24/%E7%BC%96%E7%A8%8B%E5%BF%83%E6%99%BA-%E4%B8%80-%E2%80%94%E2%80%94%E4%BB%A3%E7%A0%81%E6%9E%B6%E6%9E%84%E4%B8%8E%E ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...