- 相關(guān)推薦
運(yùn)用UML分析設(shè)計(jì)占先式實(shí)時(shí)內(nèi)核
要:UML是軟件工程領(lǐng)域的標(biāo)準(zhǔn)模語言。本文介紹使用統(tǒng)一建模語言UML對(duì)嵌入式系統(tǒng)中占先式實(shí)時(shí)內(nèi)核的面向?qū)ο筌浖治雠c設(shè)計(jì);詳述利用UML的各種標(biāo)準(zhǔn)符號(hào)進(jìn)行從需求分析到整體設(shè)計(jì)的一系列工作。引言
在過去的10多年里,嵌入式技術(shù)得到飛速發(fā)展。隨著嵌入式應(yīng)用的不斷深入,嵌入式系統(tǒng)的復(fù)雜性、不確定性在不斷提高,系統(tǒng)規(guī)模也在逐步增大;而產(chǎn)品的研發(fā)周期又在不斷地縮短,這給嵌入式應(yīng)用軟件的開發(fā)帶來了新的挑戰(zhàn)。因此,最近幾年,對(duì)占先式實(shí)時(shí)內(nèi)核的研究、開發(fā)與應(yīng)用逐漸成為嵌入式系統(tǒng)的重點(diǎn)研究方向。
面向?qū)ο蠹夹g(shù)由于內(nèi)在地支持了對(duì)系統(tǒng)的抽象、分層和復(fù)用技術(shù),能夠很好地控制系統(tǒng)的復(fù)雜性,可很好地減輕嵌入式軟件的開發(fā)者必然面臨 的由于芯片性能的提高、嵌入式操作系統(tǒng)平臺(tái)等技術(shù)方面不斷變化所帶來的各種壓力,因此在嵌入式領(lǐng)域得到越來越廣泛的應(yīng)用。其中,統(tǒng)一建模語言是當(dāng)今世界上面向?qū)ο笙到y(tǒng)開發(fā)領(lǐng)域中應(yīng)用最為廣泛的工具之一。
1 統(tǒng)一建模語言UML
1.1 UML簡介
UML(Unified Modeling Language)是一種標(biāo)準(zhǔn)的、用于面向?qū)ο蠛突跇?gòu)件的軟件系統(tǒng)建模工具,是一種用于對(duì)軟件系統(tǒng)模型繪制可視化描述的工具。UML以標(biāo)準(zhǔn)的、易于理解的方式建立能夠描述復(fù)雜系統(tǒng)結(jié)構(gòu)和過程的可視化模型,廣泛用于描述信息管理系統(tǒng)、具有實(shí)時(shí)要求的工業(yè)系統(tǒng)過程、嵌入式系統(tǒng)、分布式系統(tǒng)、系統(tǒng)軟件等。
UML由圖、視圖、模型元素、通用機(jī)制和擴(kuò)展機(jī)制等幾個(gè)部分組成。其中圖是UML建模的關(guān)鍵,視圖由圖來描述;而圖由模型元素結(jié)合通用機(jī)制、擴(kuò)展機(jī)制等表示和語義組成。
根據(jù)圖在系統(tǒng)開發(fā)過程中不同階段的應(yīng)用,可以分為五類:用例圖、靜態(tài)圖、行為圖、交互圖與實(shí)現(xiàn)圖。
這些圖為系統(tǒng)的分析、設(shè)計(jì)提供了多種圖形表達(dá)形式,應(yīng)用于建模的不同階段。運(yùn)用UML。我們可以分析、設(shè)計(jì)幾乎所有的軟件和非軟件系統(tǒng)。當(dāng)然,對(duì)于具體的系統(tǒng)應(yīng)該根據(jù)系統(tǒng)的類型、系統(tǒng)的規(guī)模和開發(fā)需要繪制相應(yīng)的圖,不一定在一個(gè)系統(tǒng)中畫出所有種類的圖。
1.2 UML與占先式實(shí)時(shí)內(nèi)核
開發(fā)一個(gè)占先式實(shí)時(shí)內(nèi)核與一般軟件的開發(fā)一樣,必然要經(jīng)過開發(fā)的分析、設(shè)計(jì)、編碼、測試四個(gè)階段。在嵌入式軟件開發(fā)過程中,一般采用的是一種順序開發(fā)方法。然而,由于嵌入式產(chǎn)品更新很快,研發(fā)周期要求盡可能的短,同時(shí)在開發(fā)過程中應(yīng)能動(dòng)態(tài)地調(diào)整,所以,開發(fā)初斯所做的需求分析和設(shè)計(jì),在后期的實(shí)現(xiàn)和測試中往往要做變動(dòng)。這反映了在軟件開發(fā)過程中的需求分析、設(shè)計(jì)與具體實(shí)現(xiàn)之間有某種程度上的脫節(jié),對(duì)軟件實(shí)現(xiàn)后面的驗(yàn)證往往會(huì)帶來很大風(fēng)險(xiǎn)。另外,傳統(tǒng)的嵌入式系統(tǒng)軟件開發(fā)環(huán)境主要是對(duì)開發(fā)過程中軟件實(shí)現(xiàn)和測試階段的支持,是以源程序的開發(fā)和測試為核心的,缺少必要的需求分析和設(shè)計(jì)工具。
UML為占先式實(shí)時(shí)內(nèi)核的設(shè)計(jì)和實(shí)現(xiàn)提供了一套功能強(qiáng)大的建模工具。由于UML融合了面向?qū)ο蠓椒ㄖ械臄?shù)據(jù)驅(qū)動(dòng)和行為驅(qū)動(dòng)兩種方式,可以從各個(gè)方面描述實(shí)時(shí)系統(tǒng)的功能及反映實(shí)時(shí)系統(tǒng)的結(jié)束條件,可以為具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)結(jié)構(gòu)的系統(tǒng)以面向?qū)ο髨D形的方式建模。因此,使用面向?qū)ο蟮腢ML可以很好地完成占先式實(shí)時(shí)內(nèi)核的建模。
圖2 占先式實(shí)時(shí)內(nèi)核的類圖
2 UML建模的具體應(yīng)用
2.1 占先式實(shí)時(shí)內(nèi)核概述
占先式實(shí)時(shí)內(nèi)核具有多任務(wù)機(jī)制。多任務(wù)機(jī)制是基于面向任務(wù)對(duì)象的,以任務(wù)為對(duì)象,以事件和時(shí)間為驅(qū)動(dòng),通過實(shí)時(shí)內(nèi)核管理時(shí)間關(guān)鍵任務(wù)和任務(wù)的優(yōu)先級(jí),實(shí)現(xiàn)任務(wù)之間的調(diào)度、協(xié)同和仲裁。
多任務(wù)機(jī)制的具體實(shí)現(xiàn)由調(diào)度程度來完成。在系統(tǒng)程序運(yùn)行過程中,當(dāng)前任務(wù)完成之后,調(diào)度程序調(diào)出任務(wù)就緒表中優(yōu)先級(jí)最高任務(wù)的入口地址,把CPU資源分析給該任務(wù),使之執(zhí)行。如果該任務(wù)在執(zhí)行過程中引起比它優(yōu)先級(jí)高的任務(wù)進(jìn)入就緒態(tài),或者是中斷服務(wù)程序使一個(gè)更高優(yōu)先級(jí)任務(wù)進(jìn)入就緒態(tài),調(diào)度程序會(huì)把任務(wù)的當(dāng)前程序指針、寄存器壓入到該任務(wù)的任務(wù)堆棧指針指向的?臻g,保證現(xiàn)場,再把CPU資源分配給更高優(yōu)先級(jí)任務(wù),使高優(yōu)先級(jí)任務(wù)開始執(zhí)行。高優(yōu)先級(jí)任務(wù)執(zhí)行完畢后,下一個(gè)在任務(wù)就緒表中的最高級(jí)任務(wù)先從該任務(wù)的堆棧數(shù)據(jù)區(qū)恢復(fù)寄存器、程序指針、程序狀態(tài),然后切換并執(zhí)行該任務(wù)。
采用占先式實(shí)時(shí)內(nèi)核的思想設(shè)計(jì)單片機(jī)軟件,可以合理應(yīng)用單片機(jī)的有限資源并達(dá)到很高的實(shí)時(shí)響應(yīng),能降低軟件設(shè)計(jì)的難度。在本設(shè)計(jì)中,要求占先式實(shí)時(shí)內(nèi)核應(yīng)用于單片機(jī)中,任務(wù)數(shù)量最多不超過16個(gè)任務(wù)。
占先式實(shí)時(shí)內(nèi)核的功能需求是:
*支持外部異步事件中斷、定時(shí)器中斷、消息傳遞及任務(wù)消息到達(dá)時(shí)的調(diào)度;
*支持基于任務(wù)優(yōu)先級(jí)占先調(diào)度,多種實(shí)時(shí)調(diào)度策略;
*任務(wù)的創(chuàng)建、運(yùn)行、懸掛、喚醒與撤銷;
*定時(shí)器時(shí)鐘管理,任務(wù)延時(shí)處理;
*共享資源管理,保證任務(wù)的同步運(yùn)行。
由于占先式實(shí)時(shí)內(nèi)核主要體現(xiàn)在軟件設(shè)計(jì)方面,所以在此省略了構(gòu)件圖和配置圖。
2.2 用例圖
圖1為用例圖,列出了該系統(tǒng)最基本的功能及功能描述,包括一系列用例和從系統(tǒng)中抽象出來的執(zhí)行者。
(1)角色說明
*任務(wù)。是嵌入式系統(tǒng)中用戶想要實(shí)現(xiàn)的具體功能,是一個(gè)線程。這些功能包括:輸入、輸出、數(shù)據(jù)處理、通信等。
*中斷。用來通知占先式實(shí)時(shí)內(nèi)核有一個(gè)事件發(fā)生,包括內(nèi)部非屏蔽中斷、定時(shí)器中斷與外部異步時(shí)間中斷。
*系統(tǒng)時(shí)鐘。用來創(chuàng)建中先式實(shí)時(shí)核所需要時(shí)候節(jié)拍。
(2)使用案例說明
*中斷響應(yīng)。占先式實(shí)時(shí)內(nèi)核通過對(duì)異步事件的處理,獲得任務(wù)運(yùn)行所需要的信號(hào)與數(shù)據(jù),使任務(wù)得以正常運(yùn)行。
*中斷級(jí)調(diào)度。中斷處理使得需要該中斷信號(hào)的任務(wù)就緒,調(diào)度程序判斷該任務(wù)是否為當(dāng)前任務(wù)就緒表中最高優(yōu)先級(jí)任務(wù),進(jìn)而決定該任務(wù)否立即進(jìn)行。
【運(yùn)用UML分析設(shè)計(jì)占先式實(shí)時(shí)內(nèi)核】相關(guān)文章:
UML 在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用03-18
使用Rhapsody軟件框架和UML的實(shí)時(shí)系統(tǒng)開發(fā)03-07
嵌入式實(shí)時(shí)操作系統(tǒng)研究與分析03-12
傳統(tǒng)紋樣在現(xiàn)代設(shè)計(jì)中的運(yùn)用分析03-01
建立實(shí)時(shí)企業(yè)的策略分析03-20
asp技術(shù)在交互式網(wǎng)頁設(shè)計(jì)中的運(yùn)用03-27
空間設(shè)計(jì)中徽派木雕藝術(shù)的運(yùn)用分析11-19