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