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