1引言
在過去的十多年里,嵌入式技術得到很大發展,尤其是嵌入式軟件開發環境的發展,使一直“深埋”于系統的嵌入式應用軟件變得開放而易于開發。從而促進了嵌入式技術的廣泛應用。嵌入式軟件開發環境始終是研究的熱點之一。
伴隨著嵌入式應用的不斷的增長,嵌入式系統的需求的復雜性、不確定性也在不斷地提高,系統規模也在逐步地擴大,而產品的研發周期又在不停的縮短,這給嵌入式應用軟件的開發帶來了新的挑戰。同時,嵌入式軟件的開發者必須面對由于芯片性能的增長、嵌入式操作系統平臺等技術方面不斷變化所帶來的各種壓力。根據近期的資料統計,在歐洲有34% 的嵌入式軟件項目在開發過程中被迫取消,72.7% 的軟件在產品開發完成時已超出預算的50%。傳統的嵌入式軟件的開發方式將面臨新的挑戰。
2 傳統的嵌入式軟件開發方法及環境
嵌入式軟件的開發過程和一般軟件的開發一樣,必須經過軟件開發的分析、設計、編碼、測試所有階段。分析過程定義了軟件要解決的問題的空間,設計過程定義了問題的就決辦法,編碼是對設計的具體實現,測試過程可以驗證系統是否滿足需求、實現是否滿足設計。
上面部分就是軟件的分析和設計過程,下面部分是軟件的實現和測試過程。可以看出,在設計與實現之間存在著一堵墻,它反應了軟件開發過程中的需求分析和設計與具體的實現之間脫節。這是由嵌入式產品的開發特點所決定的。嵌入式產品的更新很快,這就要求研發周期盡可能的短,同時在開發過程中能動態地調整需求。所以這種靜態的開發方式不能適應研發的要求。另外,這種開發方法對需求和設計的驗證是在開發過程的階段進行的,這種軟件完全實現后的驗證往往會帶來有很大風險和開支,甚至由于分析或設計的錯誤或缺陷而影響產品的上市。
在嵌入式軟件的開發過程中需要環境和工具的支持。傳統的嵌入式軟件開發環境主要是對開發過程中的實現及測試階段的支持,為開發人員提供了基于嵌入式操作系統的語言編程環境以及基于源程序調試的各種界面和手段。在軟件開發過程中的其它階段也可以采用相應的CASE工具(如需求分析工具等)以提高了軟件開發的效率,但總的來看,傳統的嵌入式軟件開發環境的特點就是以源程序的開發和測試為核心。
3迭代增量式軟件開發方法
從七十年代末,面向對象技術逐步興起,到現在已占據了軟件開發過程的主導地位。在面向對象軟件開發一般都采用迭代增量式的開發過程,這種方法不是在項目結束時一次性提交軟件,而是分塊逐次開發和提交。每一次迭代都包含了軟件生命周期的所有階段,即:分析、設計、實現和測試階段。由于迭代式軟件開發方法可以盡早發現項目的風險,并在軟件開發過程中對這些風險進行有效的控制,迭代式軟件開發方法已得到肯定,幾乎所有面向對象的資料都認為應當采用這種開發方法。
在嵌入式軟件開發過程中,采用傳統的順序開發方法,往往造成軟件開發過程中的需求分析和設計與具體的實現之間脫節。開發初期所做的需求分析及設計,在后期的實現和測試中往往要做變動,甚至是拋棄了前期的這些工作。嵌入式產品的開發涉及多個環節,軟件的需求很難很快的確定下來,常常是不斷變化的,而嵌入式產品的開發的周期一般都很短,所以嵌入式軟件開發采用迭代遞增的開發模式更合適。在開發初期,并不是所有的需求都確定,這時可以將那些已經確定的需求進行分析、設計、實現、測試和驗證。這部分工作結束時,又有新的需求了,可以按上面的步驟進行,經過反復迭代,系統就逐步設計完成了。
4 基于UML的嵌入式實時軟件開發環境
4.1 UML概述
UML是面向對象的標準建模語言,是面向對象技術領域中的重要成果。UML的定義包括UML語義和UML表示法兩個部分。UML為對象的結構模型和行為模型定義了語義,結構模型強調系統中對象的結構,它包括類、接口、屬性和關系,行為模型強調系統中對象的行為,它包括它們的交互作用、合作性和狀態歷史。UML表示法是UML語義的可視化表示,是用來為系統建模的工具。
UML的目標是以面向對象圖形的方式來描述任何類型的系統,可以為任何具有靜態結構和動態行為的系統進行建模。因此,使用UML可以很好地完成嵌入式實時系統的建模。
4.2 基于UML的嵌入式軟件開發環境的組成
UML是一種語言,不是方法,它獨立于任何一種開發過程,但支持過程。UML開發者提出的開發過程是用例驅動、以體系結構為中心、迭代遞增的過程,這正是嵌入式實時應用軟件開發的理想過程。在應用標準建模語言UML時,必須有相應的環境。
在迭代式的開發過程中如果采用傳統的手工編碼、基于源程序的測試手段,必將影響迭代周期,基于模型的調試就十分必要。
綜上所述,有效的嵌入式軟件開發環境應該支持可視化建模、支持基于模型調試、支持迭代式開發方法。這樣一個環境至少應該包括可視化建模、可執行的模型、模型代碼的相關性、實時框架四個部分。
(1)可視化建模
建模是面向對象分析和設計的核心,也是分析和設計過程中基本和關鍵的活動之一。面向對象的分析和設計應該從建模開始。開發環境應該支持可視化建模。UML適用于以面向對象技術來描述任何類型的系統,而且適用于系統開發的不同階段。開發環境可采用標準的UML為系統建模。根據開發過程的不同階段的具體要求,利用UML的不同的圖為描述系統的各種靜態結構模型和動態行為模型。
(2)可執行的模型
基于模型的調試是迭代式開發方法的主要特點之一。通過模型級調試、驗證,可以盡早發現系統的的設計錯誤或缺陷,從而較早地確定或降低項目的分險。這就要求所建的模型應該是可執行的模型。開發環境應該支持模型的運行和調試,并提供各種基于模型的調試的手段。如基于狀態圖的斷點設置、捕捉不同對象之間的消息映射等等。
(3)模型——代碼的相關
模型是系統整體抽象。軟件開發的終形式必須生成程序代碼,模型畢竟是一些漂亮的藍圖,雖然它對軟件的設計有很大的作用,但用戶的終目的是希望得到可執行的程序。對于嵌入式實時系統,代碼與系統要求(時間約束、資源的限制等)緊密聯系的,用終形式的源程序驗證系統的模型更準確。
開發環境可利用軟件自動生成技術的成果,根據模型可以自動產生具有產品質量的代碼。這種代碼既作為系統模型驗證的代碼,也是系統提交的代碼。所以產生的代碼是基于某個具體平臺的代碼,通過編譯即可運行在該平臺上。
為了保證模型代碼的一致性,應該支持代碼到模型的逆向工程。
(4)實時框架
一般嵌入式應用中有60-90%的代碼用于內務處理(如狀態機的實現、任務間的通信等),這些代碼在設計新的系統時一般都可以重用。這種重用一般就是通過實時框架來實現的。實時框架是一個垂直框架,提供了一套為嵌入式和實時應用專門選擇和優化的設計模板。嵌入式應用程序一般都運行在嵌入式操作系統的平臺上。而實時框架就是一個在操作系統之上應用程序之下的中間件,應用程序的編寫或自動產生都基于有統一接口的實時框架,這樣就使應用軟件的開發與具體的平臺無關,解決了嵌入式應用軟件的移植問題。
實時框架可以針對不同的嵌入式實時操作系統有不同的實現。實時框架一般都是開放的,用戶可根據自己的特定的應用環境進行定制。
由于產生的原碼是基于實時框架的,在編譯與連接時通過選擇不同平臺的實時框架庫就可以運行到這些不同的平臺上。在軟件開發的不同時期,我們可以選擇不同的運行平臺,例如,在硬件平臺沒有完成時,用戶可以在宿主機的操作系統下仿真運行,也可以在嵌入式操作的開發環境所提供的虛擬環境(如Tornado環境下的VvSim)下運行。在系統集成時,就可以在目標系統上運行。
4.3 基于UML的嵌入式軟件開發環境的結構
一種支持基于UML的迭代式開發方法的開發環境的結構,虛框部分就為基于UML的軟件開發環境。
系統分析和設計用UML來描述,對系統建模,實現過程利用代碼自動生成技術來實現。測試過程將依賴于生成的代碼,通過在代碼中拆裝一些用于支持模型調式的調試信息來實現。而代碼的編譯、連接則采用目標系統的操作系統的開發環境來完成,代碼的運行與源程序級的調試仍然采用一般的嵌入式軟件調試環境。
這種結構具有以下特點:
1. 它是基于傳統嵌入式軟件開發環境之上的高層開發環境,基于模型的設計和調試是它的側重點,同時借助于傳統的軟件調試環境可以實現基于模型的調試和基于源程序的調試同步進行。
2. 模型的運行和調試是基于與終產品的源程相同或相近的程序來實現的,這種模型級的調試與其他的模型仿真本質不同。
3. 程序的生成是基于實時框架的,使應用軟件的開發與具體的軟件平臺無關,對于不同的操作系統平臺只需要維護不同的實時框架即可。
5 實例介紹
目前已有許多支持UML的軟件環境,在嵌入式實時領域內有影響的是美國I-Logix 公司推出Rhapsody。
Rhapsody是一個基于UML的面向嵌入式實時應用開發的集成的可視化環境。軟件開發者可以在這個環境里進行分析、設計、實現及驗證。Rhapsody支持基于模型的調試。Rhapsody提供了專門為實時和嵌入式應用設計的可執行的框架。可以產生基于VxWorks、POS、OSE等多種操作系統的C語言、C++語言或Java語言的源程序。
現在,Rhapsody已經運用到許多嵌入式產品的開發項目中。根據Rhapsody公司的統計,即使次使用Rhapsody的用戶也會縮短30%的開發周期。
6 結束語
隨著后PC時代的到來,嵌入式應用將會迅速增長。傳統的嵌入式軟件開發方法及其支持環境已不能適應日益增長的嵌入式市場對產品研發的要求,與之相比,面向對象的迭代增量式軟件開發方法具有明顯優勢。文中所討論的已模型為核心的這種新的嵌入式實時軟件開發環境可以有效地支持迭代式開發方法,使軟件的開發工作主要集中在高層的建模和模型的測試及驗證上,從而使軟件開發工作的焦點從編碼轉到了設計。
一種基于UML的嵌入式實時應用軟件開發環境
更新時間: 2007-02-02 11:03:34來源: 粵嵌教育瀏覽量:721