0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于Polyspace的靜態(tài)分析的詳細(xì)解析和應(yīng)用

MATLAB ? 來源:djl ? 作者:龔小平 ? 2019-09-16 17:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Polyspace是MathWorks產(chǎn)品家族的一員, 也許有人還不知道它能做什么以及作用原理是什么。簡單來說,Polyspace是基于抽象解釋原理的代碼級靜態(tài)分析和驗(yàn)證工具。

的確,由于時(shí)間和成本的關(guān)系我們不可能做窮舉測試,但并不能就此推斷我們沒有測試的工況是安全的。

以汽車行業(yè)為例,已發(fā)生的多次召回事件經(jīng)分析是因?yàn)檐浖毕萦绕涫沁\(yùn)行時(shí)錯(cuò)誤(run-time error)造成的。所謂的運(yùn)行時(shí)錯(cuò)誤,是指在通常的調(diào)試過程中需要程序運(yùn)行起來之后才可能顯現(xiàn)的錯(cuò)誤,如指針越界、數(shù)據(jù)溢出等。換句話說,如果測試用例沒有覆蓋到特定的輸入條件時(shí),這些問題可能就沒有機(jī)會(huì)被發(fā)現(xiàn)。

關(guān)于Polyspace的靜態(tài)分析的詳細(xì)解析和應(yīng)用

Windows平臺(tái)下調(diào)試運(yùn)行時(shí)錯(cuò)誤發(fā)生的案例

除汽車行業(yè)以外,航空航天、鐵路、醫(yī)療等所謂高完整性系統(tǒng)行業(yè),嵌入式軟件往往承載著系統(tǒng)大部分重要功能的實(shí)現(xiàn),一旦發(fā)生問題會(huì)帶來異常嚴(yán)重的后果。軟件的靜態(tài)分析作為動(dòng)態(tài)功能測試的重要補(bǔ)充,在這些行業(yè)應(yīng)用非常廣泛。

所謂的靜態(tài)分析,指在不運(yùn)行程序的情況下,基于數(shù)學(xué)方法的分析來驗(yàn)證代碼是否滿足規(guī)范性、安全性、可靠性、可維護(hù)性等指標(biāo)的一種代碼分析技術(shù)。通俗地說,靜態(tài)分析可以通過不寫測試用例達(dá)到動(dòng)態(tài)窮舉測試的效果,是用來提高代碼魯棒性和證明軟件安全性的重要手段。

Polyspace所采用的靜態(tài)分析方法是抽象解釋,是軟件形式化驗(yàn)證方法(Formal Verification)的一種,它在處理復(fù)雜的計(jì)算問題或模型的過程中通過對問題進(jìn)行近似抽象,取出其中的關(guān)鍵部分進(jìn)行分析,從而減少問題的復(fù)雜程度。

關(guān)于Polyspace的靜態(tài)分析的詳細(xì)解析和應(yīng)用

抽象解釋

簡單舉例,判斷x/(x-y)是否有除零的風(fēng)險(xiǎn)的問題可以轉(zhuǎn)換為左下圖 x和y的取值范圍是否有可能落在y=x的紅線上。Polyspace基于程序控制結(jié)構(gòu)、函數(shù)調(diào)用關(guān)系、多任務(wù)分析等,通過復(fù)雜的數(shù)據(jù)流析取過程抽象到右下圖綠色多面空間中來判斷是否有可能落在y=x上。

關(guān)于Polyspace的靜態(tài)分析的詳細(xì)解析和應(yīng)用

Polyspace中的抽象解釋

經(jīng)Polyspace分析后的代碼結(jié)果以不同顏色表:

綠色代表為安全代碼,無需花過多精力審查;

紅色代碼問題代碼,需要立刻解決;

灰色代表不可達(dá)代碼,需要審查是設(shè)計(jì)錯(cuò)誤還是有意為之;

橙色代表有風(fēng)險(xiǎn)代碼,需要重點(diǎn)審查。

另外還可以設(shè)定編碼規(guī)范(如MISRA)和自定義代碼風(fēng)格,違反之處以紫色顯示;同時(shí)可以看到代碼變量隨控制流的數(shù)據(jù)范圍變化情況,快速查找和定位問題原因。

關(guān)于Polyspace的靜態(tài)分析的詳細(xì)解析和應(yīng)用

Polyspace的分析結(jié)果

不論是自動(dòng)代碼還是手寫代碼甚或混合代碼,Polyspace可以承擔(dān)類似“質(zhì)量門”的角色,幫助查找常見軟件缺陷、進(jìn)行代碼規(guī)范檢查、提供軟件度量信息,更進(jìn)一步通過證明不存在運(yùn)行時(shí)錯(cuò)誤交付安全代碼,大大提高代碼審查的效率并可提供安全認(rèn)證所需的相關(guān)證據(jù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70674
  • 靜態(tài)分析
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    4035
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

  • 待月人1

評論

相關(guān)推薦
熱點(diǎn)推薦

技術(shù)干貨 | ATX7006線性計(jì)算與AD/DA動(dòng)態(tài)分析解析

想知道如何在ATX7006上進(jìn)行高精度線性度計(jì)算?如何通過傅里葉變換分析AD/DA轉(zhuǎn)換器的動(dòng)態(tài)性能?本文詳細(xì)解析了線性計(jì)算的命令配置、結(jié)果獲取方法,以及動(dòng)態(tài)測試中的信噪比、諧波失真等關(guān)鍵參數(shù)的計(jì)算原理。
的頭像 發(fā)表于 06-30 10:13 ?490次閱讀
技術(shù)干貨 | ATX7006線性計(jì)算與AD/DA動(dòng)態(tài)<b class='flag-5'>分析</b><b class='flag-5'>解析</b>

電磁環(huán)境動(dòng)態(tài)監(jiān)測與分析平臺(tái)軟件全面解析

電磁環(huán)境動(dòng)態(tài)監(jiān)測與分析平臺(tái)軟件全面解析
的頭像 發(fā)表于 04-28 16:28 ?246次閱讀
電磁環(huán)境動(dòng)態(tài)監(jiān)測與<b class='flag-5'>分析</b>平臺(tái)軟件全面<b class='flag-5'>解析</b>

?VLM(視覺語言模型)?詳細(xì)解析

詳細(xì)解析: 1. 核心組成與工作原理 視覺編碼器 :提取圖像特征,常用CNN(如ResNet)或視覺Transformer(ViT)。 語言模型 :處理文本輸入/輸出,如GPT、BERT等,部分模型
的頭像 發(fā)表于 03-17 15:32 ?4033次閱讀
?VLM(視覺語言模型)?<b class='flag-5'>詳細(xì)</b><b class='flag-5'>解析</b>

機(jī)房托管費(fèi)詳細(xì)分析

機(jī)房托管費(fèi)是一個(gè)復(fù)雜而多變的話題,它受到多種因素的影響,以下是對機(jī)房托管費(fèi)用的詳細(xì)分析,主機(jī)推薦小編為您整理發(fā)布機(jī)房托管費(fèi)詳細(xì)分析。
的頭像 發(fā)表于 02-28 09:48 ?453次閱讀

奶泡棒專用芯片詳細(xì)解析

奶泡棒專用芯片詳細(xì)解析
的頭像 發(fā)表于 02-24 11:23 ?340次閱讀

集成電路設(shè)計(jì)中靜態(tài)時(shí)序分析介紹

本文介紹了集成電路設(shè)計(jì)中靜態(tài)時(shí)序分析(Static Timing Analysis,STA)的基本原理、概念和作用,并分析了其優(yōu)勢和局限性。 ? 靜態(tài)時(shí)序
的頭像 發(fā)表于 02-19 09:46 ?614次閱讀

ADC的靜態(tài)指標(biāo)有專用的分析工具嗎?

請問:ADC的靜態(tài)指標(biāo)有專用的分析工具嗎?該指標(biāo)很少在評估ADC指標(biāo)時(shí)使用,是否該指標(biāo)不重要,應(yīng)用中什么情況下需要評估該指標(biāo)? 另外ADC的SNR = 6.02*N + 1.76 +10*log10(fs/2BW) 當(dāng)被采樣信號為單音時(shí) 該BW為多少?
發(fā)表于 02-08 08:13

國外物理服務(wù)器詳細(xì)解析

國外物理服務(wù)器是指位于國外數(shù)據(jù)中心的物理設(shè)備,用于提供互聯(lián)網(wǎng)服務(wù)。以下是對國外物理服務(wù)器的詳細(xì)解析,主機(jī)推薦小編為您整理發(fā)布國外物理服務(wù)器詳細(xì)解析
的頭像 發(fā)表于 02-07 09:36 ?405次閱讀

硅谷云平臺(tái)詳細(xì)解析

 硅谷云平臺(tái)作為硅谷地區(qū)領(lǐng)先的云計(jì)算服務(wù)提供商,在數(shù)字化時(shí)代發(fā)揮著舉足輕重的作用。主機(jī)推薦小編為您整理發(fā)布硅谷云平臺(tái)的詳細(xì)解析。
的頭像 發(fā)表于 01-24 09:24 ?386次閱讀

分享關(guān)于編譯器的科普

? Clang和GCC的主要區(qū)別如下所示: Clang比GCC編譯用的時(shí)間更短,包括預(yù)處理、語法分析解析、語義分析、抽象語法樹生成的時(shí)間。 Clang比GCC的內(nèi)存占用更小。 Clang生成的中間
的頭像 發(fā)表于 12-09 09:49 ?549次閱讀

解析:住宅靜態(tài)IP的益處與應(yīng)用

住宅靜態(tài)IP是指專為家庭網(wǎng)絡(luò)環(huán)境設(shè)計(jì)的固定IP地址,通常由互聯(lián)網(wǎng)服務(wù)提供商(ISP)為家庭用戶提供。這種IP地址不會(huì)頻繁更改,為家庭網(wǎng)絡(luò)提供了一個(gè)穩(wěn)定的、可預(yù)測的標(biāo)識。
的頭像 發(fā)表于 10-18 07:41 ?513次閱讀

TPA3116靜態(tài)功耗靜態(tài)電流比較大是什么原因?qū)е碌模?/a>

關(guān)于TPA3116靜態(tài)功耗大,在TI的論壇里面發(fā)現(xiàn)幾乎所有的電感發(fā)熱都是說是因?yàn)檩敵鯨C電路導(dǎo)致 1,想問一下這個(gè)靜態(tài)功耗靜態(tài)電流比較大是什么原因?qū)е碌模?2,除了LC電路會(huì)導(dǎo)致,
發(fā)表于 10-12 08:35

自動(dòng)售貨機(jī)MDB協(xié)議中文解析(七)MDB-RS232控制紙幣器的詳細(xì)流程和解析

自動(dòng)售貨機(jī)MDB協(xié)議中文解析(七)MDB-RS232控制紙幣器的詳細(xì)流程和解析
的頭像 發(fā)表于 09-09 10:04 ?1373次閱讀

基于ANSYS的高速磨削電主軸動(dòng)靜態(tài)性能分析

以國產(chǎn)120MD60Y6型高速磨削電主軸為研究對象,使用有限元分析方法,基于ANSYS Workbench建立高速電主軸模型,先分析靜態(tài)特性,計(jì)算工作條件下電主軸前端所受徑向力和軸承徑向剛度;然后
的頭像 發(fā)表于 08-05 11:20 ?152次閱讀
基于ANSYS的高速磨削電主軸動(dòng)<b class='flag-5'>靜態(tài)</b>性能<b class='flag-5'>分析</b>

如何使用Polyspace Code Prover來統(tǒng)計(jì)堆棧

前一篇文章介紹了堆棧和內(nèi)存的一些背景知識。本次介紹如何使用 Polyspace Code Prover來統(tǒng)計(jì)堆棧,如何使用這些數(shù)據(jù)為軟件優(yōu)化服務(wù)。
的頭像 發(fā)表于 07-25 14:06 ?1265次閱讀
如何使用<b class='flag-5'>Polyspace</b> Code Prover來統(tǒng)計(jì)堆棧

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品