嵌入式軟件開發(fā)為什么要使用基于模型的設計?
對這個問題,最不希望聽到的回答是:
因為GM在使用基于模型設計,因為BMW在使用基于模型設計,所以我們也要使用基于模型設計……
好吧,或許他們可以作為借鑒,但是我們是否認真想過:
基于模型的設計能給我們的開發(fā)帶來什么樣的好處?
弄清這個問題,是我們在后續(xù)有效使用基于模型設計開發(fā)嵌入式軟件的前提。
這里我引用一下若干年前MathWorks公司CEO——Jack Little的說法,在嵌入式軟件開發(fā)過程中,基于模型的設計至少可以給我們帶來四個方面的好處:
1圖形化設計
對于基于模型的設計來講,圖形化設計是天然的、固有的。圖形化的優(yōu)勢,工程師們都非常清楚,明確、清晰、唯一,便于交流、便于維護,這也是為什么就算我們不用基于模型設計的方式開發(fā)軟件,也需要在設計文檔中畫流程圖、狀態(tài)機的原因。
需要注意的是,我們需要把Simulink模型畫到清晰、明確,便于交流、便于維護。
2早期驗證
話說軟件開發(fā)過程中,bug的引入難以避免。人非圣賢、孰能無過,引入bug不可怕,能否盡快發(fā)現(xiàn)bug對整個開發(fā)過程至關(guān)重要。這里提到“早期”,什么是“早期”?你某一個階段的工作產(chǎn)品出來之后,緊跟著就要做驗證工作。對于早期驗證,以前的方式比較單一,通常我們使用評審的方式去實現(xiàn)最早期的驗證,以至于Peer Review在很多公司的流程中被固化下來了,寫完文檔要評審,做完設計要評審,寫完代碼還要評審,寫好測試用例也要評審。如果我們翻看一些軟件工程的教材或者文獻,大家對評審的評價非常高,因為在這個階段每發(fā)現(xiàn)一個錯誤,都會給后續(xù)的開發(fā)過程帶來很多便利,但遺憾的是,評審的效率通常不高。
使用基于模型設計去開發(fā)軟件,除了評審,我們還有更高效的早期驗證方式,包括Simulink模型本身固有的仿真,以及通過形式化方法工具對模型進行形式化的分析。
3代碼的自動生成
自動生成代碼通常是使用基于模型設計進行軟件開發(fā)的工程師最容易關(guān)注的優(yōu)勢。代碼都不用寫了,“碼農(nóng)”從此跟我無關(guān),還有什么比這事更美好的呢?確實,從開發(fā)效率來講,這個環(huán)節(jié),對于效率的提升,是無法量化的,原本需要一個月時間寫完的代碼,現(xiàn)在可能只要一個上午或者兩個小時就可以搞定,誰幫我算一下工作效率提升了多少?不少人對代碼生成的開發(fā)效率沒有質(zhì)疑,但對生成代碼的代碼效率卻不夠放心。這事,很多人都比過,SAE上也能找到這樣的論文。通俗點講,從效率上,生成的代碼在各種效率上(RAM、ROM、執(zhí)行時間等)不比大學畢業(yè)后工作了5年的工程師差。當然,遇到那種“寫代碼像寫詩一樣”的工程師,代碼生成工具還是要甘拜下風的。不過,“寫代碼像寫詩一樣”的工程師我們又見過幾人?
4文檔自動化
對于文檔,我說兩點:
工程師大多不愿意寫文檔;
開發(fā)過程中文檔又是不可缺少的。
有三個字足以證明上面兩條,那就是“補文檔”。在基于模型設計的開發(fā)過程中,我們可以通過軟件讀取模型中相關(guān)信息并自動創(chuàng)建文檔,實現(xiàn)文檔自動化。
上面提到了基于模型設計能給我們帶來的好處,也正是因為基于模型的設計可以給我?guī)砩鲜龊锰帲晕覀儾艖撌褂没谀P偷脑O計。
除上述優(yōu)勢之外,軟件規(guī)模的爆炸式增長也是使用基于模型的設計開發(fā)軟件的一個重要原因。我想很多人都會有很深刻的體會,近年來軟件規(guī)模在快速膨脹,各種機電產(chǎn)品的功能、性能大多通過軟件的方式去實現(xiàn)、去提升。
NASA做過研究,汽車、航天器等產(chǎn)品的代碼量這些年都在呈指數(shù)級增加,戰(zhàn)斗機從1960年的F-4約8%的功能由軟件實現(xiàn)到2000年的F-22約有80%的功能由軟件實現(xiàn),其他機電系統(tǒng)也差不多。軟件規(guī)模的快速膨脹,給驗證和實現(xiàn)都帶來了很大困難。
原有的開發(fā)模式難以應對,新的開發(fā)模式必然會出現(xiàn)。即便是沒有MathWorks、沒有Simulink,也會有其他產(chǎn)品去實現(xiàn)基于模型的設計,這不是單單一個MathWorks能夠推動的,而是技術(shù)發(fā)展到這一階段的必然。
-
自動化
+關(guān)注
關(guān)注
29文章
5785瀏覽量
84901 -
圖形化
+關(guān)注
關(guān)注
0文章
57瀏覽量
14377
發(fā)布評論請先 登錄
大模型在半導體行業(yè)的應用可行性分析
FA模型的DataAbility的切換介紹
FA模型的ServiceAbility的切換介紹
FA模型綁定Stage模型ServiceExtensionAbility介紹
KaihongOS操作系統(tǒng)FA模型與Stage模型介紹
IBIS模型中的Corner參數(shù)處理

評論