陳元博 邵 健
(曲阜師范大學 計算機科學學院,山東 日照 276826)
嵌入式軟件是指嵌入在硬件中的操作系統(tǒng)和開發(fā)工具。軟件嵌入式擁有悠久的歷史,從一開始主要集中在軍事領(lǐng)域、航空領(lǐng)域以及工業(yè)過程控制等領(lǐng)域。為適應(yīng)社會的發(fā)展,經(jīng)過數(shù)年的發(fā)展,從上世紀90年代中后期開始,隨著互聯(lián)網(wǎng)和通訊信息等事物的興起使嵌入式系統(tǒng)逐漸進入了人們的生活當中。對于嵌入式系統(tǒng)來說,計算機系統(tǒng)是其中心,。嵌入式系統(tǒng)具有實時性、專用性以及有限性等特點。與常規(guī)的系統(tǒng)軟件相比,嵌入式軟件的設(shè)計既有共同的特點,又存在特殊性。隨著人們知識水平的提高以及生活的需要,嵌入式軟件的使用程度越來越廣泛,因此,對嵌入式軟件開發(fā)的要求越來越高。為促進嵌入式軟件開發(fā)的不斷發(fā)展,我們應(yīng)該加深對嵌入式軟件開發(fā)原則及模式的研究。
研究嵌入式軟件開發(fā)的原則與模式,應(yīng)從根本出發(fā),既了解嵌入式軟件開發(fā)的方法。嵌入式軟件開發(fā)的方法包括結(jié)構(gòu)化設(shè)計方法、面向?qū)ο蟮脑O(shè)計方法、基于構(gòu)件的設(shè)計方法等。
作為各種設(shè)計方法中使用最廣泛的設(shè)計方法,結(jié)構(gòu)化設(shè)計方法有著獨特的自身優(yōu)勢。分為兩種不同的設(shè)計方法。一是單任務(wù)的結(jié)構(gòu)化設(shè)計方法,它的核心是根據(jù)結(jié)構(gòu)化的設(shè)計原則,將各個時間的處理模式驚醒較好的處理,然后循環(huán)調(diào)用。二是多任務(wù)的結(jié)構(gòu)化設(shè)計方法,它是先將模塊進行劃分,然后將模塊進行綜合。但是,多任務(wù)的結(jié)構(gòu)化設(shè)計方法要求過高,因此,無法在嵌入式軟件中使用。
面向?qū)ο笤O(shè)計方法符合人們的思考方式,與多任務(wù)設(shè)計方法不同,它將數(shù)據(jù)與數(shù)據(jù)上的操作密封于實體中,想要訪問對象,只能通過消息的方式,這相對增加了安全系數(shù)。另外,面向?qū)ο蟮脑O(shè)計方法可以捕捉大規(guī)模應(yīng)用的設(shè)計模式,將軟件體系結(jié)構(gòu)的重用性大大提高。有利于將軟件的擴展性、維護性和重用性提升到新的高度。
基于構(gòu)件的設(shè)計方法強調(diào)軟件體系結(jié)構(gòu)的重要性。其具有的獨特性更加強調(diào)構(gòu)件實現(xiàn)目的的手段,其重用性更加側(cè)重于構(gòu)件對軟件的重要性。
在了解嵌入式軟件開發(fā)的方法后,有利于指導我們進行嵌入式軟件開發(fā)原則及模式的研究。
對于嵌入式軟件開發(fā)來說,全面分析系統(tǒng)有利于推進開發(fā)的進行。
(1)做好前期分析,形成指導提綱
對設(shè)計的每一個環(huán)節(jié)做到認真仔細是系統(tǒng)分析的要求,不僅要做到用心考慮細節(jié),而且要系統(tǒng)考慮整體。這就要求我們,在做系統(tǒng)分析這項工作之前,一定要把前期分析做好,形成切實可行的提綱,這樣做有利于開發(fā)者提高效率。分析工作對整個設(shè)計工作意義重大,這就要求我們,不能局限于大腦中的思考,要形成書面記載,否則,很難全面分析,很難分析的透徹。較好的實現(xiàn)方案,能幫助設(shè)計者整理思路,在工作中少走彎路。并且,我們還可以利用不斷改進設(shè)計方法來提高程序的效率。
(2)接口以及定義
對一個外部調(diào)用函數(shù)的較為完整的定義就是接口的含義。在一個模塊設(shè)計中,通常會有很多功能相對簡單,但卻對實現(xiàn)重要模塊有輔助作用的局部函數(shù)。外部調(diào)用所設(shè)計的那些函數(shù),對于它們的參數(shù)類型、參數(shù)范圍及限制必須清楚,這就是討論的接口。
我們必須分清外部調(diào)用的函數(shù)和內(nèi)部使用的函數(shù)。一般情況下,有一個定義多個源文件的頭文件。最好將那些外部調(diào)用接口以集中放置在頭文件中。此外,我們也應(yīng)該集中放置局部調(diào)用函數(shù)的聲明,以便方便文件的閱讀。還有一點,加上簡單的注釋可以保護頭文件的簡介。
對于嵌入式軟件來說,算法是非常重要的。為提高軟件性能,改進軟件,我們應(yīng)優(yōu)化函數(shù)算法。
優(yōu)化函數(shù)算法主要有以下幾種方式:(1)簡單化,把完整的短句用縮略詞代替。(2)一致性,包括函數(shù)名的大小寫、分隔符的使用以及其風格的一致性。(3)良好的習慣,頭文件是非常復(fù)雜的,有很多需要定義的的常量、數(shù)據(jù)結(jié)構(gòu)和外部函數(shù),這就要求必須保證良好的習慣。
算法的優(yōu)化對于函數(shù)的實現(xiàn)相當重要。事實上,軟件策略同樣是算法的一種。因此,程序設(shè)計中的算法是包括了計算方法設(shè)計的算法以及音視頻使用的算法,是一種廣義的概念。算法也體現(xiàn)在循環(huán)、數(shù)據(jù)結(jié)構(gòu)設(shè)計等多個方面。
程序算法的優(yōu)化,目的主要有兩個:一個是時間上的優(yōu)化——優(yōu)化運行時間另一個是空間上的優(yōu)化——優(yōu)化代碼的存儲空間。優(yōu)化后占用的內(nèi)存空間減小,運行也得以提高。如果能夠?qū)烧呒骖櫍菢幼詈?,但往往不如所愿,因此,要具體情況具體分析。
作為程序設(shè)計后期進行的工作,一是,對局部代碼進行優(yōu)化,如改變循環(huán)體結(jié)構(gòu)、合并類似分支等,二是,刪除局部無用變量,修改代碼,補充注釋,增強代碼的可讀性。
程序設(shè)計后期,必不可少的工作就是調(diào)試和該進設(shè)計好的程序。它是一個重要的工作過程,它可以發(fā)現(xiàn)程序漏洞、完善程序功能。在這個過程中,要做到系統(tǒng)軟件的設(shè)計需要與其他模塊互動。其次,是對做好的分析文檔進行完善,這回對整個嵌入式軟件的開發(fā)起到很大的幫助。
嵌入式軟件憑借其自身鮮明的特點被廣泛運用在各個領(lǐng)域,它的開發(fā)具有中煙價值,開發(fā)過程不斷進步。本文從不同角度提出了一些原則和模式,希望可以在今后的設(shè)計工作中起到一定的作用,促進相關(guān)開發(fā)工作的進行。
[1]電子科技大學計算機學院.CRTOS x86/pm嵌入式實時操作系統(tǒng)原理與應(yīng)用設(shè)計[Z].增補版.成都:電子科技大學,2011.
[2]趙秋云,魏樂,劉文清.嵌入式軟件的構(gòu)件化開發(fā)研究[J].科技資訊.2011