粵嵌教育
                    gzyueqian
                    13352868059

                    嵌入式開發:5個嵌入式軟件架構陷阱

                    更新時間: 2022-12-12 16:59:57來源: 粵嵌教育瀏覽量:834

                      軟件架構是一個系統的基本組織,體現在它的組件,它們之間的關系和環境,以及指導它的設計和發展的原則。每個嵌入式系統都應該有一個軟件架構來指導嵌入式開發人員構建什么。但是,在成功的軟件架構的道路上遇到幾個陷阱并不罕見。在本帖中,我們將探討五個嵌入式軟件架構陷阱以及如何避免它們。

                      陷阱1——相信進化架構

                      有些開發團隊存在一種想法,即在開始編碼之前沒有必要考慮你的軟件架構。相反,人們相信系統軟件架構會奇跡般地從無到有,自行發展成可伸縮、可重用、高質量的架構。但是,這種信念似乎源于對敏捷運動思想的曲解。所以,讓我們澄清事實。

                      軟件架構是一張路線圖,一張藍圖,它告訴編碼人員他們的代碼如何適應更大的難題。軟件架構確定了主要的組件、它們的輸入、輸出以及彼此之間的交互。設計良好的軟件架構的一個特點是它可以不斷發展,以滿足客戶不斷變化的需求。最成功的團隊會花一些時間在軟件架構的前期工作。

                      提前花一些時間找出軟件架構的各個部分仍然適合在敏捷方法中工作的團隊。該架構不需要以瀑布的方式開發,但可以隨著細節和經驗的積累,通過多次迭代來設計和完善。以這種方式開發的軟件架構通常更靈活,并且比嵌入式開發團隊希望架構只是出現要成功得多。

                      陷阱2——不遵循數據

                      設計軟件架構的一個很好的原則是遵循數據。我的第一個現代嵌入式軟件原則是數據決定設計。數據是每個嵌入式系統都要管理的真正資產。數據以各種形式進入系統,形成輸入。這些數據輸入然后被處理、存儲和/或用于從系統產生輸出。

                      當你設計嵌入式軟件時,你不應該關心使用什么溫度傳感器,系統中設計了什么按鈕,甚至不應該關心使用什么微控制器。相反,設計人員和開發人員應該識別并遵循他們系統中的數據資產。因此,例如,架構應該識別溫度數據資產,而不是擔心溫度傳感器供應商。同樣,在軟件架構中,我們不關心硬件,只關心有一個接口作為溫度數據。

                      如果嵌入式開發人員遵循這些數據,在這些數據上執行期望的系統行為所必需的軟件架構就會自然而然地到位。奇怪的是,它將創建一個獨立于硬件且更容易測試的軟件架構。通過軟件系統識別和跟蹤數據來避免這個陷阱。

                      


                      缺陷3——沒有考慮響應時間

                      嵌入式系統通常有與之相關的實時響應要求。例如,如果用戶按下緊急停止按鈕,系統將在十毫秒內停止。

                      雖然目標是創建可伸縮和靈活的架構,但是軟件架構師還需要考慮他們的架構決策對實現的影響。在架構師階段,它可能無法完全量化響應時間。但是,可以盡快識別和測試高風險區域。

                      開發人員在創建基于任務的架構時遇到困難。如果架構師在基于任務的設計模式方面經驗不足,那么響應延遲遠遠超過預期的情況并不少見。許多定時問題源于中斷和周期性任務之間的交互。這個問題有時可以通過將問題任務的架構從基于時間改為事件驅動來解決。

                      缺陷4——沒有實施/架構反饋回路

                      當一個嵌入式開發團隊把它的軟件架構放在一起時,團隊表現得好像架構是福音,不能被改變。對于編寫代碼的開發人員來說,進行架構上的更改,而從不將這些更改反饋給架構師,這種情況并不罕見。缺點是在實現和架構之間需要一個反饋回路。

                      架構師基于他們認為的應用程序的最佳解決方案來構建他們的體系結構。不幸的是,架構師通常沒有完全構建架構所需的所有信息。因此,在實現過程中,由編碼人員向架構師更新他們的發現、問題等等,以確定整個軟件架構的最佳方向。如果編碼人員在沒有架構師反饋的情況下自己進行更改,他們可能會將系統推向對架構來說不是最佳的方向。結果是代碼和架構慢慢積累了阻礙成功的技術債務。

                      陷阱5——選擇錯誤的架構

                      幾種不同類型的軟件架構可以應用于嵌入式應用。例如,有非結構化整體、分層整體、事件驅動、狀態驅動和微服務架構。如果架構師為他們的系統選擇了錯誤的體系結構,他們可能會發現他們在應用程序的伸縮性方面有問題,在響應時間方面有問題,或者其他許多潛在的問題。

                      嵌入式開發人員可能為工作選擇錯誤架構的幾個原因。首先,他們可能只是對嘗試一種他們從未使用過的新架構感興趣。雖然擴大自己的視野可能是好的,但設計師必須小心確保他們決定使用的架構類型能夠解決手頭的問題,并且不會引入復雜性或其他潛在的問題。例如,微服務架構已經變得非常流行,但是如果不小心的話,它們可能會受到復雜性和響應時間問題的困擾。

                      設計嵌入式系統時,請仔細查看數據和數據運行的領域,以幫助確定最適合應用的架構模型。在某些應用程序中,你可能會發現需要混合架構類型來解決問題。

                      結論

                      軟件架構是指導開發者成功構建嵌入式應用的關鍵設計元素。開發人員可以利用廣泛的軟件架構和設計模式來解決常見的設計問題。在探索這些體系結構和設計模式之前,嵌入式開發人員應該首先檢查了五個軟件體系結構陷阱,它們會妨礙好的體系結構。

                    免費預約試聽課

                    推薦閱讀

                    18禁男女污污污午夜网站免费,国产成人夜色高潮福利影视,午夜男女真人做爽爽爽视频