国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

UML狀態(tài)機(jī)圖的建模分析

2020-10-21 05:29:27商鵬
科學(xué)與信息化 2020年4期
關(guān)鍵詞:狀態(tài)機(jī)建模

摘 要 狀態(tài)機(jī)圖是統(tǒng)一建模語言UML中的動態(tài)模型圖,用來描述一個實(shí)體基于事件反應(yīng)的動態(tài)行為。要研究某個實(shí)體或?qū)ο蟮膯为?dú)的行為及狀態(tài)變化,可以使用狀態(tài)機(jī)模型圖來表示。本文對狀態(tài)機(jī)圖進(jìn)行了介紹,并通過實(shí)例進(jìn)行狀態(tài)機(jī)圖的建模分析。

關(guān)鍵詞 狀態(tài)機(jī);單個對象;建模

引言

在軟件系統(tǒng)中可能存在著大量的對象,它們需要處理各種隨機(jī)發(fā)生的事件,通過相應(yīng)的動態(tài)行為來產(chǎn)生對事件的響應(yīng),最適合描述對象這類動態(tài)行為的建模手段就是狀態(tài)機(jī)圖。狀態(tài)機(jī)圖是UML2.0中的重要模型,是系統(tǒng)分析過程的常用圖,可以幫助系統(tǒng)開發(fā)人員更好地理解單個對象的行為。

1狀態(tài)機(jī)圖介紹

狀態(tài)機(jī)圖本質(zhì)上就是一個狀態(tài)機(jī),是展示狀態(tài)與狀態(tài)轉(zhuǎn)換的模型,在系統(tǒng)控制、編譯技術(shù)、機(jī)器邏輯等領(lǐng)域應(yīng)用非常普遍。

狀態(tài)機(jī)可以看作是一個對象的局部視圖,用來精確的描述這個對象的單獨(dú)行為。一個狀態(tài)機(jī)可以依附于一個類,用來描述類的實(shí)例的狀態(tài)及狀態(tài)轉(zhuǎn)換,并對接收到的事件做出的響應(yīng)[1]。狀態(tài)機(jī)也可以依附于用例、操作、協(xié)作等元素,描述它們的執(zhí)行過程。使用狀態(tài)機(jī)考慮問題時,習(xí)慣將對象與外部世界分離,適合對局部、細(xì)節(jié)進(jìn)行建模。

狀態(tài)機(jī)圖包含狀態(tài)機(jī)的所有特征[2]。狀態(tài)機(jī)圖主要由狀態(tài)和狀態(tài)之間的轉(zhuǎn)換組成。狀態(tài)描述了一個對象生命周期中的一個時間段,在該時間段內(nèi)保持對象或系統(tǒng)的外在狀況和內(nèi)在特性的相對穩(wěn)定。轉(zhuǎn)換是兩個狀態(tài)之間的一種關(guān)系,當(dāng)狀態(tài)發(fā)生這樣的轉(zhuǎn)變關(guān)系時,轉(zhuǎn)換就被激活。

狀態(tài)機(jī)圖可以展示一個對象、子系統(tǒng)或系統(tǒng)的所有狀態(tài)及其收到的消息對其狀態(tài)的影響。

2狀態(tài)機(jī)圖建模

2.1 狀態(tài)機(jī)圖建模技術(shù)

一般使用狀態(tài)機(jī)圖對系統(tǒng)的動態(tài)方面建模,常見的目的是為對象,尤其是類、用例和整個系統(tǒng)的實(shí)例的生命周期建模。狀態(tài)機(jī)可以看作是一個對象所有可能的生命歷程的模型。為對象的生命期建模時,主要描述對象響應(yīng)的事件、對事件的響應(yīng)以及過去對當(dāng)前行為的影響。

不需要為系統(tǒng)中的每個對象繪制狀態(tài)機(jī)圖,只對那些狀態(tài)和行為較為復(fù)雜的對象建立狀態(tài)機(jī)模型,以便更清楚的認(rèn)識這些對象的行為,準(zhǔn)確定義它們的操作。

2.2 狀態(tài)機(jī)圖建模實(shí)例[3]

一個負(fù)責(zé)監(jiān)視報警傳感器的控制器開機(jī)后先進(jìn)行初始化,完成初始化后自動進(jìn)入待機(jī)狀態(tài)。待機(jī)狀態(tài)下,每隔15秒會進(jìn)行設(shè)備自檢??刂破鹘邮盏揭粋€報警信號后,會響應(yīng)該信號,響應(yīng)時經(jīng)歷生成警報、驗(yàn)證警報是否真實(shí)、呼叫警報公司登記該警報、等待警報公司處理警報、警報處理完后清除警報的過程。警報清除后,控制器回到待機(jī)狀態(tài)。處于待機(jī)狀態(tài)的控制器接收到用戶指令,會處理用戶指令,處理完成后自動回到待機(jī)狀態(tài)。當(dāng)控制器處理警報時接到用戶指令,控制器會中斷警報處理,進(jìn)行用戶指令處理。

從控制器的生命周期過程分析,可設(shè)定控制器有四種狀態(tài):控制器初始化Initializing狀態(tài);等待警報或用戶指令的待機(jī)Idle狀態(tài)、處理用戶指令的Command狀態(tài)和處理警報事件的Active狀態(tài)。Active狀態(tài)因?yàn)榘幌盗械木瘓筇幚磉^程,設(shè)計(jì)為組合狀態(tài),包含驗(yàn)證警報的Checking子狀態(tài)、呼叫警報公司登記警報的Calling子狀態(tài)、等待處理警報的Waiting子狀態(tài)。Active組合狀態(tài)有創(chuàng)建警報setAlarm作為入口動作和清除警報clearAlarm作為出口動作。

狀態(tài)之間存在以下轉(zhuǎn)換:第一次創(chuàng)建這個控制器對象時,從代表狀態(tài)機(jī)圖起始位置的初始狀態(tài)進(jìn)入Initializing狀態(tài);控制器在完成初始化后無條件的進(jìn)入Idle狀態(tài),因?yàn)椴恍枰|發(fā)事件,所以是完成轉(zhuǎn)換。Idle狀態(tài)中,每隔15秒自動進(jìn)行的設(shè)備自檢會暫時離開當(dāng)前狀態(tài),自檢完成后再返回該狀態(tài)。這類似一個心跳定時器,每隔一段時間就檢查系統(tǒng)或設(shè)備的健康狀況,這種情形在嵌入式系統(tǒng)中很常見。在狀態(tài)機(jī)圖中設(shè)計(jì)為一個由時間事件觸發(fā)的自我轉(zhuǎn)換??刂破鹘邮盏揭粋€報警事件alarm,設(shè)置事件參數(shù)s表示發(fā)生錯誤的傳感器,控制從Idle狀態(tài)轉(zhuǎn)換到Active狀態(tài)。Idle狀態(tài)下接收到attention信號事件也會轉(zhuǎn)換到Command狀態(tài),處理完用戶指令后,通過完成轉(zhuǎn)換轉(zhuǎn)回Idle狀態(tài)。在Active狀態(tài)中,執(zhí)行入口動作setAlarm,控制從初始狀態(tài)依次傳送到Checking狀態(tài)、Calling狀態(tài),最后到Waiting狀態(tài)。發(fā)生clearing事件警報被清除時,退出Active狀態(tài),回到Idle狀態(tài)。當(dāng)用戶向控制器發(fā)attention信號時,轉(zhuǎn)到Command狀態(tài)。離開Active狀態(tài)時,按照退出組合狀態(tài)的原則,先離開Waiting子狀態(tài),再離開組合狀態(tài),注意clearAlarm出口動作的執(zhí)行。

這里沒有終止?fàn)顟B(tài),這在嵌入式系統(tǒng)中是常見的,希望系統(tǒng)無限期不間斷的運(yùn)行??刂破鞯臓顟B(tài)機(jī)圖如圖1所示。

3結(jié)束語

狀態(tài)機(jī)圖適合于描述單個對象的動態(tài)行為,該對象通常代表一個類、一個用例或整個系統(tǒng)的實(shí)例。狀態(tài)機(jī)圖不適合描述多個對象的協(xié)作行為,要確定對象的所有行為必須同時結(jié)合順序圖和通信圖等交互圖來建模,才能得到對象的整體行為。

參考文獻(xiàn)

[1] 唐學(xué)忠,費(fèi)賢舉.UML面向?qū)ο蠓治雠c建模[M].北京:電子工業(yè)出版社,2008:217.

[2] 呂云翔,趙天宇,叢碩.UML與Rose建模實(shí)用教程[M].北京:人民郵電出版社,2016:73.

[3] Grady Booch,James Rumbaugh,Ivar Jacobson.UML用戶指南(第2版.修訂版)[M].北京:人民郵電出版社,2013:29.

作者簡介

商鵬,女,山東淄博人;學(xué)歷:碩士,講師,現(xiàn)就職單位:山東理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,研究方向:軟件工程與軟件建模。

猜你喜歡
狀態(tài)機(jī)建模
聯(lián)想等效,拓展建模——以“帶電小球在等效場中做圓周運(yùn)動”為例
基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
縝密審題,準(zhǔn)確建模,學(xué)以致用
基于PSS/E的風(fēng)電場建模與動態(tài)分析
電子制作(2018年17期)2018-09-28 01:56:44
不對稱半橋變換器的建模與仿真
基于狀態(tài)機(jī)比對的狀態(tài)機(jī)推斷方案
江蘇通信(2015年5期)2015-03-16 01:16:51
IDEF3和DSM在拆裝過程建模中的應(yīng)用
雙口RAM讀寫正確性自動測試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
三元組輻射場的建模與仿真
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
宁津县| 含山县| 获嘉县| 乳源| 朝阳市| 荥阳市| 河池市| 五河县| 和静县| 丹寨县| 沐川县| 皋兰县| 海城市| 凤庆县| 建宁县| 深圳市| 杨浦区| 曲阳县| 义马市| 乌鲁木齐县| 宜宾县| 唐山市| 虎林市| 盖州市| 甘南县| 武夷山市| 兰考县| 长治县| 灵石县| 宜川县| 恩施市| 西乌珠穆沁旗| 四平市| 陆川县| 新泰市| 芦山县| 博湖县| 巢湖市| 张家港市| 永川市| 凌源市|