新聞中心
本文和大家重點討論一下UML狀態(tài)圖,UML狀態(tài)圖由表示狀態(tài)的節(jié)點和表示狀態(tài)之間轉(zhuǎn)換的帶箭頭的直接組成。若干個狀態(tài)由一條或多條轉(zhuǎn)換箭頭連接,狀態(tài)的轉(zhuǎn)換由事件觸發(fā)。

創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為沁水企業(yè)提供專業(yè)的網(wǎng)站建設、成都網(wǎng)站制作,沁水網(wǎng)站改版等技術服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
UML狀態(tài)圖簡介
UML狀態(tài)圖是系統(tǒng)分析的一種常用工具,它通過建立類對象的生存周期模型來描述對象隨時間變化的動態(tài)行為。
狀態(tài)機
狀態(tài)機是展示狀態(tài)與狀態(tài)轉(zhuǎn)換的圖。通常一個狀態(tài)機依附于一個類,并且描述一個類的實例。狀態(tài)機包含了一個類的對象在其生命周期間所有狀態(tài)的序列以及對象對接收到的事件所產(chǎn)生的反應。
狀態(tài)機由狀態(tài)、轉(zhuǎn)換、事件、活動和動作5部分組成。
UML狀態(tài)圖
一個UML狀態(tài)圖表示一個狀態(tài)機。主要用于表現(xiàn)從一個狀態(tài)到另一個狀態(tài)的控制流。
UML狀態(tài)圖由表示狀態(tài)的節(jié)點和表示狀態(tài)之間轉(zhuǎn)換的帶箭頭的直接組成。若干個狀態(tài)由一條或多條轉(zhuǎn)換箭頭連接,狀態(tài)的轉(zhuǎn)換由事件觸發(fā)。模型元素的行為可以由UML狀態(tài)圖中的一條通路表示,沿著此通路狀態(tài)機隨之執(zhí)行了一系列動作。一個簡單的UML狀態(tài)圖如下:
1、狀態(tài)
狀態(tài)由一個帶圓角的矩形表示,UML狀態(tài)圖的圖標可以分為3部分:名稱、內(nèi)部轉(zhuǎn)換和嵌套狀態(tài)。
(1)、名稱。名稱表示狀態(tài)的名字,通常用字符串表示。一個狀態(tài)的名稱在UML狀態(tài)圖所在的上下文中應該是***的
(2)、內(nèi)部轉(zhuǎn)換。在內(nèi)部轉(zhuǎn)換中可以包含進入或者走出此狀態(tài)應該執(zhí)行的活動或動作,它們將響應對象所接收到的事件,但是不改變對象的狀態(tài)。
(3)、嵌套UML狀態(tài)圖。UML狀態(tài)圖中的狀態(tài)有兩種:簡單狀態(tài)和組合狀態(tài)。簡單狀態(tài)不包含其他狀態(tài),組合狀態(tài)是包含子狀態(tài)的狀態(tài)。在組合狀態(tài)的嵌套UML狀態(tài)圖部分包含的就是此狀態(tài)的子狀態(tài)。
2、轉(zhuǎn)換
轉(zhuǎn)換用帶箭頭的直線表示,分別連接源狀態(tài)和目標狀態(tài)。當源狀態(tài)接收到一個事件,并且監(jiān)護條件得到滿足,則執(zhí)行相應的動作,同時從源狀態(tài)轉(zhuǎn)換到目標狀態(tài)。如果轉(zhuǎn)換上沒有標注觸發(fā)轉(zhuǎn)換的事件,則表示此轉(zhuǎn)換為自動進行。
3、初始狀態(tài)
初始狀態(tài)代表UML狀態(tài)圖的起始位置,起始狀態(tài)在一個UML狀態(tài)圖中只允許有一個,用一個實心圓表示。
4、終止狀態(tài)
終止狀態(tài)是一個UML狀態(tài)圖的終止點。它用一個含有實心圓的空心圓表示。
5、判定
判定用空心小菱形表示。工作流在此處按監(jiān)護條件的取值而發(fā)生分支。#p#
狀態(tài)
UML狀態(tài)圖中狀態(tài)包括狀態(tài)名、內(nèi)部轉(zhuǎn)換、入口動作和出口動作、簡單狀態(tài)、組成狀態(tài)(順序子狀態(tài)、并發(fā)子狀態(tài))、歷史狀態(tài)。
事件
事件表示在某一特定的時間或空間出現(xiàn)的能夠引發(fā)狀態(tài)改變的運動變化。事件分為入口事件、出口事件、動作事件、信號事件、調(diào)用事件、修改事件、時間事件、延遲事件。
轉(zhuǎn)換
轉(zhuǎn)換表示當一個特定事件發(fā)生或某些條件得到滿足時,一個源狀態(tài)下的對象在完成一定的動作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個稱之為目標狀態(tài)的狀態(tài)。
UML狀態(tài)圖中轉(zhuǎn)換通常分為外部轉(zhuǎn)換、內(nèi)部轉(zhuǎn)換、完成轉(zhuǎn)換和復合轉(zhuǎn)換4種。一個轉(zhuǎn)換一般包括5部分的信息:源狀態(tài)、目標狀態(tài)、觸發(fā)事件、監(jiān)護條件和動作。
1、外部轉(zhuǎn)換
外部轉(zhuǎn)換是一種改變對象狀態(tài)的轉(zhuǎn)換,它是最常見的一種轉(zhuǎn)換。外部轉(zhuǎn)換用從源狀態(tài)到目標狀態(tài)的箭頭表示。下圖表示了一個火車上的衛(wèi)生間的簡單狀態(tài)轉(zhuǎn)換。圖中箭頭上標注的都是引發(fā)狀態(tài)轉(zhuǎn)換的外部事件。
2、內(nèi)部轉(zhuǎn)換
內(nèi)部轉(zhuǎn)換有一個源狀態(tài)但沒有目標狀態(tài),它轉(zhuǎn)換后的狀態(tài)仍是它本身。內(nèi)部轉(zhuǎn)換用于對不改變狀態(tài)的插入動作建立模型,例如建立幫助信息。
內(nèi)部轉(zhuǎn)換和自轉(zhuǎn)換(即后面提到的完成轉(zhuǎn)換)不同:自轉(zhuǎn)換是離開本狀態(tài)后重新進入該狀態(tài),它會激發(fā)狀態(tài)的入口動作和出口動作的執(zhí)行;而內(nèi)部轉(zhuǎn)換自始至終都不離開本狀態(tài),所以沒有出口或入口事件。
3、完成轉(zhuǎn)換
完成轉(zhuǎn)換又成自轉(zhuǎn)換,之所以稱為完成轉(zhuǎn)換是因為沒有標明觸發(fā)器事件的轉(zhuǎn)換是由狀態(tài)中活動的完成引起的,是自然而然的完成的轉(zhuǎn)換。
4、復合轉(zhuǎn)換
復合轉(zhuǎn)換由簡單轉(zhuǎn)換組成,這些簡單轉(zhuǎn)換通過分支判定、分叉或接合組合在一起。多條件的分支判定又分為鏈式和非鏈式的分支,兩種分支分別如下圖所示:
5、觸發(fā)事件
UML狀態(tài)圖中觸發(fā)事件就是能引起狀態(tài)轉(zhuǎn)換的事件。觸發(fā)事件可以是信號、調(diào)用和時間段等。
6、監(jiān)護條件
監(jiān)護條件是觸發(fā)轉(zhuǎn)換必須滿足的條件,它是一個布爾表達式。當事件被觸發(fā)時,監(jiān)護條件被賦值。如果布爾表達式為真,那么轉(zhuǎn)換被觸發(fā);否則不會引起轉(zhuǎn)換。監(jiān)護條件只能在觸發(fā)事件發(fā)生時被賦值一次。從一個狀態(tài)引出的多個轉(zhuǎn)換可以有同樣的觸發(fā)器事件,但是每個轉(zhuǎn)換必須具有不同的監(jiān)護條件。
7、動作
動作是一組可執(zhí)行語句或計算處理過程。動作可以包括發(fā)送消息給另一個對象、操作調(diào)用、設置返回值、創(chuàng)建和銷毀對象等。動作是原子的,不可中斷的。
整個系統(tǒng)可以在同一時間執(zhí)行多個動作。動作在它的控制線程中是原子性的,一旦開始執(zhí)行就必須執(zhí)行到底并且不能與同時處于活動狀態(tài)的動作發(fā)生交互作用。
網(wǎng)站名稱:術語匯編UML狀態(tài)圖用法解析
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/dpggoio.html


咨詢
建站咨詢
