成功開(kāi)發(fā)和啟動(dòng)嵌入式系統(tǒng)需要廣泛的技能范圍和工程學(xué)科。每個(gè)嵌入式系統(tǒng)都需要八個(gè)不同的軟件開(kāi)發(fā)領(lǐng)域的知識(shí)。嵌入式開(kāi)發(fā)人員掌握嵌入式軟件 8 大支柱的程度將直接影響開(kāi)發(fā)成本、代碼可擴(kuò)展性、系統(tǒng)穩(wěn)健性以及其他關(guān)鍵開(kāi)發(fā)指標(biāo)。讓我們檢查每個(gè)支柱及其在嵌入式軟件開(kāi)發(fā)中的作用。
支柱1 - 建筑
軟件架構(gòu)是應(yīng)用程序的藍(lán)圖。一個(gè)經(jīng)過(guò)深思熟慮的藍(lán)圖為開(kāi)發(fā)人員提供了對(duì)主要軟件組件、它們?nèi)绾蜗嗷ヒ约八鼈兊沫h(huán)境交互的重要理解。架構(gòu)應(yīng)該提供可擴(kuò)展性并讓團(tuán)隊(duì)成員了解正在構(gòu)建的系統(tǒng)。缺乏軟件架構(gòu)類似于在事先不知道建筑物的高度、樓層數(shù)和總面積的情況下建造建筑物。正如人們可能想象的那樣,建造這樣一座建筑在開(kāi)始之前就注定要失敗。
支柱 2 – 代碼分析
開(kāi)發(fā)嵌入式系統(tǒng)不僅僅是盡快編寫(xiě)代碼。許多系統(tǒng)需要健壯并且對(duì)用戶來(lái)說(shuō)似乎沒(méi)有錯(cuò)誤(即使現(xiàn)實(shí)中不存在沒(méi)有錯(cuò)誤的系統(tǒng))。系統(tǒng)開(kāi)發(fā)人員需要了解現(xiàn)代代碼分析技術(shù)。靜態(tài)、動(dòng)態(tài)和最壞情況堆棧分析等技術(shù)只是幾個(gè)例子,但只是分析冰山一角。團(tuán)隊(duì)分析其代碼并發(fā)現(xiàn)缺陷、錯(cuò)誤和暴露不符合項(xiàng)的能力可以確保用戶安全或影響其公司品牌。
支柱 3 – 調(diào)試
今天嵌入式軟件團(tuán)隊(duì)面臨的最大挑戰(zhàn)是調(diào)試他們的系統(tǒng)。嵌入式系統(tǒng)每年都變得越來(lái)越復(fù)雜,系統(tǒng)越復(fù)雜,調(diào)試就越困難、耗時(shí)且成本高昂。為了最大限度地減少調(diào)試,嵌入式開(kāi)發(fā)人員需要精通現(xiàn)代調(diào)試技術(shù),例如實(shí)時(shí)跟蹤。更少的調(diào)試時(shí)間意味著更多的時(shí)間來(lái)添加創(chuàng)新的產(chǎn)品功能。
支柱 4 – 文檔
開(kāi)發(fā)嵌入式系統(tǒng)時(shí),文檔是必不可少的。如果沒(méi)有一些描述正在構(gòu)建的基本需求定義,就無(wú)法構(gòu)建系統(tǒng)。如果沒(méi)有記錄良好的代碼庫(kù),開(kāi)發(fā)人員就無(wú)法正確維護(hù)代碼。如果回歸測(cè)試沒(méi)有測(cè)試有效的產(chǎn)品特性,那么它們是無(wú)用的。如果團(tuán)隊(duì)不具備該領(lǐng)域的專業(yè)知識(shí),則開(kāi)發(fā)文檔可能會(huì)很昂貴并且需要寶貴的時(shí)間。掌握文檔有助于降低總擁有成本。
支柱 5 – 語(yǔ)言技能
并非所有的編程語(yǔ)言都是平等的。不止一種語(yǔ)言可以完成這項(xiàng)工作,例如 C、C++、Python、或其他語(yǔ)言。如果沒(méi)有深入了解一種語(yǔ)言的優(yōu)勢(shì)和劣勢(shì),開(kāi)發(fā)人員可能會(huì)自找麻煩。某些 C 編程語(yǔ)言領(lǐng)域有不明確的定義,其中使用兩個(gè)不同的編譯器進(jìn)行編譯可能會(huì)導(dǎo)致兩個(gè)截然不同的結(jié)果。某些結(jié)構(gòu)快速高效,而另一些結(jié)構(gòu)會(huì)使代碼膨脹并減慢速度。如果開(kāi)發(fā)人員沒(méi)有意識(shí)到這些問(wèn)題領(lǐng)域,那么注定會(huì)發(fā)生壞事。
支柱 6 – 標(biāo)準(zhǔn)
行業(yè)標(biāo)準(zhǔn)是開(kāi)發(fā)人員應(yīng)謹(jǐn)慎遵循的關(guān)鍵支柱。標(biāo)準(zhǔn)通常包含開(kāi)發(fā)人員的見(jiàn)解和最佳實(shí)踐,只有通過(guò)反復(fù)試驗(yàn)才能學(xué)習(xí)到。開(kāi)發(fā)周期對(duì)嵌入式開(kāi)發(fā)人員來(lái)說(shuō)重新發(fā)明輪子的時(shí)間太少了,許多行業(yè)標(biāo)準(zhǔn),如 MISRA、CERT 和 IEC 61508 及其行業(yè)衍生品都充滿了偉大的工程實(shí)踐。
支柱 7 – 測(cè)試
即使通過(guò)回歸測(cè)試來(lái)正確測(cè)試和驗(yàn)證軟件的能力對(duì)于開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō)也是必不可少的。修復(fù)錯(cuò)誤的最新更改是否破壞了其他任何內(nèi)容?系統(tǒng)是否滿足要求?每個(gè)代碼分支都通過(guò)測(cè)試正確執(zhí)行了嗎?測(cè)試為開(kāi)發(fā)人員提供了系統(tǒng)在受控條件下按預(yù)期運(yùn)行的舒適度。
支柱 8 – 工具
專業(yè)的嵌入式軟件開(kāi)發(fā)人員需要訪問(wèn)并知道如何使用他們的行業(yè)工具。對(duì)他們的工具和生態(tài)系統(tǒng)的了解可以在一個(gè)健壯的系統(tǒng)和一個(gè)古怪的業(yè)余產(chǎn)品之間產(chǎn)生差異。正確的工具,雖然可以為正確的工作支付十倍的費(fèi)用,但仍然對(duì)上市時(shí)間產(chǎn)生巨大影響。
結(jié)論
掌握這八個(gè)嵌入式軟件支柱的團(tuán)隊(duì)無(wú)疑是在堅(jiān)實(shí)的基礎(chǔ)上構(gòu)建他們的軟件的。大多數(shù)失敗的團(tuán)隊(duì)都缺乏至少一個(gè)支柱方面的專業(yè)知識(shí)。為確保成功,嵌入式開(kāi)發(fā)團(tuán)隊(duì)需要具備每個(gè)支柱的專業(yè)知識(shí)并使用規(guī)范的設(shè)計(jì)方法。