1. gzyueqian
      13352868059

      嵌入式開發(fā):設(shè)計(jì)嵌入式軟件架構(gòu)的5個(gè)步驟—步驟1

      更新時(shí)間: 2022-11-29 09:45:10來(lái)源: 粵嵌教育瀏覽量:7480

      軟件架構(gòu)是體現(xiàn)在其組件中的系統(tǒng)的基本組織,它們之間的相互關(guān)系和環(huán)境,以及指導(dǎo)其設(shè)計(jì)和發(fā)展的原則[1]。軟件架構(gòu)不意味著一次就可以創(chuàng)建并固定下來(lái)。相反,在嵌入式開發(fā)中,軟件架構(gòu)應(yīng)該在產(chǎn)品的整個(gè)生命周期中不斷發(fā)展和變化。

       

      在實(shí)施過(guò)程中經(jīng)過(guò)思考并不斷發(fā)展的軟件架構(gòu)有很多好處,例如:

      充當(dāng)正在建設(shè)的項(xiàng)目的路線圖

      提供可用于培訓(xùn)工程師和向管理層和利益相關(guān)者解釋軟件的軟件圖

      最大限度減少不必要的返工

      降低開發(fā)成本

       

      團(tuán)隊(duì)可以使用五個(gè)步驟來(lái)開發(fā)和發(fā)展他們的軟件架構(gòu)

      1.分離軟件架構(gòu)

      2.識(shí)別和跟蹤數(shù)據(jù)資產(chǎn)

      3.分解系統(tǒng)

      4.界面和組件設(shè)計(jì)

      5.模擬、迭代和縮放

       

      今天讓我們來(lái)了解一下第1個(gè)步驟。

       

      步驟 1–分離軟件架構(gòu)

      許多嵌入式開發(fā)團(tuán)隊(duì)將他們的軟件架構(gòu)視為一個(gè)單一的內(nèi)聚架構(gòu),包括應(yīng)用程序代碼和硬件交互。以這種方式看待架構(gòu)并不奇怪,因?yàn)榍度胧杰浖こ處熗ǔ挠布慕嵌葋?lái)看待他們的系統(tǒng)。嵌入式軟件是獨(dú)特的,因?yàn)樗仨毰c硬件交互,這不同于所有其他軟件工程領(lǐng)域。雖然這是真的,但是現(xiàn)代軟件架構(gòu)師將會(huì)并且應(yīng)該把依賴于硬件和獨(dú)立于硬件的軟件分開,如圖1所示。

      1——嵌入式軟件架構(gòu)分為硬件相關(guān)和獨(dú)立架構(gòu),通過(guò)抽象層進(jìn)行交互。(圖片來(lái)源:嵌入式軟件設(shè)計(jì)[2])

       

      傳統(tǒng)上,開發(fā)人員將設(shè)計(jì)和實(shí)現(xiàn)他們的架構(gòu),以便硬件的獨(dú)立層和依賴層緊密耦合。但是不幸的是,緊密耦合的架構(gòu)有很多問(wèn)題。

       

      緊密耦合架構(gòu)的問(wèn)題

      首先,它們不太便于攜帶。例如,如果微控制器突然變得不可用,會(huì)發(fā)生什么?如果代碼是緊密耦合的,那么試圖將應(yīng)用程序代碼轉(zhuǎn)移到新的微控制器上運(yùn)行就變得非常困難。應(yīng)用程序代碼與微控制器上的底層硬件調(diào)用緊密耦合!如果嵌入式開發(fā)人員不更新他們的架構(gòu),他們就不得不重新檢查所有的代碼,并修改與硬件交互的每一行代碼。更新架構(gòu)的公司通過(guò)抽象和依賴注入打破了架構(gòu)耦合。

       

      其次,在開發(fā)環(huán)境中而不是在目標(biāo)硬件上對(duì)應(yīng)用程序進(jìn)行單元測(cè)試幾乎是不可能的。如果應(yīng)用程序代碼直接調(diào)用硬件,大量的工作將進(jìn)入測(cè)試工具以成功運(yùn)行測(cè)試,或者測(cè)試將需要在硬件上完成。在硬件上進(jìn)行測(cè)試是緩慢的,并且通常是手動(dòng)的而不是自動(dòng)化的過(guò)程。結(jié)果是軟件沒(méi)有得到很好的測(cè)試,整個(gè)系統(tǒng)的質(zhì)量受到影響。此外,交付軟件可能需要更長(zhǎng)時(shí)間。

       

      最后,緊密耦合的架構(gòu)會(huì)有可伸縮性問(wèn)題。緊密耦合的系統(tǒng)通常共享數(shù)據(jù)。隨著軟件系統(tǒng)試圖增長(zhǎng)和增加新的特性,每增加一個(gè)新的特性,增加新的代碼就變得更加困難。組件之間的交互、訪問(wèn)共享數(shù)據(jù)的能力以及出現(xiàn)麻煩的缺陷的機(jī)會(huì)都急劇增加。因此,盡管嵌入式開發(fā)人員努力工作以完成工作,功能開發(fā)可能會(huì)停滯不前。

       

      分離架構(gòu)如何解決問(wèn)題

      將軟件架構(gòu)分成依賴于硬件的和獨(dú)立的架構(gòu)解決了緊密耦合架構(gòu)的所有問(wèn)題。例如,在硬件相關(guān)架構(gòu)和獨(dú)立架構(gòu)之間創(chuàng)建一個(gè)抽象層,可以將應(yīng)用代碼從一個(gè)微控制器轉(zhuǎn)移到下一個(gè)微控制器。抽象層打破了硬件依賴;換句話說(shuō),應(yīng)用程序不知道也不關(guān)心硬件。相反,應(yīng)用程序依賴于接口。新的依賴于硬件的組件只需要滿足接口的要求這意味著如果我們改變硬件,只有硬件模塊改變!而不是整個(gè)代碼庫(kù)。

       

      在兩個(gè)架構(gòu)之間添加一個(gè)抽象層也解決了單元測(cè)試的許多問(wèn)題。有了抽象層,就更容易創(chuàng)建向應(yīng)用程序代碼返回預(yù)期和意外數(shù)據(jù)的測(cè)試替身和模擬。我們甚至不需要硬件就可以編寫所有的應(yīng)用程序代碼!

       

      當(dāng)我們保持我們的體系結(jié)構(gòu)獨(dú)立,并專注于最小化耦合時(shí),擴(kuò)展軟件就變得容易多了。然而,僅僅因?yàn)槲覀兎纸饬思軜?gòu)并不意味著我們不能在每個(gè)架構(gòu)中產(chǎn)生耦合和內(nèi)聚的問(wèn)題。我們?nèi)匀恍枰_保我們遵循固體兩種架構(gòu)中的原則。好消息是,它允許嵌入式開發(fā)人員獨(dú)立關(guān)注每個(gè)架構(gòu),這意味著實(shí)時(shí)和硬件約束問(wèn)題不會(huì)進(jìn)入核心應(yīng)用程序邏輯。

       

      最后一個(gè)好處是,通過(guò)分離依賴于硬件和獨(dú)立的架構(gòu),我們可以在硬件可用之前專注于開發(fā)和交付應(yīng)用程序。這樣做的好處是,客戶和管理層可以提前訪問(wèn)應(yīng)用程序并提供反饋。然后迭代應(yīng)用程序并關(guān)注于確保它滿足實(shí)際需求的能力變得更加易于管理。今天,太多的團(tuán)隊(duì)專注于首先準(zhǔn)備好硬件,而核心應(yīng)用程序是事后才想到的。這不是設(shè)計(jì)和構(gòu)建系統(tǒng)的方法。

       

      軟件架構(gòu)設(shè)計(jì)第1步結(jié)論

      軟件架構(gòu)可以幫助團(tuán)隊(duì)控制他們的軟件。成功的軟件架構(gòu)通常是通過(guò)迭代和演化創(chuàng)建的。設(shè)計(jì)軟件架構(gòu)的第一步是認(rèn)識(shí)到嵌入式系統(tǒng)不只有一種架構(gòu)。取而代之的是兩種架構(gòu)硬件依賴型和獨(dú)立型架構(gòu)。有目的地分離這些架構(gòu)允許嵌入式開發(fā)人員利用現(xiàn)代軟件技術(shù)和方法來(lái)改進(jìn)上市時(shí)間、質(zhì)量和開發(fā)成本。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线a天堂亚洲 | 日本免费大黄在线观看 | 久久久久久五月天 | 亚洲制服类中文字幕 | 中文字幕在线一区二区三区 | 亚洲精品俄罗斯在线播放 |