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