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