2018 年,沃爾沃汽車開始為嵌入式軟件開發(fā)團(tuán)隊(duì)提供持續(xù)集成 (CI) 工具鏈。該工具鏈為很多項(xiàng)目的開發(fā)人員帶來了持續(xù)編譯、測(cè)試和部署迭代代碼更改的能力。
Polyspace 產(chǎn)品作為這一自動(dòng)化軟件編譯流程的一部分,為用 C 和 C++ 編寫代碼的開發(fā)人員以及從 Simulink 模型生成代碼的開發(fā)人員提供了靜態(tài)代碼檢查。
“幾年前,我們的一個(gè)大型項(xiàng)目開始采用 C++ 進(jìn)行開發(fā),”沃爾沃高級(jí)首席軟件工程師 Johannes Foufas 說。“C++ 是一種復(fù)雜的語言,所以我們需要可靠的代碼驗(yàn)證工具。在我們嘗試過的所有靜態(tài)代碼分析工具中,Polyspace 產(chǎn)品是最為出色的產(chǎn)品之一。”
沃爾沃汽車在整個(gè)開發(fā)生命周期中使用 Polyspace 進(jìn)行靜態(tài)代碼檢查。
“借助 Polyspace,我們可以在每次代碼合并之前識(shí)別并修復(fù)關(guān)鍵的運(yùn)行時(shí)錯(cuò)誤,從而確保軟件的安全性和質(zhì)量。”
—— Johannes Foufas,沃爾沃汽車公司
挑戰(zhàn)
許多沃爾沃汽車軟件工程師用 C 或 C++ 進(jìn)行開發(fā),但這些語言頗為復(fù)雜,可能導(dǎo)致難以發(fā)現(xiàn)的錯(cuò)誤,修復(fù)成本也很高。在過去,沃爾沃汽車使用開源工具來檢查和調(diào)試代碼。然而,這些工具都無法識(shí)別源代碼中的一個(gè)下溢錯(cuò)誤,而該錯(cuò)誤導(dǎo)致了車輛上出現(xiàn)偶發(fā)問題。
為了節(jié)省開發(fā)時(shí)間和成本并符合功能安全和網(wǎng)絡(luò)安全標(biāo)準(zhǔn),沃爾沃團(tuán)隊(duì)需要一種萬無一失的方法來識(shí)別穩(wěn)健性測(cè)試很難檢測(cè)出來的關(guān)鍵運(yùn)行時(shí)錯(cuò)誤,包括溢出和其他數(shù)值問題。
解決方案
Johannes Foufas 的團(tuán)隊(duì)評(píng)估了多種代碼分析工具和服務(wù),最終選擇了 Polyspace 產(chǎn)品作為首選解決方案。沃爾沃汽車軟件工程師與 MathWorks Consulting Services 密切合作,將 Polyspace 工具集成到了軟件開發(fā)生命周期的每個(gè)階段。
工程師使用 Ansible 將 Polyspace 作為基礎(chǔ)作業(yè)整合到 Zuul CI 系統(tǒng)中,并將 Polyspace 的結(jié)果集成到代碼審查系統(tǒng)中。沃爾沃汽車的每個(gè)開發(fā)團(tuán)隊(duì)都可以創(chuàng)建一個(gè)單獨(dú)的已安裝和配置 Polyspace 代碼檢查的 CI 管道。
借助 Polyspace Access 提供的 Polyspace as You Code 插件,很多團(tuán)隊(duì)都會(huì)在使用 IDE 編碼時(shí)檢查代碼是否符合 CERT C、CERT C++、MISRA C 和 AUTOSAR C++14 編碼規(guī)范。在提交代碼修改之前,開發(fā)人員在本地計(jì)算機(jī)上運(yùn)行 Polyspace Bug Finder 和 Polyspace Code Prover 以對(duì)更改進(jìn)行預(yù)驗(yàn)證。
當(dāng)開發(fā)人員將更改推送到源代碼存儲(chǔ)庫時(shí)會(huì)自動(dòng)觸發(fā) Polyspace Bug Finder Server 和 Polyspace Code Prover Server 分析。Polyspace 的結(jié)果會(huì)集成到 Gerrit 中以支持代碼審查。CI 系統(tǒng)采用嚴(yán)格的控制措施:每項(xiàng)建議的更改在代碼合并之前都要經(jīng)過驗(yàn)證,并且僅在滿足功能安全和網(wǎng)絡(luò)安全要求的情況下才會(huì)提示提交到中央 Git 存儲(chǔ)庫中。
結(jié)果
現(xiàn)場(chǎng)測(cè)試前就檢測(cè)到了關(guān)鍵運(yùn)行時(shí)錯(cuò)誤。
Foufas 說,“在現(xiàn)場(chǎng)發(fā)現(xiàn)軟件缺陷需要很高的成本才能修復(fù)。Polyspace Code Prover 是唯一一款能夠讓我們從一開始就發(fā)現(xiàn)問題的工具。”
通過更好的代碼重用提高了工作效率。
Foufas 指出,“Polyspace 節(jié)省了開發(fā)時(shí)間。自從我們?cè)诨A(chǔ)軟件上部署了 Polyspace 靜態(tài)代碼分析工具,基于現(xiàn)有代碼的新項(xiàng)目的調(diào)試問題就大幅減少了。”
ASPICE、ISO 26262 和 ISO/SAE 21434 認(rèn)證要求達(dá)成。
“不符合行業(yè)標(biāo)準(zhǔn)的軟件會(huì)直接影響公司的聲譽(yù)和市場(chǎng)份額。借助 Polyspace 工具,我們更加確信我們的代碼沒有運(yùn)行時(shí)錯(cuò)誤,并且符合功能安全和網(wǎng)絡(luò)安全要求。”Foufas 說。
審核編輯 :李倩
-
嵌入式
+關(guān)注
關(guān)注
5094文章
19178瀏覽量
307732 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73859 -
沃爾沃汽車
+關(guān)注
關(guān)注
0文章
24瀏覽量
3768
原文標(biāo)題:靜態(tài)代碼分析 | 沃爾沃汽車軟件工廠使用 Polyspace 提高開發(fā)速度和質(zhì)量
文章出處:【微信號(hào):MATLAB,微信公眾號(hào):MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
軟件定義汽車(SDV)開發(fā)有哪些挑戰(zhàn)?SDV開發(fā)策略分享:福特汽車采用Jama Connect提升開發(fā)效率與質(zhì)量
如何在日常開發(fā)過程中提高代碼質(zhì)量
![如何在日常<b class='flag-5'>開發(fā)過程中提高</b>代碼<b class='flag-5'>質(zhì)量</b>](https://file1.elecfans.com/web3/M00/06/F7/wKgZO2eRmSeAfKY8AAAYo0adU-E463.png)
如何提高嵌入式代碼質(zhì)量?
CI/CD方案:推動(dòng)智能汽車開發(fā)的高效利器
![CI/CD方案:推動(dòng)智能<b class='flag-5'>汽車</b><b class='flag-5'>開發(fā)</b>的高效利器](https://file.elecfans.com/web2/M00/52/D4/pYYBAGLNkrKAeFJaAAAjXRuImx0496.png)
汽車軟件DevOps解決方案
![<b class='flag-5'>汽車</b><b class='flag-5'>軟件</b>DevOps解決方案](https://file1.elecfans.com/web3/M00/02/72/wKgZO2dfkVGAPke9AABiL-XqrFQ518.png)
沃爾沃汽車榮獲CACSI售后服務(wù)滿意度第一
使用MATLAB、Simulink和Polyspace加速軟件定義汽車開發(fā)
![使用MATLAB、Simulink和<b class='flag-5'>Polyspace</b>加速<b class='flag-5'>軟件</b>定義<b class='flag-5'>汽車</b><b class='flag-5'>開發(fā)</b>](https://file1.elecfans.com/web2/M00/05/51/wKgZombZEBKAfO6aAADuvW3c8U8268.jpg)
沃爾沃將斥資7億美元在墨西哥蒙特雷建重型卡車工廠
如何使用Polyspace Code Prover來統(tǒng)計(jì)堆棧
![如何使用<b class='flag-5'>Polyspace</b> Code Prover來統(tǒng)計(jì)堆棧](https://file1.elecfans.com/web2/M00/FE/63/wKgZomah68aALHvbAAL60nhE0Jk365.png)
2024 ACT汽車軟件與安全技術(shù)周 龍智即將攜全方位汽車軟件開發(fā)解決方案亮相,助力應(yīng)對(duì)汽車軟件開發(fā)功能安全
![2024 ACT<b class='flag-5'>汽車</b><b class='flag-5'>軟件</b>與安全技術(shù)周 龍智即將攜全方位<b class='flag-5'>汽車</b><b class='flag-5'>軟件開發(fā)</b>解決方案亮相,助力應(yīng)對(duì)<b class='flag-5'>汽車</b><b class='flag-5'>軟件開發(fā)</b>功能安全](https://file1.elecfans.com//web2/M00/F9/BF/wKgZomaLoIWAGdz2AACBrsRJSI805.webp)
瑞薩推出最新RoX開發(fā)平臺(tái),將極大提升軟件定義汽車的演進(jìn)速度
![瑞薩推出最新RoX<b class='flag-5'>開發(fā)</b>平臺(tái),將極大提升<b class='flag-5'>軟件</b>定義<b class='flag-5'>汽車</b>的演進(jìn)<b class='flag-5'>速度</b>](https://file1.elecfans.com/web2/M00/F0/DC/wKgZomZzwZuAf37eAAKeFoMIX8E239.png)
評(píng)論