嵌入式軟件開(kāi)發(fā)為什么要使用基于模型的設(shè)計(jì)?
對(duì)這個(gè)問(wèn)題,最不希望聽(tīng)到的回答是:
因?yàn)镚M在使用基于模型設(shè)計(jì),因?yàn)锽MW在使用基于模型設(shè)計(jì),所以我們也要使用基于模型設(shè)計(jì)……
好吧,或許他們可以作為借鑒,但是我們是否認(rèn)真想過(guò):
基于模型的設(shè)計(jì)能給我們的開(kāi)發(fā)帶來(lái)什么樣的好處?
弄清這個(gè)問(wèn)題,是我們?cè)诤罄m(xù)有效使用基于模型設(shè)計(jì)開(kāi)發(fā)嵌入式軟件的前提。
這里我引用一下若干年前MathWorks公司CEO——Jack Little的說(shuō)法,在嵌入式軟件開(kāi)發(fā)過(guò)程中,基于模型的設(shè)計(jì)至少可以給我們帶來(lái)四個(gè)方面的好處:
1圖形化設(shè)計(jì)
對(duì)于基于模型的設(shè)計(jì)來(lái)講,圖形化設(shè)計(jì)是天然的、固有的。圖形化的優(yōu)勢(shì),工程師們都非常清楚,明確、清晰、唯一,便于交流、便于維護(hù),這也是為什么就算我們不用基于模型設(shè)計(jì)的方式開(kāi)發(fā)軟件,也需要在設(shè)計(jì)文檔中畫(huà)流程圖、狀態(tài)機(jī)的原因。
需要注意的是,我們需要把Simulink模型畫(huà)到清晰、明確,便于交流、便于維護(hù)。
2早期驗(yàn)證
話說(shuō)軟件開(kāi)發(fā)過(guò)程中,bug的引入難以避免。人非圣賢、孰能無(wú)過(guò),引入bug不可怕,能否盡快發(fā)現(xiàn)bug對(duì)整個(gè)開(kāi)發(fā)過(guò)程至關(guān)重要。這里提到“早期”,什么是“早期”?你某一個(gè)階段的工作產(chǎn)品出來(lái)之后,緊跟著就要做驗(yàn)證工作。對(duì)于早期驗(yàn)證,以前的方式比較單一,通常我們使用評(píng)審的方式去實(shí)現(xiàn)最早期的驗(yàn)證,以至于Peer Review在很多公司的流程中被固化下來(lái)了,寫(xiě)完文檔要評(píng)審,做完設(shè)計(jì)要評(píng)審,寫(xiě)完代碼還要評(píng)審,寫(xiě)好測(cè)試用例也要評(píng)審。如果我們翻看一些軟件工程的教材或者文獻(xiàn),大家對(duì)評(píng)審的評(píng)價(jià)非常高,因?yàn)樵谶@個(gè)階段每發(fā)現(xiàn)一個(gè)錯(cuò)誤,都會(huì)給后續(xù)的開(kāi)發(fā)過(guò)程帶來(lái)很多便利,但遺憾的是,評(píng)審的效率通常不高。

使用基于模型設(shè)計(jì)去開(kāi)發(fā)軟件,除了評(píng)審,我們還有更高效的早期驗(yàn)證方式,包括Simulink模型本身固有的仿真,以及通過(guò)形式化方法工具對(duì)模型進(jìn)行形式化的分析。
3代碼的自動(dòng)生成
自動(dòng)生成代碼通常是使用基于模型設(shè)計(jì)進(jìn)行軟件開(kāi)發(fā)的工程師最容易關(guān)注的優(yōu)勢(shì)。代碼都不用寫(xiě)了,“碼農(nóng)”從此跟我無(wú)關(guān),還有什么比這事更美好的呢?確實(shí),從開(kāi)發(fā)效率來(lái)講,這個(gè)環(huán)節(jié),對(duì)于效率的提升,是無(wú)法量化的,原本需要一個(gè)月時(shí)間寫(xiě)完的代碼,現(xiàn)在可能只要一個(gè)上午或者兩個(gè)小時(shí)就可以搞定,誰(shuí)幫我算一下工作效率提升了多少?不少人對(duì)代碼生成的開(kāi)發(fā)效率沒(méi)有質(zhì)疑,但對(duì)生成代碼的代碼效率卻不夠放心。這事,很多人都比過(guò),SAE上也能找到這樣的論文。通俗點(diǎn)講,從效率上,生成的代碼在各種效率上(RAM、ROM、執(zhí)行時(shí)間等)不比大學(xué)畢業(yè)后工作了5年的工程師差。當(dāng)然,遇到那種“寫(xiě)代碼像寫(xiě)詩(shī)一樣”的工程師,代碼生成工具還是要甘拜下風(fēng)的。不過(guò),“寫(xiě)代碼像寫(xiě)詩(shī)一樣”的工程師我們又見(jiàn)過(guò)幾人?
4文檔自動(dòng)化
對(duì)于文檔,我說(shuō)兩點(diǎn):
工程師大多不愿意寫(xiě)文檔;
開(kāi)發(fā)過(guò)程中文檔又是不可缺少的。
有三個(gè)字足以證明上面兩條,那就是“補(bǔ)文檔”。在基于模型設(shè)計(jì)的開(kāi)發(fā)過(guò)程中,我們可以通過(guò)軟件讀取模型中相關(guān)信息并自動(dòng)創(chuàng)建文檔,實(shí)現(xiàn)文檔自動(dòng)化。
上面提到了基于模型設(shè)計(jì)能給我們帶來(lái)的好處,也正是因?yàn)榛谀P偷脑O(shè)計(jì)可以給我?guī)?lái)上述好處,所以我們才應(yīng)該使用基于模型的設(shè)計(jì)。
除上述優(yōu)勢(shì)之外,軟件規(guī)模的爆炸式增長(zhǎng)也是使用基于模型的設(shè)計(jì)開(kāi)發(fā)軟件的一個(gè)重要原因。我想很多人都會(huì)有很深刻的體會(huì),近年來(lái)軟件規(guī)模在快速膨脹,各種機(jī)電產(chǎn)品的功能、性能大多通過(guò)軟件的方式去實(shí)現(xiàn)、去提升。
NASA做過(guò)研究,汽車、航天器等產(chǎn)品的代碼量這些年都在呈指數(shù)級(jí)增加,戰(zhàn)斗機(jī)從1960年的F-4約8%的功能由軟件實(shí)現(xiàn)到2000年的F-22約有80%的功能由軟件實(shí)現(xiàn),其他機(jī)電系統(tǒng)也差不多。軟件規(guī)模的快速膨脹,給驗(yàn)證和實(shí)現(xiàn)都帶來(lái)了很大困難。
原有的開(kāi)發(fā)模式難以應(yīng)對(duì),新的開(kāi)發(fā)模式必然會(huì)出現(xiàn)。即便是沒(méi)有MathWorks、沒(méi)有Simulink,也會(huì)有其他產(chǎn)品去實(shí)現(xiàn)基于模型的設(shè)計(jì),這不是單單一個(gè)MathWorks能夠推動(dòng)的,而是技術(shù)發(fā)展到這一階段的必然。
-
自動(dòng)化
+關(guān)注
關(guān)注
31文章
5933瀏覽量
90234 -
圖形化
+關(guān)注
關(guān)注
0文章
57瀏覽量
14522
發(fā)布評(píng)論請(qǐng)先 登錄
使用NORDIC AI的好處
星地?cái)?shù)據(jù)大模型融合分析與應(yīng)用分系統(tǒng)平臺(tái)的應(yīng)用與未來(lái)發(fā)展
關(guān)于系統(tǒng)鏈接腳本的介紹
知識(shí)分享 | 使用MXAM進(jìn)行AUTOSAR模型的靜態(tài)分析:Embedded Coder與TargetLink模型
大模型在半導(dǎo)體行業(yè)的應(yīng)用可行性分析
十字形多自由度超聲電機(jī)接觸分析模型研究
FA模型的DataAbility的切換介紹
FA模型的ServiceAbility的切換介紹
FA模型綁定Stage模型ServiceExtensionAbility介紹
如何將一個(gè)FA模型開(kāi)發(fā)的聲明式范式應(yīng)用切換到Stage模型
IGBT模塊吸收回路分析模型
KaihongOS操作系統(tǒng)FA模型與Stage模型介紹
IBIS模型中的Corner參數(shù)處理
關(guān)于基于模型設(shè)計(jì)的好處分析和介紹
評(píng)論