[摘要]國際上硬/軟件開發人力平均為1:8。因此,如何提高軟件的開發質量和速度是嵌入式領域當前和今后相當長時間內一個突出問題。本文介紹了歐美國家較為先進的基于圖形化開發工具的嵌入式軟件開發方法,可有效提高嵌入式軟件開發的工程化水平,并縮減30%左右的開發工作量。
一、前言
近年來,嵌入式硬件的發展日新月異,可實現強大功能的 RISC、DSP架構芯片不斷涌現,國內企業也令人可喜地推出了龍芯、方舟等32位嵌入式處理器。面對眾多的新型處理器,如何更好地實現應用、更方便地開發出功能強大的中間件、應用軟件,將成為嵌入式軟件開 發要面對的主要問題。
從當前我國從事嵌入式領域開發的人員構成來看,一方面大多數開發人員都屬于半路出家,本身從事的是電力、汽車、航空航天等其他行業,工程化軟件開發方面的知識較為缺乏;另一方面,目前的大學教育對軟件工程概念仍然認識不足,教學方法和教育平臺仍較落后。 這兩方面原因造成了我國嵌入式軟件的開發水平、尤其是工程化水平仍然較低。 與國外的嵌入式產品開發過程相比,我們自己開發的軟件常常有源代碼而無流程圖、無詳細說明文檔、質量不高、升級維護困難。
而受產品上市時間、開發成本、開發人員素質等的限制,公司也常常“有心無力”,只能任由這種情況發生。可以說,嵌入式軟件開發人員是是否具有較高的工程化開發水平將決定我國未來能否成為嵌入式軟件大國。
國際上較成熟的嵌入式產品開發工程中,編寫源代碼只占整個開發過程的30%,從工程角度對產品功能進行劃分,形成一系列相關文檔:編寫詳細的代碼說明、相關支持文檔等工作將占去70%的開發時間。而在我國,這一數字正好相反,甚至尤有過之,編寫源代碼占去了開發的絕大部分時間。兩種方法開發出的產品其成熟度是不言而喻的。造成這一情況固然有我國工程化開發水平較低的原因,開發觀念、工具平臺上的不足也是很重要的因素。
從國際上來看,現代軟件技術的發展已經進入到自動化、圖形化開發階段。用戶通過功能強大的系統級圖形化軟件開發工具對所開發的項目進行描述,建立整套系統的模型。只要能夠建立起正確的系統模型,好的圖形化開發工具就可以根據該模型生成C/C++/Java語言的源代碼,提供完善的系統流程圖、標準化的軟件說明文檔,甚至可對系統功能進行模擬仿真。可以極大提高軟件產品的開發效率。
引入和掌握這些高水平的開發平臺和軟件工程方法,可使一般缺乏管理經驗的軟件工程師提升為系統工程師,使過去占開發比重很大的程序設計轉為通過軟件自動生成,并且在系統模型建立后就擁有了完善的支持文檔。可有效節省30%到70%的開發工作量。借助自動化、圖形化的嵌入式軟件開發平臺,軟件團隊的工程化能力和管理水平將大大提升,培養系統工程師的時間可以從5年以上縮減到1年左右。
二、先進的圖形化嵌入式軟件開發平臺
德國的Blue River公司正是一家世界知名的圖形化嵌入式軟件開發平臺供應商。該公司的開發平臺具有方便的用戶接口、優化的項目管理和友好的圖形編程功能,能夠支持各種類型的項目開發,并可為整個軟件生命周期提供服務。
該軟件的具體特點:
*簡單、易學,支持即時的項目開發;
*生成高質量的技術文檔和清晰的編程文檔;
*清晰地描述結構化的項目開發流程,支持錯誤檢測;
*代碼生成模塊能夠實現自動編程,減少35%的開發時間;
*適于實現團隊開發。
考慮不同微控制器系統和嵌入式軟件的規模,Blue River公司可提供四個系列的軟件開發平臺: V32、E32、X32和O32。
1、V32開發平臺
V32針對大型的應用系統進行設計,可有效支持用戶對32位微處理器平臺進行開發,可實現對軟件工程項目的分析、描述、設計、實現、建立文檔和維護。應用V32可以使開發人員從煩瑣的日常工作中解脫出來,將精力集中到具有創造性的解決方案中。
V32開發平臺采用Ward&Mellor的系統分析/系統設計(SA/SD)方法,采用清晰的圖形來描述方式實現軟件設計,并支持對實時過程的描述。通過不斷提煉,項目設計更加優化,軟件提供一個集成的查錯功能,用于檢查違反圖形設計方法原則的錯誤。
圖形化和文本化的描述是V32開發平臺的基礎,其中應用了 Nassi-Shneiderman控制結構,解決了高效率生成大型軟件開發源代碼的問題。在開發平臺中,內部的編輯器可以直接將原代碼轉化為結構圖。
對于單機用戶來說,V32的功能包括:源代碼生成器、編譯器激活、檢查器、瀏覽器和再造窗口等。通過這些功能,在“C”源代碼上的所有的改變和優化都立即被顯示,這將可以避免項目設計同工作結果出現的錯誤。這種開發方法將使結構化軟件開發進入一個新的時代。
V32開發平臺由分析和描述模塊、代碼生產模塊、實現模塊、再造模塊、文檔模塊和集成用戶接口組成。
(1)分析和描述模塊
系統分析和設計(SA/SD)通過下面的方法來實現:
*數據變換框圖
*狀態轉移框圖
*組織關系框圖
系統分析和設計是一種非常有效的設計方法,它能夠確保有效地實現代碼生成。
(2)代碼生成模塊
經過V32的分析和描述模塊對一個軟件項目進行描述,就可以直接根據圖形化的描述生成C或C++的源代碼了。已定義的軟件結構將被轉化為源代碼模塊。因為程序代碼是根據項目的描述產生的,所以描述和實現是同一的,沒有任何差別。
如果描述更改,程序代碼自動更新。這是一種充分的、能夠完全被理解的系統設計方法,因為開發者的想法被自動的實現。這可以使開發者從日常活動中解脫出來,隨著項目的開發,很容易生成程序的文檔。
(3)實現模塊
V32的實現模塊具有X32相同的功能。在程序模塊中不會出現錯誤,這是因為以結構圖進行編輯并且原代碼自動生成。結構圖中的錯誤通過編譯器的顯示可以簡化調試過程;編譯器的運行或工程文件的生成通過編譯器接口從編輯器中來激活。工程文件中包括非常多的搜索 命令,能夠實現快速的瀏覽和查找。
結構圖的圖形布置結合了壓縮技術和工程樹的方法,以確保大型軟件項目能夠被清晰地描述。
(4)再造模塊
通過再造模塊可以將源代碼轉換為結構圖。在實現過程中編輯結構圖時,在分析模塊的描述圖形中的任何改變都將立即被顯示。
(5)文檔模塊
在V32的文檔模塊中,可以打印出描述圖形和結構圖。作為一個報告文件,所有圖形、結構圖和描述能夠獨立地進行設置。文檔模塊采用RTF文件格式輸出。
(6)集成用戶接口
在開發過程中整個項目工作,能夠通過V32的集成用戶接口來完成。工程樹顯示所有的圖形和一個項目的模塊,通過簡單的點擊能夠操作 這些對象。界面中提供了一些工具條,如圖形編輯、代碼編輯和上下文菜單切換,能夠快速地操作,同時提供在線幫助。
V32開發平臺支持的編程語言:C/C++語言。
2、E32開發平臺
E32開發平臺包括所有V32的功能和特點,另外,增強的功能有:應用中斷處理作為嵌入式應用中系統建模和優化C語言代碼的基礎。
在E32開發平臺中,采用中斷處理進行SA/SD建模,使得中斷服務程序賦于數據處理成為可能。將嵌入式系統的這個重要特點正確地應用到軟件開發的分析方面,這是一種將軟件開發由復雜化為簡單的方法。作為一個結論,在狀態傳輸圖中應用中斷可以為狀態機產生非常有效的代碼。
采取一系列優化方法來優化E32自動生成的代碼,目的是為了減少嵌入式系統對系統資源的需求。減少單一存取函數生成數量的增加,使得對整個數據結構的存取開銷也減少;對于執行后就終止的簡單函數的代碼生成過程中,采用中斷處理進行過程轉移,而不用任務循環(查詢)來實現,可以減少系統資源的開銷。
在E32開發平臺上生成的代碼,適用于所有的實時多任務操作系統。由E32自動生成的代碼作為實時操作系統的一個開放接口,使得E32成 為適用于每一種操作系統的開發工具,而用戶不必考慮微控制器或者操作系統的差別。
3、X32開發平臺
X32開發平臺的主要功能包括結構圖編輯、結構圖壓縮、源代碼生成、正/反再造功能、語法檢查和工程信息系統顯示等。從功能上講, X32具有V32的實現模塊相同的功能。下面分別說明:
(1)結構圖編輯
X32結構圖編輯器是一個非常好的將源代碼嵌入到結構圖中的工具。它包括所有編輯器應用的功能,另外具有將源代碼直接轉換成結構圖的功能,并且對可調整的語法結構進行著色。如果選定了編程語言,編輯器可以自動將原代碼插入到結構圖中。
(2)結構圖壓縮
對于大型軟件項目的開發,復雜的結構圖被壓縮使得圖形結構的輪廓清晰、明了。結構圖中的任何一個部分都能夠被壓縮;快速的定位、查找、打印和設置功能能夠借助于壓縮樹(工程樹的一個部分) 來實現。
(3)源代碼生成
X32平臺上的源代碼生成器能夠將結構圖轉換為源代碼,源代碼生成器能夠將結構圖翻譯為可編譯的源代碼。在X32平臺上,應用XSF結構圖格式直接將結構圖信息保存在源代碼中。因此,文件既是結構圖文件,也是源代碼文件,而且結構圖和源代碼之間沒有任何轉換錯誤。對于每一種編程語言,都有一種特定的源代碼生成器。用戶可以方便地選擇源代碼的格式。
(4)正/反再造功能
通過這種功能,可以將現存的源代碼轉換為結構圖格式,而且可以在X32平臺上編輯。集成的源代碼再造部件能夠自動將源代碼翻譯,并加入到X32開發環境中。根據開發者的需要,可以清晰方便地了解文檔的結構圖,也可以建立一個例程結構圖打印輸出。還可以象再造結構圖一樣來再造源代碼。
(5)語法檢查
X32 平臺提供開發的用戶接口來激活編譯器。對于大多數編譯器,已經隱含設置;對于特殊的編譯器,也可以方便地建立特殊的設置。 在結構圖中,源代碼的語法糾正可以結合編譯器的編譯結果,通過語法檢查功能重新檢查。編譯器中的錯誤信息能夠隨著結構圖一起被分析和顯示。光標會定位在結構圖出錯的地方。
(6)工程信息系統顯示
對于編程語言C/C++,在X32的工程文件能夠由源代碼瀏覽器 View32來顯示。除了數據類型、函數等,工程文件中類、程序、屬性可以在不同的窗口進行顯示;開發者可以通過雙擊工程信息系統中條目跳到結構圖相應的位置,快速地瀏覽工程中的定義,也可以通過源代碼進行瀏覽。工程中的源代碼可以被文檔編譯器和連接器連接到View32的數據庫中。
三、系統要求
32位操作系統下運行,Windows 95、Windows 98、Windows NT4.0/2000;分為單機版和網絡版。X32需要7Mbytes硬盤空間,16M以上的內存空間; V32網絡版需要10硬盤空間, 16M以上的內存空間。
如何攻克嵌入式軟件開發的瓶頸
更新時間: 2005-08-26 00:00:00來源: 粵嵌教育瀏覽量:4676