0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何規(guī)劃嵌入式軟件架構(gòu)

麥辣雞腿堡 ? 來(lái)源:嵌入式系統(tǒng) ? 作者:嵌入式系統(tǒng) ? 2023-12-07 15:29 ? 次閱讀

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ù)測(cè)未來(lái)的業(yè)務(wù)擴(kuò)展,根據(jù)業(yè)務(wù)的擴(kuò)展性來(lái)設(shè)計(jì)軟件的擴(kuò)展性。如果可預(yù)見(jiàn)未來(lái)沒(méi)有擴(kuò)展重大新業(yè)務(wù)的需求,那么相應(yīng)的軟件架構(gòu)就沒(méi)有必要采用高擴(kuò)展的軟件架構(gòu)。比如嵌入式傳感器數(shù)據(jù)采集小設(shè)備,就沒(méi)有必要把云計(jì)算等,業(yè)務(wù)范圍不沾邊的技術(shù)點(diǎn)放到其中。軟件架構(gòu)必須以服務(wù)業(yè)務(wù)為核心思想,不熟悉當(dāng)前軟件業(yè)務(wù)、和未來(lái)業(yè)務(wù)的擴(kuò)展的架構(gòu)師是很難設(shè)計(jì)出好的軟件架構(gòu)。

2.2.1 借鑒業(yè)內(nèi)成熟的架構(gòu)

不照搬,并不意味著不要借鑒。借鑒業(yè)內(nèi)成熟的軟、硬件架構(gòu)是相對(duì)穩(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ì)模式是軟件開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中對(duì)一般問(wèn)題的解決方案;是一套被反復(fù)使用的、多數(shù)人知曉的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),經(jīng)過(guò)相當(dāng)長(zhǎng)的一段時(shí)間的試驗(yàn)和錯(cuò)誤總結(jié)出來(lái)的。

使用設(shè)計(jì)模式是為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性,合理地運(yùn)用設(shè)計(jì)模式可以完美地解決很多問(wèn)題。每種模式在現(xiàn)實(shí)中都有相應(yīng)的原理來(lái)與之對(duì)應(yīng),每種模式都描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問(wèn)題,以及該問(wèn)題的核心解決方案,這也是設(shè)計(jì)模式能被廣泛應(yīng)用的原因。

用設(shè)計(jì)模式構(gòu)建一個(gè)新的軟件模塊時(shí),短期會(huì)讓人感覺(jué)有多此一舉的味道;但中長(zhǎng)期來(lái)看,設(shè)計(jì)模式能夠克服“壞”架構(gòu)的特征。學(xué)習(xí)這些模式有助于經(jīng)驗(yàn)不足的開(kāi)發(fā)人員通過(guò)一種簡(jiǎn)單快捷的方式來(lái)學(xué)習(xí)軟件設(shè)計(jì)。盡管設(shè)計(jì)模塊通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_(kāi)發(fā)人員所采用,但是嵌入式軟件C語(yǔ)言也可以借鑒,參考《嵌入式軟件的設(shè)計(jì)模式(上)》,《嵌入式軟件的設(shè)計(jì)模式(下)》。

2.2.4 合理的橫向和縱向切分

橫向切分 :從硬件、驅(qū)動(dòng)、組件到業(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 按樹(shù)形結(jié)構(gòu)組織

按照樹(shù)形結(jié)構(gòu)的方式組織軟件系統(tǒng),不同的大功能拆分為小功能,文件夾內(nèi)套文件夾的實(shí)現(xiàn)形式,命名上統(tǒng)一,方便按功能快速找到對(duì)應(yīng)的源碼。

2.2.6 降低模塊之間的耦合

耦合性是一種軟件度量,是指一程序中模塊及模塊之間信息參數(shù)依賴的程度;內(nèi)聚性是一個(gè)和耦合性相對(duì)的概念,一般而言低耦合性代表高內(nèi)聚性,反之亦然。

2.2.7 降低模塊與模塊之間通信

一個(gè)軟件內(nèi)模塊與模塊之間的通信,構(gòu)成了一個(gè)內(nèi)部的通信網(wǎng),避免內(nèi)部模塊的通信采用網(wǎng)狀結(jié)構(gòu),這種解決方案是設(shè)計(jì)模式中的中介者模式。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305302
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136863
  • 嵌入式軟件
    +關(guān)注

    關(guān)注

    4

    文章

    240

    瀏覽量

    26648
  • 架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    514

    瀏覽量

    25475
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    誠(chéng)聘嵌入式軟件架構(gòu)

    獵頭職位:嵌入式軟件架構(gòu)師【廈門】崗位職責(zé):1、負(fù)責(zé)軟件系統(tǒng)總體方案設(shè)計(jì)和詳細(xì)設(shè)計(jì),負(fù)責(zé)核心代碼編寫(xiě);2、負(fù)責(zé)技術(shù)方案評(píng)審,負(fù)責(zé)制定系統(tǒng)測(cè)試方案;3、負(fù)責(zé)新技術(shù)和關(guān)鍵技術(shù)的跟蹤、研究和
    發(fā)表于 03-01 10:20

    嵌入式軟件開(kāi)發(fā)中的程序架構(gòu)

    嵌入式軟件開(kāi)發(fā),包括單片機(jī)開(kāi)發(fā)中,軟件架構(gòu)對(duì)于開(kāi)發(fā)人員是一個(gè)必須認(rèn)真考慮的問(wèn)題。軟件架構(gòu)對(duì)于系
    發(fā)表于 02-02 06:58

    嵌入式架構(gòu)有多重要

    原有的代碼。接下來(lái)嵌入式ARM便和大家分享一下,嵌入式架構(gòu)那些事兒……01嵌入式系統(tǒng)的基本架構(gòu)嵌入式
    發(fā)表于 10-27 08:15

    為何要進(jìn)行嵌入式軟件架構(gòu)設(shè)計(jì)?如何設(shè)計(jì)?

    為何要進(jìn)行嵌入式軟件架構(gòu)設(shè)計(jì)?如何進(jìn)行嵌入式軟件架構(gòu)設(shè)計(jì)?
    發(fā)表于 11-01 06:31

    決定嵌入式系統(tǒng)軟件架構(gòu)的因素和架構(gòu)的影響

    嵌入式系統(tǒng)軟件架構(gòu)設(shè)計(jì)目錄1.前言42.決定架構(gòu)的因素和架構(gòu)的影響42.1.常見(jiàn)的誤解52.1.1.小型的系統(tǒng)不需要
    發(fā)表于 11-08 06:54

    嵌入式軟件基礎(chǔ)的四層架構(gòu)分別是哪些

    嵌入式軟件分層架構(gòu)基本原則有哪些?嵌入式軟件基礎(chǔ)的四層架構(gòu)分別是哪些?
    發(fā)表于 12-24 07:57

    嵌入式軟件架構(gòu)設(shè)計(jì)

    嵌入式軟件架構(gòu)的設(shè)計(jì),幫助我們建立合理,有效的軟件架構(gòu)。
    發(fā)表于 11-09 17:34 ?19次下載

    實(shí)時(shí)多任務(wù)嵌入式軟件架構(gòu)方式的設(shè)計(jì)應(yīng)用

    分享到:標(biāo)簽:軟總線 嵌入式軟件 實(shí)時(shí)多任務(wù) 1.引言 隨著大型嵌入式系統(tǒng)向著集成化和多元化方向的發(fā)展,嵌入式軟件系統(tǒng)的復(fù)雜度也日益增大。在
    發(fā)表于 10-25 14:46 ?1次下載
    實(shí)時(shí)多任務(wù)<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>的<b class='flag-5'>架構(gòu)</b>方式的設(shè)計(jì)應(yīng)用

    嵌入式軟件是什么意思_嵌入式軟件的分類有哪些

    本文首先闡述了嵌入式軟件的概念,其次介紹了嵌入式軟件的特征,最后介紹了嵌入式軟件的分類。
    發(fā)表于 08-31 15:54 ?1.6w次閱讀

    嵌入式開(kāi)發(fā)中常用的軟件架構(gòu)

    嵌入式軟件開(kāi)發(fā),包括單片機(jī)開(kāi)發(fā)中,軟件架構(gòu)對(duì)于開(kāi)發(fā)人員是一個(gè)必須認(rèn)真考慮的問(wèn)題。軟件架構(gòu)對(duì)于系
    的頭像 發(fā)表于 01-01 10:16 ?5591次閱讀
    <b class='flag-5'>嵌入式</b>開(kāi)發(fā)中常用的<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)</b>

    嵌入式開(kāi)發(fā)中軟件架構(gòu)存在的意義

    嵌入式軟件開(kāi)發(fā),包括單片機(jī)開(kāi)發(fā)中,軟件架構(gòu)對(duì)于開(kāi)發(fā)人員是一個(gè)必須認(rèn)真考慮的問(wèn)題。軟件架構(gòu)對(duì)于系
    的頭像 發(fā)表于 09-08 09:18 ?2386次閱讀
    <b class='flag-5'>嵌入式</b>開(kāi)發(fā)中<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)</b>存在的意義

    嵌入式軟件架構(gòu)

    嵌入式軟件架構(gòu)
    發(fā)表于 10-20 20:51 ?20次下載
    <b class='flag-5'>嵌入式</b>系<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)</b>

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

    嵌入式系統(tǒng)軟件架構(gòu)設(shè)計(jì)目錄1.前言42.決定架構(gòu)的因素和架構(gòu)的影響42.1.常見(jiàn)的誤解52.1.1.小型的系統(tǒng)不需要
    發(fā)表于 11-03 18:21 ?30次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)</b>設(shè)計(jì)

    嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計(jì)

    嵌入式軟件設(shè)計(jì)領(lǐng)域的一個(gè)分支,它自身的諸多特點(diǎn)決定了系統(tǒng)架構(gòu)師的選擇,同時(shí)它的一些問(wèn)題又具有相當(dāng)?shù)耐ㄓ眯?,可以推廣到其他的領(lǐng)域。
    的頭像 發(fā)表于 03-12 11:06 ?4192次閱讀

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

    目前常見(jiàn)的嵌入式軟件系統(tǒng)架構(gòu)有三種可以分為:輪詢系統(tǒng)架構(gòu)、前后臺(tái)系統(tǒng)架構(gòu)和多任務(wù)系統(tǒng)架構(gòu)。
    的頭像 發(fā)表于 05-04 16:40 ?2548次閱讀
    詳解FreeRTOS:<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>系統(tǒng)<b class='flag-5'>架構(gòu)</b>