国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模塊化的嵌入式軟件設計研究

2018-05-14 21:23:25周相康
科技風 2018年16期
關鍵詞:軟件設計模塊化嵌入式

周相康

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

關鍵詞:模塊化;嵌入式;軟件設計

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

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

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

二、什么是軟件模塊化設計

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

三、應用C語言進行模塊化代碼編寫

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

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

C++語言擁有面向對象的特性,因此應用C++語言能夠方便、快捷的完成軟件模塊化設計。C語言是面向過程的語言,因此缺少C++語言在面向對象上的優(yōu)勢,因此模塊化編程相對C語言而言實現(xiàn)較為困難。應用C語言以實現(xiàn)C++語言面向對象的特征,舉例對比描述轉換過程。

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

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

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

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

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ù)據如list和top,同時也包括對象方法,初始化棧Init()、入棧Push()和出棧Pop()操作。

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

應用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語言通過結構體定義一個新類型Stack,這種既帶有數(shù)據又有方法的抽象數(shù)據類型已具有面向對象的特征。C語言實現(xiàn)對象方式的編寫,也必須要遵循一定的要求,具體如下:

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

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

四、總結

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

參考文獻:

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

猜你喜歡
軟件設計模塊化嵌入式
模塊化自主水下機器人開發(fā)與應用
模塊化住宅
搭建基于Qt的嵌入式開發(fā)平臺
ACP100模塊化小型堆研發(fā)進展
中國核電(2017年2期)2017-08-11 08:00:56
模塊化VS大型工廠
嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
基于STC單片機的廚房智能安全管控系統(tǒng)的設計
基于STM8S903K3的序列打螺絲夾具的軟件設計
JCI標準下發(fā)送調配部軟件設計及應用
一種VHDL語言代碼重用的方法
科技視界(2016年20期)2016-09-29 13:33:02
吉隆县| 辽阳县| 启东市| 嘉善县| 高邑县| 琼海市| 高阳县| 万载县| 仁布县| 禄丰县| 奈曼旗| 安丘市| 得荣县| 渭源县| 宝山区| 当阳市| 平昌县| 黄平县| 兴仁县| 永州市| 新丰县| 福清市| 金秀| 衡山县| 曲周县| 彰化市| 彭州市| 临泉县| 阜城县| 奉节县| 徐州市| 宜宾县| 吴旗县| 休宁县| 吴堡县| 专栏| 即墨市| 平原县| 成武县| 丰宁| 卢龙县|