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