2.2.1 必須熟悉業(yè)務
軟件是為業(yè)務服務的,業(yè)務才是“目的”,軟件系統(tǒng)是為了達成業(yè)務系統(tǒng)目標的手段和方法。適應當前的業(yè)務需求是基礎,充分考慮和預測未來的業(yè)務擴展,根據(jù)業(yè)務的擴展性來設計軟件的擴展性。如果可預見未來沒有擴展重大新業(yè)務的需求,那么相應的軟件架構(gòu)就沒有必要采用高擴展的軟件架構(gòu)。比如嵌入式的傳感器數(shù)據(jù)采集小設備,就沒有必要把云計算等,業(yè)務范圍不沾邊的技術(shù)點放到其中。軟件架構(gòu)必須以服務業(yè)務為核心思想,不熟悉當前軟件業(yè)務、和未來業(yè)務的擴展的架構(gòu)師是很難設計出好的軟件架構(gòu)。
2.2.1 借鑒業(yè)內(nèi)成熟的架構(gòu)
不照搬,并不意味著不要借鑒。借鑒業(yè)內(nèi)成熟的軟、硬件架構(gòu)是相對穩(wěn)妥、高效的做法。以業(yè)內(nèi)的架構(gòu)為基礎,根據(jù)自身業(yè)務的特點,進行適配、裁剪和增加新的功能。熟悉業(yè)內(nèi)常規(guī)的、成熟的、最新的軟件架構(gòu)是架構(gòu)師的一項基本功。但熟悉并不是意味著必須立即在目標系統(tǒng)中實施這些軟件架構(gòu)。
2.2.3 采用設計模塊
設計模式(Design pattern)代表了最佳實踐,設計模式是軟件開發(fā)人員在開發(fā)過程中對一般問題的解決方案;是一套被反復使用的、多數(shù)人知曉的代碼設計經(jīng)驗的總結(jié),經(jīng)過相當長的一段時間的試驗和錯誤總結(jié)出來的。
使用設計模式是為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性,合理地運用設計模式可以完美地解決很多問題。每種模式在現(xiàn)實中都有相應的原理來與之對應,每種模式都描述了一個在我們周圍不斷重復發(fā)生的問題,以及該問題的核心解決方案,這也是設計模式能被廣泛應用的原因。
用設計模式構(gòu)建一個新的軟件模塊時,短期會讓人感覺有多此一舉的味道;但中長期來看,設計模式能夠克服“壞”架構(gòu)的特征。學習這些模式有助于經(jīng)驗不足的開發(fā)人員通過一種簡單快捷的方式來學習軟件設計。盡管設計模塊通常被有經(jīng)驗的面向?qū)ο蟮能浖_發(fā)人員所采用,但是嵌入式軟件C語言也可以借鑒,參考《嵌入式軟件的設計模式(上)》,《嵌入式軟件的設計模式(下)》。
2.2.4 合理的橫向和縱向切分
橫向切分 :從硬件、驅(qū)動、組件到業(yè)務層,軟件分層隔離。如數(shù)據(jù)通信:PHY/MAC/IP/TCP/應用層
縱向切分 :根據(jù)業(yè)務處理流程的環(huán)節(jié)縱向切分,不同的環(huán)節(jié)為不同的模塊,不同的業(yè)務功能為不同的模塊,如socket網(wǎng)絡、GNSS衛(wèi)星定位。
2.2.5 按樹形結(jié)構(gòu)組織
按照樹形結(jié)構(gòu)的方式組織軟件系統(tǒng),不同的大功能拆分為小功能,文件夾內(nèi)套文件夾的實現(xiàn)形式,命名上統(tǒng)一,方便按功能快速找到對應的源碼。
2.2.6 降低模塊之間的耦合度
耦合性是一種軟件度量,是指一程序中模塊及模塊之間信息或參數(shù)依賴的程度;內(nèi)聚性是一個和耦合性相對的概念,一般而言低耦合性代表高內(nèi)聚性,反之亦然。
2.2.7 降低模塊與模塊之間通信
一個軟件內(nèi)模塊與模塊之間的通信,構(gòu)成了一個內(nèi)部的通信網(wǎng),避免內(nèi)部模塊的通信采用網(wǎng)狀結(jié)構(gòu),這種解決方案是設計模式中的中介者模式。
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317658 -
C語言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141799 -
嵌入式軟件
+關(guān)注
關(guān)注
4文章
245瀏覽量
27341 -
架構(gòu)
+關(guān)注
關(guān)注
1文章
528瀏覽量
25992
發(fā)布評論請先 登錄
誠聘嵌入式軟件架構(gòu)師
嵌入式軟件開發(fā)中的程序架構(gòu)
嵌入式架構(gòu)有多重要
決定嵌入式系統(tǒng)軟件架構(gòu)的因素和架構(gòu)的影響
實時多任務嵌入式軟件的架構(gòu)方式的設計應用

嵌入式系統(tǒng)軟件架構(gòu)設計

嵌入式系統(tǒng)的軟件架構(gòu)設計
詳解FreeRTOS:嵌入式軟件系統(tǒng)架構(gòu)

評論