• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于模塊化的嵌入式軟件設(shè)計研究

      2018-05-14 21:23:25周相康
      科技風(fēng) 2018年16期
      關(guān)鍵詞:軟件設(shè)計模塊化嵌入式

      周相康

      摘 要:本文對嵌入式軟件編程語言及軟件模塊化設(shè)計的概念進行概述,并給出應(yīng)用C語言進行模塊化代碼編寫的方法及要點,希望給軟件開發(fā)人員以借鑒,提高代碼編寫效率,降低程序出錯概率,縮短軟件開發(fā)周期。

      關(guān)鍵詞:模塊化;嵌入式;軟件設(shè)計

      伴隨著科學(xué)發(fā)展,互聯(lián)網(wǎng)的興起,人們對軟件的應(yīng)用需求越來越大,軟件功能越來越多,實現(xiàn)復(fù)雜度也隨之增加。嵌入式軟件編程成為軟件編程人員要進行學(xué)習(xí)及應(yīng)用的技能,進行模塊化編寫,以解決軟件編制復(fù)雜度的難題。

      一、什么是嵌入式軟件編程語言

      嵌入式軟件編程在行業(yè)內(nèi)通常應(yīng)用匯編、C和C++三種語言編寫,這三種編程語言雖然都能夠用作嵌入式軟件編程,但在部分特性上存在著差異,實時性匯編最快、C++最慢,代碼移植性與維護性的便捷性比較,C++最簡單,匯編最難,最為繁瑣。業(yè)內(nèi)常用C語言進行嵌入式軟件的編程,這由C語言的特性決定的,C語言在編程時更加側(cè)重過程,所編程的代碼在移植、共享方面較為容易;其次,大部分的軟件編程環(huán)境都支持C和匯編語言,少部分支持C++語言編譯器;最后C語言掌握及應(yīng)用最為簡單。由于嵌入式軟件大多都應(yīng)用C語言進行編寫,因此文章重點講解用C語言進行模塊化編程的方法、要點[1]。

      二、什么是軟件模塊化設(shè)計

      軟件開發(fā)工程在近年來難度不斷加大,當(dāng)編寫出現(xiàn)漏洞時就會受到步驟、功能增加的制約,再修改起來難度、工作量極大,為此計算機領(lǐng)域?qū)I(yè)人員提供各種軟件設(shè)計模型為編程人員服務(wù)。根據(jù)用戶需求,將功能較多、規(guī)模較大的軟件劃分為多個小模塊進行編寫,分工合作提升編寫效率,減少失誤。模塊化下的軟件編寫,每個模塊的編寫工作量小且工作獨立、互不影響,結(jié)構(gòu)獨立及功能獨立,將軟件的開發(fā)分工化。

      三、應(yīng)用C語言進行模塊化代碼編寫

      應(yīng)用模塊化代碼編寫的軟件是由被加工對象及其在此軟件上實現(xiàn)的相關(guān)功能構(gòu)成。在軟件的實際開發(fā)階段,通常應(yīng)用兩種代碼編寫方法,基于功能的程序設(shè)計,要在其功能的實現(xiàn)中考慮到編寫過程以及人工操作的疏漏,這個疏漏是不確定且不可控的。程序的整體結(jié)構(gòu)依賴于前期規(guī)劃好的程序功能,在后期的功能擴展、刪除和修改環(huán)節(jié)的難度都會不同程度的提升。在此模式下的軟件,其功能較為集中且耦合度也大,整個軟件結(jié)構(gòu)可以定義為脆弱,經(jīng)常會在編程上出現(xiàn)漏洞,且這個漏洞處理上也會非常的繁瑣,在未來使用中,難以滿足用戶的功能擴展需求,軟件可復(fù)用性差。

      基于對象的程序設(shè)計中,要考慮的對象及數(shù)據(jù)結(jié)構(gòu)、軟件結(jié)構(gòu)都是相對穩(wěn)定的,易于控制和管理,盡管會對軟件的功能有一定的要求,要在使用中進行不斷的完善、演進,但在同一問題空間中的對象,都能夠保持對象本身的穩(wěn)定性、可控性,在此情況下圍繞對象進行的軟件編譯,編譯成型的軟件系統(tǒng)也同樣具備優(yōu)良的穩(wěn)定性和可控性。在實際代碼編制時,將屬性及服務(wù)封裝在對象中,當(dāng)需要對軟件功能、編程細節(jié)進行修改時,這種封裝操作能夠有效的對對象結(jié)構(gòu)的穩(wěn)定性、可控性進行維持,將進行的改動、漏洞修改鎖定在同一對象的內(nèi)部,降低因為改動而導(dǎo)致的系統(tǒng)崩潰或是結(jié)構(gòu)混亂。因此面向?qū)ο蠓椒ㄩ_發(fā)的軟件,必須具備一定的繼承性、封裝性,并且能夠支撐軟件代碼的重復(fù)使用,在日后的軟件完善、擴展等操作中,能夠良好的適應(yīng)復(fù)雜系統(tǒng)變化的要求。

      C++語言擁有面向?qū)ο蟮奶匦?,因此?yīng)用C++語言能夠方便、快捷的完成軟件模塊化設(shè)計。C語言是面向過程的語言,因此缺少C++語言在面向?qū)ο笊系膬?yōu)勢,因此模塊化編程相對C語言而言實現(xiàn)較為困難。應(yīng)用C語言以實現(xiàn)C++語言面向?qū)ο蟮奶卣鳎e例對比描述轉(zhuǎn)換過程。

      C++通過類定義一個對象,類用于封裝對象所能夠應(yīng)用到的數(shù)據(jù)及方法,C語言中沒有類的定義,但有結(jié)構(gòu)體,在C語言中應(yīng)用結(jié)構(gòu)體,用于定義一個對象。

      如在數(shù)據(jù)結(jié)構(gòu)中常用的棧類型,應(yīng)用C++語言以及C語言分別對棧軟件模塊進行編寫及對比,能夠明顯看出C++語言與C語言在實現(xiàn)模塊功能編寫時存在一定的共同點,從而能夠解釋C語言完成模塊化編程的原理。C++語言進行模塊化編程時有多種書寫方法,此代碼雖然不是C++語言應(yīng)用的最佳實現(xiàn)方法,但是與C語言更加接近,更為容易理解,應(yīng)用C++語言能夠進行,其代碼編寫為:

      #define MaxStackSize 50 //常數(shù)

      typedef int DataType;//定義數(shù)據(jù)類型

      class Stack

      {

      private:

      DataType list[MaxStackSize]; //棧數(shù)組及棧頂指針

      int top;

      public:

      void Init(void); //初始化

      void Push(DataType item);//入棧

      DataType Pop(void);//出棧

      }

      Stack::Init(void)

      {}//這里僅例述一個方法實現(xiàn)

      在上述敘述的代碼編寫樣本中,Stack定義了棧對象,它包含對象數(shù)據(jù)如list和top,同時也包括對象方法,初始化棧Init()、入棧Push()和出棧Pop()操作。

      在嵌入式軟件中,其各個模塊的設(shè)計,必然會涉及到編寫語言、編寫對象、編寫方法,所以,明確以上幾點,借助相應(yīng)的對象編寫方法參考模板,完成相關(guān)代碼的編寫,可以說是目前一項較為合理、有效的方法。C++語言對象實例化方法就能夠?qū)崿F(xiàn)Stack的方便應(yīng)用,因為可以定義Stack s,并方便對象的調(diào)用,如s.Init()、s.Push()、s.Pop()等。

      應(yīng)用C語言如下編寫:

      typedef struct

      {

      DataType list[MaxStackSize]; //棧數(shù)組及棧頂指針

      int top;

      void (*Init)(void *pStack); //初始化

      void (*Push)(void *pStack ,DataType item);//入棧

      DataType (*Pop)(void *pStack);//出棧

      } Stack;

      void StackInit(void *pStack)

      {}//這里僅例述一個方法實現(xiàn)

      #define StackDefault {\\

      {0,},\\

      {1},\\

      {StackInit},\\

      {StackPush},\\

      {StackPop},\\

      } //初始化宏

      C語言通過結(jié)構(gòu)體定義一個新類型Stack,這種既帶有數(shù)據(jù)又有方法的抽象數(shù)據(jù)類型已具有面向?qū)ο蟮奶卣?。C語言實現(xiàn)對象方式的編寫,也必須要遵循一定的要求,具體如下:

      C語言定義Stack,雖然可以定義為Stack s,但不能像C++一樣調(diào)用,即使編譯器不會報錯,但也無法執(zhí)行,錯誤體現(xiàn)為C語言方法需要傳遞對象指針,而Stack的函數(shù)指針沒有被初始化,所以不能執(zhí)行,因此要在聲明對象時,將Stack函數(shù)指針初始化,設(shè)定為默認值。

      C語言代碼編制期間,在對默認值的設(shè)定進行具體劃分時,也應(yīng)當(dāng)遵循相應(yīng)的原則,在利用Stack函數(shù)指針的基礎(chǔ)上,確保相關(guān)數(shù)值能夠處于初始化的狀態(tài),以此來保證默認值設(shè)定的科學(xué)性和合理性。C語言應(yīng)用Stack數(shù)據(jù)類型,就要聲明對象實例,并進行初始化操作,不同于C++,如Stack s=StackDefault,聲明對象實例,并且指針恢復(fù)初始。

      四、總結(jié)

      本文所述的模塊化代碼編寫的方法及要點,能夠滿足C語言的模塊化設(shè)計需求,極大的降低了模塊化程序編寫的難度,建議在軟件編程領(lǐng)域進行推廣。

      參考文獻:

      [1]文武,任鵬,王靈軍,等.模塊化嵌入式軟件開發(fā)平臺研究[J].家電科技,2016(6):8385.

      猜你喜歡
      軟件設(shè)計模塊化嵌入式
      模塊化自主水下機器人開發(fā)與應(yīng)用
      模塊化住宅
      搭建基于Qt的嵌入式開發(fā)平臺
      ACP100模塊化小型堆研發(fā)進展
      中國核電(2017年2期)2017-08-11 08:00:56
      模塊化VS大型工廠
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      基于STC單片機的廚房智能安全管控系統(tǒng)的設(shè)計
      基于STM8S903K3的序列打螺絲夾具的軟件設(shè)計
      JCI標準下發(fā)送調(diào)配部軟件設(shè)計及應(yīng)用
      一種VHDL語言代碼重用的方法
      科技視界(2016年20期)2016-09-29 13:33:02
      新泰市| 青岛市| 山东| 广德县| 宁南县| 枝江市| 兰西县| 晴隆县| 孝义市| 城口县| 阜南县| 八宿县| 宜州市| 唐海县| 陵水| 梅河口市| 建阳市| 普兰店市| 富民县| 唐海县| 新安县| 锡林郭勒盟| 苍南县| 南汇区| 天祝| 彩票| 白玉县| 武冈市| 陕西省| 横山县| 双江| 阿拉善盟| 西吉县| 黄平县| 丽江市| 大石桥市| 涿州市| 莒南县| 新宾| 陆川县| 南郑县|