UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第15章 嵌入式系統(tǒng)設(shè)計(jì)_第1頁
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第15章 嵌入式系統(tǒng)設(shè)計(jì)_第2頁
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第15章 嵌入式系統(tǒng)設(shè)計(jì)_第3頁
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第15章 嵌入式系統(tǒng)設(shè)計(jì)_第4頁
UML系統(tǒng)分析與設(shè)計(jì)教程(第2版) 課件 第15章 嵌入式系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

UML系統(tǒng)分析與設(shè)計(jì)SystemAnalysis&Design冀振燕北京交通大學(xué)

第十五章嵌入式系統(tǒng)設(shè)計(jì)系統(tǒng)需求需求分析靜態(tài)結(jié)構(gòu)模型動(dòng)態(tài)行為模型物理模型UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi2系統(tǒng)需求便攜式心電記錄儀是一種消費(fèi)電子儀器,用來實(shí)時(shí)記錄心臟病人的心電波形,心電記錄儀的顯示器還可以回放所記錄的心電波形。心電數(shù)據(jù)由心電記錄儀的傳感器采集后,轉(zhuǎn)變?yōu)閿?shù)字信號(hào),然后存儲(chǔ)在記錄儀的存儲(chǔ)器中。用戶可以通過心電記錄儀的顯示器,在任何時(shí)候快速回放所存儲(chǔ)的任何一個(gè)時(shí)間段的心電波形。心電記錄儀應(yīng)該具有體積小、重量輕、易使用、可省電(可以由電池提供電源)等特點(diǎn)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi3系統(tǒng)需求按鈕“記錄”用來啟動(dòng)心電信號(hào)記錄;按鈕“回放”用來回放所記錄的心電信號(hào);按鈕“停止”用來停止系統(tǒng)的記錄或回放活動(dòng);按鈕“刪除”用來刪除所記錄的心電信號(hào);按鈕“菜單”用來激活系統(tǒng)菜單,按鈕“上”、“下”、“左”、“右”用來選擇菜單項(xiàng),按鈕“OK”用來確定選項(xiàng)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi4系統(tǒng)需求主要功能可以存儲(chǔ)20個(gè)心電波(ECGWave),每個(gè)心電波的長度由內(nèi)存的大小來決定。具有屏幕菜單,使用方便可以設(shè)置鬧鈴,提示用戶時(shí)間到。具有LCD顯示器可以顯示心電波形、心電波形的記錄時(shí)間和記錄日期、當(dāng)前時(shí)間和當(dāng)前日期。當(dāng)前的時(shí)間和日期總是出現(xiàn)在顯示器上。顯示器還顯示電池使用情況指標(biāo)。當(dāng)電池電量不足時(shí),系統(tǒng)發(fā)出蜂鳴聲提醒用戶。具有待用模式(Stand-byMode),這樣可以節(jié)省能量。當(dāng)不用時(shí),系統(tǒng)關(guān)閉外設(shè);當(dāng)用戶隨便按一個(gè)按鈕時(shí),系統(tǒng)激活,返回正常工作狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi5需求分析識(shí)別參與者系統(tǒng)的參與者只有一個(gè),即User(用戶)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi6參與者“User”的描述需求分析識(shí)別用例記錄心電信號(hào)(RecordECG)。當(dāng)用戶按下“記錄”按鈕,記錄儀開始記錄心電信號(hào);用戶按下“停止”按鈕或者內(nèi)存用完時(shí),記錄儀停止記錄心電信號(hào)?;胤判碾娦盘?hào)(PlaybackECG)。用戶可以從目錄表中選擇所要回放的心電信號(hào),按下“回放”按鈕,心電信號(hào)片段開始在顯示器上回放,直到結(jié)束(或者當(dāng)用戶按下“停止”按鈕時(shí),回放停止)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi7識(shí)別用例刪除心電信號(hào)(DeleteECG)。用戶可以從目錄表中選擇某個(gè)心電信號(hào)片段,然后按下“刪除”按鈕,則該心電信號(hào)片段從內(nèi)存中被刪除,其所占用的內(nèi)存空間被釋放。設(shè)置鬧鈴時(shí)間(SetAlarmTime)。用戶可以打開或關(guān)閉鬧鈴,并設(shè)置鬧鈴的時(shí)間。打開或關(guān)閉鬧鈴以及設(shè)置鬧鈴的時(shí)間是通過選擇系統(tǒng)菜單的不同選項(xiàng)進(jìn)行的。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi8需求分析識(shí)別用例設(shè)置時(shí)鐘時(shí)間(SetClockTime)。用戶可以設(shè)置時(shí)鐘時(shí)間,或者調(diào)整時(shí)鐘的時(shí)間。顯示時(shí)間(DisplayTime)。系統(tǒng)在開機(jī)狀態(tài)下應(yīng)該一直在顯示器上顯示當(dāng)前的時(shí)間和日期,用戶可以查看當(dāng)前時(shí)間和日期。顯示電池狀態(tài)(DisplayBatteryStatus)。系統(tǒng)在開機(jī)狀態(tài)下應(yīng)該一直在顯示器上顯示電池狀態(tài)。當(dāng)電量不足時(shí),系統(tǒng)發(fā)出蜂鳴聲,電池狀態(tài)則顯示為警告狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi9需求分析系統(tǒng)的用例圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi10需求分析回放心電信號(hào)當(dāng)用戶User按下“回放”按鈕,即發(fā)送消息“PlayECG”(回放心電信號(hào))給系統(tǒng)時(shí),系統(tǒng)System發(fā)送消息“StartplayingECG”(開始回放心電信號(hào))給顯示器,系統(tǒng)通過顯示器回放心電信號(hào),同時(shí)顯示回放進(jìn)度給用戶(Showprogressindicator)。一秒過后(Nextsecond),系統(tǒng)更新顯示時(shí)間(Shownewtime),并繼續(xù)顯示回放進(jìn)度(Showprogressindicator)。當(dāng)用戶按下“停止”按鈕,即發(fā)送消息“Stop”(停止)給系統(tǒng)時(shí),顯示器停止回放心電信號(hào)(StopplayingECG)。圖中的注釋說明了響應(yīng)時(shí)間的限制(響應(yīng)時(shí)間的限制最好用兩個(gè)消息間的約束來描述,但由于本人所采用的UML建模軟件不支持消息間的約束,所以就用注釋來描述了),第一個(gè)“0.5s”表示按下“回放”按鈕和系統(tǒng)開始回放心電信號(hào)的間隔不超過0.5s;第二個(gè)“0.5s”表示按下“停止”按鈕和系統(tǒng)停止回放心電信號(hào)的間隔不超過0.5s。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi11“回放心電信號(hào)”順序圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi12需求分析進(jìn)入待用模式和從待用模式蘇醒系統(tǒng)如果在2min內(nèi)沒有任何活動(dòng),系統(tǒng)就關(guān)閉顯示器和揚(yáng)聲器(Switchoff),從而進(jìn)入待用模式。當(dāng)有警報(bào)發(fā)生時(shí)(Alarm),系統(tǒng)就打開顯示器和揚(yáng)聲器(Switchon),即系統(tǒng)從待用模式恢復(fù),然后通過揚(yáng)聲器報(bào)警(Playalarm)。1s過后(Nextsecond)或電池沒電(Nopower)時(shí),系統(tǒng)停止通過揚(yáng)聲器報(bào)警(Stopplayingalarm),系統(tǒng)重新關(guān)閉顯示器和揚(yáng)聲器(Switchoff)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi13“進(jìn)入待用模式和從待用模式蘇醒”順序圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi14需求分析產(chǎn)生警報(bào)用戶發(fā)送消息“PlayECG”(回放心電信號(hào))給系統(tǒng)System,系統(tǒng)發(fā)送“StartplayingECG”(開始回放心電信號(hào))的消息給顯示器,系統(tǒng)通過顯示器回放心電信號(hào),同時(shí)顯示回放進(jìn)度給用戶(Showprogressindicator)。1s過后(Nextsecond),系統(tǒng)更新顯示時(shí)間(Shownewtime),并繼續(xù)顯示回放進(jìn)度(Showprogressindicator)。這時(shí)有警報(bào)產(chǎn)生(Alarm),系統(tǒng)通過揚(yáng)聲器報(bào)警(Playalarm),并顯示報(bào)警信號(hào)(Showalarmindicator),其中顯示報(bào)警信號(hào)和報(bào)警產(chǎn)生之間的間隔不超過0.5s。然后,用戶按下按鈕“停止”,即發(fā)送消息“Stop”(停止)給系統(tǒng),顯示器停止回放心電信號(hào)(StopplayingECG),并停止報(bào)警(Stopplayingalarm)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi15“產(chǎn)生警報(bào)”順序圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi16靜態(tài)結(jié)構(gòu)模型識(shí)別出類可以從系統(tǒng)中抽象出以下主要的類,包括類Battery、類Alarmclock、類Keyboard、類Display、類GUI、類Controller、類ECGOutput、類ECGMemory、類ECGSegment、類ECGInput、類Sensor。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi17系統(tǒng)類圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi18系統(tǒng)包圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi19靜態(tài)結(jié)構(gòu)模型下面分別對每個(gè)子系統(tǒng)進(jìn)行詳細(xì)的介紹。(1)ECG子系統(tǒng)。由于每個(gè)心電波是由多個(gè)心電信號(hào)片段組成,因此在類ECGWave和類ECGSegment之間存在聚合關(guān)系,即ECGSegment是ECGWave的一部分,1個(gè)ECGWave可以由0個(gè)或多個(gè)ECGSegment組成,而1個(gè)ECGSegment只屬于1個(gè)ECGWave。另外,每個(gè)心電信號(hào)片段又由多個(gè)心電周期樣本組成,所以,類ECGSample與類ECGSegment之間存在聚合關(guān)系,ECGSample是ECGSegment的一部分,1個(gè)ECGSegment可以由0個(gè)或多個(gè)ECGSample組成,而1個(gè)ECGSample只屬于1個(gè)ECGSegment。為了節(jié)省內(nèi)存空間,采集到的心電數(shù)據(jù)需要壓縮后存儲(chǔ),壓縮后的心電周期抽象為類CompressedECGBlock,類CompressedECGBlock是類ECGSegment的子類。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi20ECG子系統(tǒng)的類圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi21靜態(tài)結(jié)構(gòu)模型順序圖描述了回放心電信號(hào)過程中對象之間的交互作用。GUI的對象發(fā)送消息playECGWave()給Controller對象,Controller對象發(fā)送消息getECGSegment()給ECGWave的對象,ECGWave返回壓縮后的心電信號(hào)給Controller,然后Controller發(fā)送消息playCompressed-ECGSegment()給ECGOutput對象。ECGOutput對象發(fā)送消息playSample()給顯示器Display,心電數(shù)據(jù)開始回放,心電片段由n個(gè)心電周期樣本組成,第一個(gè)片段回放后,對于Controller重復(fù)獲取心電片段并回放的行為,直到心電片段播放完畢或者用戶按“停止”按鈕時(shí)為止。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi22UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi23靜態(tài)結(jié)構(gòu)模型(2)Memory子系統(tǒng)。類ECGMemory管理心電記錄儀的存儲(chǔ)空間,它保存了所記錄的所有心電波數(shù)據(jù),并分配空間給新的心電波數(shù)據(jù),還可以刪除某個(gè)心電波數(shù)據(jù)。Memory子系統(tǒng)的類圖如圖15.11所示。類ECGMemory是類Controller的一部分,它們之間存在著聚合關(guān)系,每個(gè)Controller對象有1個(gè)ECGMemory對象,每個(gè)ECGMemory只屬于1個(gè)Controller對象。類ECGSegment與類ECGMemory之間存在著關(guān)聯(lián)關(guān)系,每個(gè)ECGMemory可以存儲(chǔ)0個(gè)或n個(gè)ECGSegment,每個(gè)ECGSegment只屬于1個(gè)ECGMemory。類ECGWave與類ECGSegment之間也存在著聚合關(guān)系,每個(gè)ECGSegment只屬于1個(gè)ECGWave,1個(gè)ECGWave由0個(gè)或n個(gè)ECGSegment組成。類ECGWave與類ECGMemory之間也存在著關(guān)聯(lián)關(guān)系,每個(gè)ECGMemory最多可以存儲(chǔ)20個(gè)ECGWave,每個(gè)ECGWave只屬于1個(gè)ECGMemory。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi24Memory子系統(tǒng)的類圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi25靜態(tài)結(jié)構(gòu)模型類GUI可以通過類ECGMemory來獲取所記錄的心電波列表,但類GUI不能修改它,只有類Controller可以通過類ECGMemory來修改所記錄的心電波。如果類GUI想刪除心電波,它需要調(diào)用類Controller的方法delECGWave(),而不是直接訪問對象ECGMemory。這樣做是為了防止在控制器回放或記錄心電波時(shí),用戶界面刪除該心電波。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi26UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi27靜態(tài)結(jié)構(gòu)模型(3)Alarm_Clock子系統(tǒng)。類AlarmClock可以提供系統(tǒng)當(dāng)前的時(shí)間、日期和鬧鈴定時(shí)時(shí)間。類AlarmClock通過計(jì)時(shí)器Timer來計(jì)時(shí),每過去1s,就使用方法nextSecond()更新一次時(shí)間的內(nèi)部表示。當(dāng)24h過去時(shí),使用類Date的nextDay()方法更新日期。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi28Alarm_Clock子系統(tǒng)類圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi29靜態(tài)結(jié)構(gòu)模型(4)UserInterface子系統(tǒng)。類GUI管理用戶與系統(tǒng)的交互。它接受用戶的鍵盤輸入,并通過顯示器反饋給用戶。類Keyboard是硬件鍵盤的軟件接口,類Display是硬件顯示器的軟件接口。在類GUI與類Keyboard之間存在關(guān)聯(lián)關(guān)系。類GraphicContext提供了圖形上下文,可以在顯示器上顯示點(diǎn)、線、字符串,以及各種圖形,每個(gè)圖形上下文都代表了顯示器的矩形區(qū)域。類GraphicContext與類Display之間也存在關(guān)聯(lián)關(guān)系。類View調(diào)用GraphicContext的方法,在顯示器上顯示時(shí)間、菜單等,類View和類GraphicContext是關(guān)聯(lián)關(guān)系。類View有3個(gè)子類,即類ClockView、類TaskView和類MenuView。類View又是類GUI的一部分,即在類View和類GUI之間存在著聚合關(guān)系,每個(gè)View都屬于1個(gè)GUI,每個(gè)GUI都可以有1個(gè)或多個(gè)View。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi30UserInterface子系統(tǒng)類圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi31動(dòng)態(tài)行為模型狀態(tài)機(jī)圖(1)Controller(控制器)對象。Controller對象可以用來記錄心電信號(hào)、播放心電信號(hào)或報(bào)警。Controller對象有4個(gè)狀態(tài)。通常,Controller對象處于“Idle”(空閑)狀態(tài),如果“記錄”按鈕被按下,則事件“record”(記錄)發(fā)生,對象進(jìn)入“Recording”狀態(tài),當(dāng)事件“stop”(停止)發(fā)生,系統(tǒng)停止記錄,對象返回“Idle”狀態(tài);如果“回放”按鈕被按下,事件“playback”(回放)發(fā)生,對象進(jìn)入“Playing”(播放)狀態(tài),當(dāng)事件“stop”(停止)發(fā)生時(shí),系統(tǒng)停止回放,對象返回“Idle”狀態(tài);如果警報(bào)發(fā)生,即事件“alarm”(警報(bào))發(fā)生時(shí),對象進(jìn)入“Alarming”狀態(tài),當(dāng)事件“stop”(停止)發(fā)生時(shí),系統(tǒng)停止回放,對象返回“Idle”狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi32動(dòng)態(tài)行為模型Controller對象的狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi33動(dòng)態(tài)行為模型(2)ECGInput(心電輸入)對象。ECGInput對象控制心電輸入通道,該對象通過Sensor(傳感器)對象來記錄心電數(shù)據(jù)。值得注意的是,采樣得到的心電數(shù)據(jù)要經(jīng)過壓縮再存儲(chǔ)。ECGInput對象有3個(gè)狀態(tài)。通常,ECGInput對象處于“Idle”(空閑)狀態(tài),如果事件“recordCompressedECGSegment(ecg:ECGSegment)”(獲取壓縮心電數(shù)據(jù))發(fā)生,對象進(jìn)入“Record”狀態(tài),開始記錄心電數(shù)據(jù),在進(jìn)入該狀態(tài)時(shí),需執(zhí)行入口動(dòng)作“StartDMA”(啟動(dòng)DMA)協(xié)助記錄。當(dāng)事件“DMAEndOfTransfer”(數(shù)據(jù)傳輸結(jié)束)發(fā)生時(shí),對象進(jìn)入“Compress”狀態(tài),壓縮心電數(shù)據(jù),壓縮完成后,ECGInput對象返回“Idle”狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi34動(dòng)態(tài)行為模型ECGInput對象的狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi35動(dòng)態(tài)行為模型(3)ECGOutput(心電輸出)對象。ECGOutput對象控制心電輸出通道,它可以通過顯示器來回放心電數(shù)據(jù)。ECGOutput對象有3個(gè)狀態(tài),通常ECGOutput對象處于“Idle”(空閑)狀態(tài),如果事件“PlayCompressedECGSegment(ecg:ECGSegment)”(回放壓縮的心電數(shù)據(jù))發(fā)生,對象進(jìn)入“Expand”(展開)狀態(tài),開始對心電數(shù)據(jù)解壓縮,在進(jìn)入該狀態(tài)時(shí),需執(zhí)行入口動(dòng)作“StartDMA”(啟動(dòng)DMA)協(xié)助回放。解壓縮完成后,ECGOutput對象進(jìn)入“Play”(回放)狀態(tài),回放心電數(shù)據(jù),回放結(jié)束后,ECGOutput對象返回“Idle”狀態(tài)。如果在ECGOutput對象處于“Idle”狀態(tài)時(shí),事件“PlayECGSegment(ecg:ECGSegment)”(回放心電數(shù)據(jù))發(fā)生,則ECGOutput對象直接進(jìn)入“Play”狀態(tài),回放心電數(shù)據(jù),回放結(jié)束后,ECGOutput對象返回“Idle”狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi36動(dòng)態(tài)行為模型

ECGOutput對象的狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi37動(dòng)態(tài)行為模型(4)Sensor(傳感器)對象。Sensor對象是物理傳感器的接口。傳感器可以采集數(shù)據(jù)。當(dāng)SwichOn發(fā)生(打開電源)后,Sensor對象進(jìn)入“Idle”(空閑)狀態(tài),如果事件“startsampling”(開始采樣)發(fā)生,對象進(jìn)入“Sampling”(采樣)狀態(tài),對心電數(shù)據(jù)進(jìn)行采樣,事件“intervalpassed”(采樣間隔時(shí)間過去)引起的躍遷是自躍遷,在事件發(fā)生時(shí),執(zhí)行動(dòng)作getSample()進(jìn)行采樣。如果事件“stopsampling”(停止采樣)發(fā)生,對象返回“Idle”狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi38動(dòng)態(tài)行為模型Sensor對象的狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi39動(dòng)態(tài)行為模型(5)Display(顯示器)對象。Display對象是物理顯示器的軟件接口。當(dāng)SwichOn發(fā)生(電源開通)后,Display對象進(jìn)入“Idle”(空閑)狀態(tài),如果事件“PlayECG”(播放心電圖)發(fā)生,對象進(jìn)入“PlayingECGWave”狀態(tài),顯示器播放心電圖。如果事件“StopPlay”(停止播放)發(fā)生,對象返回“Idle”狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi40動(dòng)態(tài)行為模型Display對象的狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi41動(dòng)態(tài)行為模型(6)Speaker(揚(yáng)聲器)對象。Speaker對象是物理揚(yáng)聲器的軟件接口。當(dāng)SwichOn發(fā)生(電源開通)后,Speaker對象進(jìn)入“Idle”(空閑)狀態(tài),如果事件“AlarmHappen”(警報(bào)發(fā)生)發(fā)生,對象進(jìn)入“PlayingAlarm”(播放警報(bào))狀態(tài),揚(yáng)聲器播放警報(bào)。如果事件“AlarmIsOver”(警報(bào)結(jié)束或停止)發(fā)生,對象返回“Idle”狀態(tài)。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi42動(dòng)態(tài)行為模型Speaker對象的狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi43動(dòng)態(tài)行為模型(7)Timer(計(jì)時(shí)器)對象。Timer對象是物理計(jì)時(shí)器的軟件接口。Timer對象只有1個(gè)狀態(tài)“Timing”(計(jì)時(shí)狀態(tài)),事件“HardwareTimerInterrupt”(硬件時(shí)鐘中斷)引起的躍遷是自躍遷。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi44動(dòng)態(tài)行為模型(8)用戶界面。MenuUserMode(菜單用戶模式)對象。MenuUserMode是用戶界面的主要用戶模式。用戶可以通過“上”、“下”、“左”、“右”4個(gè)按鈕來遍歷菜單項(xiàng),以選擇所想要的選項(xiàng)?!吧稀?、“下”按鈕可以用來選擇上一個(gè)菜單選項(xiàng)或下一個(gè)菜單選項(xiàng),“OK”按鈕用來選中所需要的選項(xiàng),而“左”、“右”按鈕用來選中前一個(gè)菜單或下一個(gè)菜單。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi45MenuUserMode對象的狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi46動(dòng)態(tài)行為模型SettingTimeUserMode(設(shè)置時(shí)鐘用戶模式)對象。設(shè)置時(shí)鐘用戶模式用于改變當(dāng)前時(shí)間或鬧鈴時(shí)間。其中,“左”、“右”按鈕用來切換激活代表秒、分鐘和小時(shí)的域,“上”、“下”按鈕用來修改激活域的值。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi47SettingTimeUserMode對象狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi48動(dòng)態(tài)行為模型SettingDateUserMode(設(shè)置日期用戶模式)對象。設(shè)置日期用戶模式用于改變當(dāng)前的日期。其中,“左”、“右”按鈕用來切換激活代表日、月、年的域,“上”、“下”按鈕用來修改激活域的值。SettingDateUserMode對象的狀態(tài)機(jī)圖如圖15.25所示。首先,SettingDateUserMode對象處于“Idle”(空閑)狀態(tài),當(dāng)日期用戶模式被激活時(shí),對象進(jìn)入“ActiveSettingDateUserMode”狀態(tài),即日期用戶模式激活狀態(tài)。SettingDateUserMode對象的“ActiveSettingDateUserMode”狀態(tài)是一個(gè)組合狀態(tài),它含有3個(gè)子狀態(tài)。對象開始進(jìn)入“ModifyDay”(修改日期)狀態(tài),即“日期”域激活。當(dāng)對象SettingDateUserMode處于“ModifyDay”狀態(tài)時(shí),單擊“上”按鈕時(shí),即事件“press(Up)”發(fā)生,日期增加,該事件每發(fā)生1次,日期增加1天;單擊“下”按鈕時(shí),即事件“press(Down)”發(fā)生,日期減少,該事件每發(fā)生1次,日期減少1天;單擊“右”按鈕時(shí),即事件“press(Right)”發(fā)生,對象進(jìn)入“ModifyMonth”(修改月份)狀態(tài),即激活域切換到“月”域。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi49SettingDateUserMode對象狀態(tài)機(jī)圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi50動(dòng)態(tài)行為模型通信圖如下頁圖所示通信圖描述了Scheduler對象與它的客戶之間的協(xié)作。Scheduler對象為依賴于時(shí)間的對象(例如,對象AlarmClock)提供了準(zhǔn)確的計(jì)時(shí)和調(diào)度。對象AlarmClock“預(yù)訂”了對象Scheduler的事件,即時(shí)間每過去一秒,對象Scheduler都會(huì)通知對象AlarmClock一秒鐘過去了。UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi51定期喚醒對象的通信圖UML系統(tǒng)分析與設(shè)計(jì)第2版ZhenyanJi52動(dòng)態(tài)行為模型幻燈片54頁圖所示的通信圖描述了SettingTimeUserMode對象、AlarmClock對象、Keyboard對象、ClockView對象等之間的協(xié)作,該協(xié)作用來設(shè)置便攜式心電記錄儀的時(shí)間。幻燈片55頁圖所示的通信圖描述了GUI對象、Controller對象、ECGOutput對象、ECGWave對象等之間的協(xié)作,該協(xié)作用來描述回放心電波的過程?;脽羝?6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論