<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于UML 的嵌入式系統可視化開(kāi)發(fā)方法

一種基于UML 的嵌入式系統可視化開(kāi)發(fā)方法

作者: 時(shí)間:2017-06-06 來(lái)源:網(wǎng)絡(luò ) 收藏
摘 要  近年來(lái),在嵌入式領(lǐng)域中缺乏一個(gè)成熟的始終一貫的,這已成為制約發(fā)展的瓶頸之一。本文結合統一建模語(yǔ)言,對開(kāi)發(fā)方法進(jìn)行了有益的探索研究,提出了一種基于的適合于,并以嵌入式遠程溫度監控系統為例,驗證了該方法的可行性和有效性。

關(guān)鍵詞  ,嵌入式系統,

中圖分類(lèi)號: TP31 文獻標示碼: A

1 引言

隨著(zhù)信息產(chǎn)業(yè)和微電子技術(shù)的發(fā)展,嵌入式系統的功能日漸強大,結構也愈加復雜,傳統的嵌入式開(kāi)發(fā)方法已不能滿(mǎn)足開(kāi)發(fā)要求,人們開(kāi)始嘗試用一些形式化的開(kāi)發(fā)方法進(jìn)行開(kāi)發(fā)。一種適合于嵌入式系統的形式化開(kāi)發(fā)方法,不僅能縮短嵌入式系統開(kāi)發(fā)的周期,還能減少開(kāi)發(fā)成本,提高系統質(zhì)量。本文結合統一建模語(yǔ)言UML,提出一種嵌入式系統可視化開(kāi)發(fā)方法,并將其實(shí)際運用到了嵌入式遠程溫度監控系統的開(kāi)發(fā)過(guò)程中,驗證了該方法的可行性和有效性。

2 基于UML 的嵌入式系統可視化開(kāi)發(fā)方法

2.1  統一建模語(yǔ)言UML


UML(Unified Modeling Language) 是一種定義良好、易于表達、功能強大且普遍適用的面向對象和基于構件的系統建模語(yǔ)言。它擴展了現有方法的應用范圍,不僅可建立軟件系統的模型,還可建立非軟件系統的模型,可廣泛用于描述系統軟件、嵌入式系統、企業(yè)機構或業(yè)務(wù)過(guò)程等。 UML由圖、視圖、模型元素、通用機制和擴展機制等幾個(gè)部分組成 [2] 。其中圖是UML建模的關(guān)鍵,根據圖在系統開(kāi)發(fā)過(guò)程中不同階段的應用,可以分為用例圖、靜態(tài)圖、行為圖、交互圖、實(shí)現圖等五類(lèi),這些圖為系統的開(kāi)發(fā)提供了多種圖形表達形式,應用于建模的不同階段。

2.2  將UML 語(yǔ)言應用于嵌入式系統開(kāi)發(fā)的優(yōu)勢

隨著(zhù)嵌入式系統的日趨復雜化,較多的系統都需要由一個(gè)團隊共同完成,因此,團隊成員之間的相互合作,軟硬件之間的協(xié)同開(kāi)發(fā),乃至開(kāi)發(fā)人員和客戶(hù)之間的交流都需要有一個(gè)統一的標準作為基礎。UML正是這樣一種標準的系統建模語(yǔ)言。它詳細描述系統的內容和工作方法,先進(jìn)行系統建模后再編寫(xiě)代碼,在開(kāi)始階段就保證了系統結構的合理性。UML系統模型包含許多不同框圖,使項目小組可以從不同角度了解整個(gè)系統。另外,UML可以用統一的形式表現軟件和硬件,支持循環(huán)迭代并可多次修改軟硬件方案直到滿(mǎn)足要求,可實(shí)現軟硬件協(xié)同設計。 特別的,UML是一種語(yǔ)言,不是方法,它獨立于開(kāi)發(fā)過(guò)程 [3] ,所以我們可以結合UML語(yǔ)言提出一套針對嵌入式系統的開(kāi)發(fā)過(guò)程,從而為嵌入式系統的開(kāi)發(fā)提供一條新的途徑。

2.3  基于UML 的嵌入式系統可視化開(kāi)發(fā)方法

文中提出的基于UML的嵌入式系統開(kāi)發(fā)方法支持需求、分析、設計、實(shí)現、測試的循環(huán)迭代,使用面向對象思想,通過(guò)細化分析和設計階段的步驟,使得整個(gè)過(guò)程更有條理、充實(shí),更適合于多任務(wù)的嵌入式系統開(kāi)發(fā)。方法的需求、分析、設計過(guò)程被細化后分別包括了以下幾個(gè)步驟:

· 需求階段明確了系統所要實(shí)現的功能以及所要達到的性能,是整個(gè)系統開(kāi)發(fā)的目標。

功能性需求:明確系統應該提供什么功能。

非功能性需求:明確系統的特定特性或者約束。

· 分析階段主要是精化和結構化需求,清楚地描述系統內部,是設計階段的基礎。分為兩個(gè)步驟:

系統架構分析:運用面向對象技術(shù)描述系統的靜態(tài)結構。

系統行為分析:從動(dòng)態(tài)的角度描述系統的對象間相互作用的特性。

· 設計階段是在對系統各方面有了解的基礎上來(lái)確定特定的解決方案。分為兩個(gè)步驟:

分層結構設計:確定了具體實(shí)現時(shí)軟件和硬件的最佳分界。

詳細設計:在軟件方面是深入到了系統低層信息,如操作的屬性、類(lèi)的流程等;硬件方面則是到了設計具體電路板的階段。

本方法利用面向對象的概念將系統分成了相互關(guān)聯(lián)卻又較獨立的模塊,一方面方便了系統開(kāi)發(fā)時(shí)的迭代過(guò)程以及系統的后期維護,設計人員可以根據不同的新的需要對各個(gè)步驟中相應部分進(jìn)行調整來(lái)實(shí)現改進(jìn),這樣就可以大量減少重復分析或設計的過(guò)程;另一方面,對象概念可以和嵌入式系統中的任務(wù)概念很好的映射起來(lái)。任務(wù)可看成是由一個(gè)或多個(gè)對象協(xié)作而成的,在分析、設計過(guò)程中確立對象的同時(shí)也就確定了系統的多個(gè)任務(wù),為嵌入式系統的多任務(wù)特性提供了很好的支持。

本文后續部分將以嵌入式遠程溫度監控系統為例,簡(jiǎn)單闡述和驗證此方法。

3 系統需求

3.1 功能性需求

功能性需求是系統功能的陳述。在UML中是應用用例圖來(lái)描述系統功能的。如圖1所示,系統大致由下述幾個(gè)角色和用例組成:

本文引用地址:http://dyxdggzs.com/article/201706/349390.htm 三個(gè)角色:數字式測溫儀,Internet遠端用戶(hù),本地用戶(hù)。

五個(gè)用例:當前溫度信息顯示、更改最高警戒溫度、更改最低警戒溫度、修改測溫儀工作狀態(tài)以及登陸服務(wù)器(身份驗證)。
以上的各個(gè)用例只是對系統功能的大致劃分,主要目的是為后面的系統分析作基礎。


3.2 非功能性需求

非功能性需求是系統的特定特性。本系統的非功能性需求是:

溫度測量范圍要求0-400℃,顯示精度 為0.2℃。

在工業(yè)現場(chǎng),遠程監控系統對數字式測溫儀實(shí)現無(wú)線(xiàn)監控。

遠程監控系統為Internet遠端用戶(hù)提供統一開(kāi)放的平臺,

遠程監控系統每秒自動(dòng)更新提供給用戶(hù)的溫度信息。

遠程監控系統也為本地用戶(hù)提供友好的人機交互界面。

可以看出,這些非功能性需求為確定系統的結構和系統選用的技術(shù)等進(jìn)行了約束。

4 系統分析

在系統分析階段,通過(guò)細化和結構化系統需求,可將系統需求轉換成系統中的結構、類(lèi)、對象和關(guān)系等實(shí)體元素,并從靜態(tài)和動(dòng)態(tài)兩個(gè)角度來(lái)清楚描述這些實(shí)體元素。

4.1  系統結構分析

系統結構分析是對系統元素靜態(tài)的描述,它在系統需求的基礎上確定系統的總體架構及內部對象。

首先用部署圖來(lái)描述系統的物理架構,如圖2所示,其中帶有陰影的為處理器,未帶有陰影的是外部設備;系統采用了目前遠程監控系統中比較流行的瀏覽器/服務(wù)器模式(B/S)。這樣系統的4個(gè)功能用例都將主要由嵌入式Web服務(wù)器實(shí)現。此外,根據非功能性需求中的無(wú)線(xiàn)監控約束,在工控現場(chǎng),運用了藍牙技術(shù)。

然后用類(lèi)圖來(lái)描述系統靜態(tài)的對象結構及其相互關(guān)系。從用例圖(圖1)中我們可分解出一些類(lèi),并將這些類(lèi)之間的結構描述出來(lái)。比如從遠端用戶(hù)的“登錄服務(wù)器”用例就可分解出嵌入式Web服務(wù)器中的網(wǎng)卡、TCP/IP、HTTP類(lèi),本地用戶(hù)的“登錄服務(wù)器”用例則可分解出嵌入式Web服務(wù)器中的鍵盤(pán)、顯示器和本地監控等類(lèi)。依次略推在嵌入式Web 服務(wù)器中共定義了網(wǎng)卡、TCP/IP、HTTP、藍牙模塊、鍵盤(pán)、顯示屏、本地監控、數據處理等類(lèi)。

每個(gè)類(lèi)可以設置屬性和操作,但我們在這個(gè)步驟中并沒(méi)有定義,而僅僅是對嵌入式Web服務(wù)器的 對象結構作靜態(tài)描述,類(lèi)的屬性和操作的定義將隨著(zhù)完整的類(lèi)圖在后文中出現。

4.2 系統行為分析

系統行為分析就是從多個(gè)角度來(lái)描述所研究系統的動(dòng)態(tài)部分。我們可用狀態(tài)圖描述系統的狀態(tài)行為,然后根據系統內部所具有的行為來(lái)定義和精化類(lèi)的操作,另外也可用順序圖和協(xié)作圖從不同的角度來(lái)顯示動(dòng)態(tài)的信息流。

這里采用嵌入式Web服務(wù)器的狀態(tài)圖來(lái)簡(jiǎn)單說(shuō)明(如圖3所示)。根據嵌入式系統的特點(diǎn),在此處,狀態(tài)圖不但包括嵌套層次結構狀態(tài)的概念,還可用并發(fā)的概念來(lái)表示那些可以和其他狀態(tài)同時(shí)處于活動(dòng)狀態(tài)的獨立狀態(tài),圖中用虛線(xiàn)表示。

圖 3 嵌入式Web服務(wù)器狀態(tài)圖

5 系統設計

設計階段是在對系統各方面都有充分了解的基礎上確定特定的解決方案。


5.1 層次結構設計

我們在系統的分析階段,一直使用統一的標識來(lái)描述系統,但系統具體實(shí)現時(shí)還是需要將軟、硬件分開(kāi)實(shí)現,所以我們要在系統設計階段對軟硬件層次進(jìn)行劃分。若這次的劃分最終不能滿(mǎn)足要求,也可以通過(guò)迭代在以后的循環(huán)中嘗試多種方案,直到滿(mǎn)足要求。

在系統結構分析中用類(lèi)圖所作的統一描述涵蓋了軟件層和硬件層共同組成的系統結構,所有軟件層和硬件層都是由類(lèi)圖中提取而來(lái)的,但類(lèi)圖中既可由軟件實(shí)現又可由硬件提供的一部分內容則要根據性能、價(jià)格、規格大小等因素來(lái)加以選擇。如本系統中TCP/IP協(xié)議棧的實(shí)現,就即可通過(guò)軟件編程,也可選擇購買(mǎi)提供 TCP/IP協(xié)議棧的網(wǎng)卡芯片,相比較而言,自帶TCP/IP協(xié)議棧的網(wǎng)卡芯片提供的性能更高、更穩定,但成本也較高,但本系統對網(wǎng)絡(luò )實(shí)現并沒(méi)有特別高的要求,所以從成本上考慮,還是選擇了軟件實(shí)現TCP/IP協(xié)議棧。這樣,TCP/IP協(xié)議棧也就將在軟件層中描述而不在硬件層中出現。

這里用部署圖描述的系統硬件層(如圖4),它將類(lèi)圖中的數據處理對象,即軟件層中的操作系統所具有的任務(wù)映射到了處理器的各個(gè)線(xiàn)程,并且還設置了每個(gè)線(xiàn)程的優(yōu)先級。而藍牙模塊所帶的操作:藍牙底層協(xié)議,表示藍牙底層協(xié)議是由藍牙模塊硬件實(shí)現的。系統的軟件層也可以通過(guò)組件圖來(lái)描述。

5.2 詳細設計

詳細設計是一次循環(huán)中需求、分析、設計的最后一步,指定了細節問(wèn)題,明確了單個(gè)對象的范圍、內數據結構和算法的實(shí)現等。

先前已對類(lèi)的屬性和操作作了定義,而在詳細設計中,為了編寫(xiě)代碼,必須對每個(gè)類(lèi)中定義的操作的各個(gè)屬性(包括它的類(lèi)型和初始值等)填補完整。因為此時(shí)的類(lèi)圖是為軟件編程準備的,所以應根據體系結構設計過(guò)程中組件圖的內容重新進(jìn)行整理,保留并細化由軟件實(shí)現的所有類(lèi)。完整的類(lèi)圖如圖5所示。

依照這些類(lèi)的行為流程圖,在編程階段就可以容易的實(shí)現代碼,并且由于有了統一的設計決策, 即使是由不同的編程人員編寫(xiě),最后的代碼體現出的思路都是大同小異的,也方便非開(kāi)發(fā)人員了解 和維護系統。

6 結束語(yǔ)

通過(guò)對UML語(yǔ)言的分析,文中提出了一種基于UML的嵌入式系統可視化開(kāi)發(fā)方法,并實(shí)際應用到嵌入式遠程溫度監控系統的開(kāi)發(fā)過(guò)程中。此方法面向對象,步驟清晰流暢,并全部由UML的統一標準符號加以描述,有效的提高了系統的開(kāi)發(fā)效率,也有利于系統以后的維護和升級。

參考文獻

[1] Bruce Powel Douglass 著(zhù) . 《實(shí)時(shí)UML——開(kāi)發(fā)嵌入式系統高效對象(第2版)》.中國電力出版社,2003年12月

[2] Wendy Boggs, Michael Boggs著(zhù),邱仲潘 等譯 . UML與Rational Rose 2002從入門(mén)到精通. 2002年7月,電子工業(yè)出版社,北京

[3] 唐英,李志蜀 . 使用UML分析設計嵌入式系統 . 計算機應用研究,2002年,5,p117-p120


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>