產品及服務 > Polyspace Bug Finder, Polyspace程式碼查錯器
Polyspace Bug Finder, Polyspace 程式碼查錯器

使用覆蓋完善的程式碼分析和驗證工具進行程式品質分析,及早發現設計錯誤及嵌入式軟體執行階段錯誤

Introduction
Polyspace程式碼查錯器(Polyspace Bug Finder),可標識出原始程式碼中執行階段錯誤(run-time)、資料溢出(data flow)問題以及其他在C及C++嵌入式軟體中的錯誤及缺陷。透過使用靜態程式碼分析(Static code analysis)方式,Polyspace程式碼查錯器能分析軟體控制、資料溢出以及跨階段行為的錯誤檢測,協助在開發流程的早期及早分散及修正錯誤。Polyspace程式碼查錯器檢測的方法是遵照程式碼編碼的標準,如MISRA-C, MISRA-C++, JSF++,以及其他習以常使用的程式碼規則來進行檢測,隨後產生結果報表,報表中會標識出所發現的錯誤(bugs)、違反編碼規則(code-rule violations)以及程式碼品質陣列如循環複雜度(cyclomatic complexity)等。Polyspace程式碼查錯器可以搭配Eclipse™ IDE使用,並與其他現有環境系統相整合。

就自動產生程式碼來說,Polyspace的結果可被追溯回到Simulink的模型、dSPACE® TargetLink® blocks, and IBM® Rational® Rhapsody® 圖表。

Polyspace程式碼查錯器支援產業標準,包括IEC安全驗證套裝組( IEC Certification Kit (for IEC 61508 and ISO 26262)) 和DO品質驗證套裝組(DO Qualification Kit (for DO-178)),現在也支援Ada語言以及 MISRA C:2012。

本工具箱使用需搭配MATLAB。

Key Features

  • 可偵測標識出程式碼中的執行階段錯誤(run-time)、資料溢出(data flow)問題以及其他在C及C++嵌入式軟體中的錯誤及缺陷
  • 可對大量的程式碼基礎進行快速分析
  • 完全遵照程式碼編碼標準來進行檢測,如MISRA-C: 2004, MISRA-C++: 2008, JSF++,以及其他慣常用的程式碼規則等。
  • 程式碼循環複雜度及其他程式碼陣列(metrics)
  • 可與Eclipse等開發環境整合
  • 可回溯對Simulink模型進行程式碼驗證
  • 能取得Polyspace程式碼驗證器(Polyspace Code Prover)
  • 提供低假陽(low false-positive )結果的偵錯功能
  • 支援 MISRA C:2012程式碼規則驗證
  • R2015b新增用於檢測程式碼漏洞和動態顯示結果的安全檢查功能。
  • R2017a 可針對MISRA C:2012 Amendment 1和新的加密常式執行程式碼進行檢驗。

更多相關工具
Polyspace Code Prover™ (Polyspace程式碼驗證器)
DO Qualification Kit (DO品質驗證套裝組:針對DO-178)
IEC Certification Kit (IEC安全驗證套裝組:針對 ISO 26262 及IEC 61508)

實際使用案例

Solar Impulse太陽能飛機開發
Solar Impulse公司的工程師使用Polyspace®分析工具來確保太陽能飛機軟體符合DO-178B標準,幫助研究人員更早更快地找到及消除問題,節省了1到2年的開發時間,實現了公司目標。Solar Impulse目前是世界上唯一具有永久耐力的太陽能飛機,能晝夜飛行而不用到任何一滴油料。2015年時他們面臨挑戰,嘗試第一次飛行全球,這是該團隊第一次向世人展示一種全新的開拓、創新和清潔技術如何能改變全世界。

Polyspace產品幫助Nissan提高軟體的可靠性
視品質為一切優先的Nissan汽車對其車輛依嚴格的品質標準進行把關,這些準則的適用範疇亦延伸到嵌入至車輛的軟體。為了確保使用在所有電力控制單元(electronic control units, ECUs)的品質程序的有效性,軟體品質團隊與所有供應商在計劃的初期就開始軟體檢驗流程的檢查。透過產業界獨一無二的MathWorks工具,Nissan和供應商的程式碼經過很詳盡地分析,可從中發現程式碼錯誤,有效提升軟體可靠性。

NASA Ames研究中心開發飛行軟體來探測月球大氣粉塵環境
與模型化基礎設計相較,手動為飛行軟體編程必須花費更多時間,且難以整合。NASA Ames研究中心的管理者和硬體子系統工程師了解Simulink模型,每個人都知道軟體內的運作,因而可以更容易地達到一致性。而透過Polyspace工具,幫助在正式的檢驗過程中有效的對程式碼進行評估、找出程式碼錯誤。