91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用正確的靜態(tài)分析實現應用

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Wayne Ariola,Adam T ? 2022-07-04 15:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一般來說,最佳實踐是平臺中立的——這就是為什么它們被稱為“最佳實踐”。盡管嵌入式開發(fā)特有的微妙之處,有已知的標準來確保質量,無論平臺如何。例如,避免內存泄漏應該是通用的。此外,靜態(tài)分析和軟件之間的關系不一定由應用程序定義:它由設備的用途定義。也就是說,運行靜態(tài)分析是嵌入式軟件開發(fā)特別重要的最佳實踐。

傳統(tǒng)上,嵌入式軟件在發(fā)布后訪問起來非常昂貴且痛苦。出于這個原因,大多數質量或驗證活動都集中在消除修補或重構嵌入式代碼的需要上。發(fā)布后修復錯誤不僅對品牌而且對利潤構成最大風險。在某些行業(yè),特別是在安全關鍵領域,與軟件缺陷相關的后果非常嚴重,以至于必須完美地執(zhí)行質量和驗證任務。嵌入到胰島素泵、武器控制系統(tǒng)、汽車制動系統(tǒng)等關鍵設備中的軟件需要使用全方位靜態(tài)分析功能的預防策略;否則后果可能包括代價高昂的訴訟、C 級辭職,甚至喪生。這與敏捷相反,持續(xù)開發(fā),Web 驅動的軟件應用程序,例如智能手機、電視等,對于這些應用程序而言,預防策略不太重要。為此,在軟件開發(fā)范圍的預防策略方面進行了以下討論,檢查了各種靜態(tài)分析實現:

積分時靜態(tài)分析

持續(xù)集成時間 (CI) 靜態(tài)分析

指標分析

編輯時靜態(tài)分析

運行時靜態(tài)分析

積分時靜態(tài)分析

在集成期間運行靜態(tài)分析以檢測容易實現的目標和嚴重錯誤是實施預防策略的良好起點。集成時靜態(tài)分析在不實際執(zhí)行代碼的情況下模擬可行的應用程序路徑,這對于無法進行運行時分析的系統(tǒng)非常有用。靜態(tài)分析可以跨多個函數和文件進行測試,并捕獲常見的內存問題,例如未初始化的內存、溢出、空指針等。

當組織開始在集成期間進行測試時,靜態(tài)分析在開發(fā)策略方面有幾個目的。首先,工程師可以查看測試結果并確定它們對于特定應用的重要性。靜態(tài)分析可能會發(fā)現可能對軟件安全性、可靠性或性能產生嚴重影響的潛在缺陷。另一方面,它可能會返回企業(yè)可能不關心的東西。例如,企業(yè)可能并不關心游戲控制臺中的缺陷會導致軟件在發(fā)生不太可能的操作序列時崩潰。用戶可以簡單地重新啟動并繼續(xù)享受他們的系統(tǒng)。然而,在其他情況下解決同類問題可能對于防止災難性后果至關重要。

靜態(tài)分析還可以幫助軟件工程師發(fā)現在風險評估階段很難想到的潛在缺陷。工程師可以對潛在缺陷進行分類,以改進未來的風險評估迭代。

持續(xù)集成時間 (CI) 靜態(tài)分析

在運行集成時靜態(tài)分析之后,軟件工程師應該對代碼中潛在的系統(tǒng)問題有更強烈的認識。下一步是運行 CI 靜態(tài)分析,以執(zhí)行規(guī)劃階段概述的編碼策略。這可以防止在集成時間分析期間發(fā)現的缺陷類型。

對于靜態(tài)分析中發(fā)現的每個問題,在代碼的其他地方至少還有 10 個完全相同的東西。靜態(tài)分析是同時解決所有同類違規(guī)行為的理想工具。這與在代碼中追逐每一條可能的路徑相反。找到系統(tǒng)性問題,創(chuàng)造一個bug無法生存的環(huán)境要好得多。

當我們談論靜態(tài)分析時,在很多情況下我們指的是反模式分析。積極的模式是應該在代碼中的東西。例如,要求工程師在聲明函數指針時使用typedef的策略是正模式靜態(tài)分析規(guī)則。這與例如在與標準 C 庫 交互時禁止使用字符串類中的data()成員函數的策略形成對比。

執(zhí)行兩種類型(正模式和反模式)的靜態(tài)分析很重要,但值得一提的是這種區(qū)別,因為如果組織花時間基于正模式構建編碼策略,這可以確保軟件工程師準確地構建代碼它應該符合業(yè)務目標或合規(guī)性要求。

指標分析

指標分析是一種靜態(tài)分析實現,它評估代碼特征并提供有關代碼的洞察力,可以幫助軟件工程師識別弱點(圖 1)。它是一種關鍵傳感器,可以突出顯示可能容易出現邏輯錯誤的應用程序區(qū)域。指標分析是一個基本的基線測量,應該觸發(fā)進一步的分析,例如代碼審查或其他一些補救活動。

圖 1: Parasoft 靜態(tài)分析指標報告

poYBAGLClVSAPqDYAAzok6Ytcn4348.png

指標分析最好盡早使用,因為它可能會影響軟件工程師編寫代碼的方式。避免嘗試被動地或在 QA 階段實施指標分析。指標分析的目標不僅僅是檢測潛在的缺陷;它以允許工程師遵循可持續(xù)編碼軌跡的方式檢測它們。對潛在缺陷熱點運行指標分析,糾正任何違規(guī)行為,并實施基于模式的分析規(guī)則以防止將來發(fā)生。

任何與潛在問題相關的指標都是公平的游戲。例如,一家醫(yī)療設備公司可能會使用度量分析來衡量圈復雜度,因為高分表明設備在正常操作期間有太多決策點需要處理。當有 10 個分支要削減時,知道復雜性分數超過了編碼策略中設置的閾值,而不是在 QA 階段發(fā)現,這將有助于保持項目按時和按預算進行。例如,組織可能想要測量公共變量,因為高數字可能與代碼中過多的依賴關系相關。每個組織都需要決定哪些指標可以與代碼中可能的缺陷相關聯。

編輯時靜態(tài)分析

靜態(tài)分析的最佳點是開發(fā)人員在編輯器中工作時。在編輯時運行靜態(tài)分析有幾個目的。首先,它將軟件工程師指出潛在的問題。其次,它通過確保系統(tǒng)地修復任何問題來實施風險評估策略。

但是什么時候應該實施靜態(tài)分析呢?我們已經討論了為什么太遲實施靜態(tài)分析是一個問題。但是,它也可能實施得太早,因為靜態(tài)分析必須有足夠的上下文才能提供有意義的信息。對字符、行甚至語句運行靜態(tài)分析會產生太多噪音而無用。實施積極的設計模式可確保新代碼在編寫時按預期構建。在編輯時運行靜態(tài)分析是在開發(fā)團隊中促進正確行為的一種有效方式,因為反饋是快速的并且是在正在編寫的代碼的上下文中。利用這種類型的分析可以提高代碼審查的效率,因為工程師應該能夠立即糾正基于策略的錯誤。

運行時靜態(tài)分析

一些靜態(tài)分析模式可以在運行時檢測缺陷。如果嵌入式目標可以容納開銷,則組織應執(zhí)行運行時靜態(tài)分析以完善其預防策略。運行時靜態(tài)分析在代碼實際運行時檢測錯誤,這使軟件工程師能夠使用真實數據測試真實路徑。

關于靜態(tài)分析和 QA 的最后說明

在理想的預防策略中,QA 運行靜態(tài)分析時發(fā)現的錯誤應該已經知道并確定為可接受的。這是因為軟件工程師應該已經針對設計模式進行了測試和調整以強制執(zhí)行編碼策略。此階段的違規(guī)意味著流程存在問題,例如不正確的靜態(tài)分析規(guī)則。在這些情況下,QA 需要將代碼發(fā)送回開發(fā)人員,以便他們可以找到缺陷的系統(tǒng)原因并實施規(guī)則以防止將來發(fā)生。從這個角度來看,靜態(tài)分析是一個比錯誤查找器更好的質量門。

作者:Wayne Ariola,Adam Trujillo,Arthur Hicken

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2577

    文章

    55151

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    變頻器的靜態(tài)調試步驟

    的各項參數設置和功能檢查。 針對昨天發(fā)布的“參數亂了”那篇文章,這里重點介紹第一種,即 靜態(tài)自學習 的操作步驟。這是確保變頻器電機模型準確、實現良好控制性能(尤其是矢量控制)的關鍵一步。 靜態(tài)自學習的核心步驟
    的頭像 發(fā)表于 03-11 07:36 ?318次閱讀
    變頻器的<b class='flag-5'>靜態(tài)</b>調試步驟

    鎖存器中的時間借用概念與靜態(tài)時序分析

    對于基于鎖存器的設計,靜態(tài)時序分析會應用一個稱為時間借用的概念。本篇博文解釋了時間借用的概念,若您的設計中包含鎖存器且時序報告中存在時間借用,即可適用此概念。
    的頭像 發(fā)表于 12-31 15:25 ?5530次閱讀
    鎖存器中的時間借用概念與<b class='flag-5'>靜態(tài)</b>時序<b class='flag-5'>分析</b>

    請問如何利用 Keil 分析 MCU 堆??臻g?

    如何利用 Keil 分析 MCU 堆??臻g?
    發(fā)表于 11-26 07:38

    什么是CVE?如何通過SAST/靜態(tài)分析工具Perforce QAC 和 Klocwork應對CVE?

    本文將為您詳解什么是CVE、CVE標識符的作用,厘清CVE與CWE、CVSS的區(qū)別,介紹CVE清單內容,并說明如何借助合適的靜態(tài)分析工具(如Perforce QAC/Klocwork),在軟件開發(fā)早期發(fā)現并修復漏洞。
    的頭像 發(fā)表于 10-31 14:24 ?564次閱讀
    什么是CVE?如何通過SAST/<b class='flag-5'>靜態(tài)</b><b class='flag-5'>分析</b>工具Perforce QAC 和 Klocwork應對CVE?

    如何利用Trace機制實現LLCP預覽功能

    在藍牙協議棧開發(fā)過程中,有時需要預先知道 LLCP。本文將介紹如何利用 Trace 機制實現 LLCP 預覽功能。
    的頭像 發(fā)表于 10-09 17:55 ?1977次閱讀

    知識分享 | 使用MXAM進行AUTOSAR模型的靜態(tài)分析:Embedded Coder與TargetLink模型

    知識分享在知識分享欄目中,我們會定期與讀者分享來自MES模賽思的基于模型的軟件開發(fā)相關Know-How干貨,關注公眾號,隨時掌握基于模型的軟件設計的技術知識。使用MXAM進行AUTOSAR模型的靜態(tài)
    的頭像 發(fā)表于 08-27 10:04 ?755次閱讀
    知識分享 | 使用MXAM進行AUTOSAR模型的<b class='flag-5'>靜態(tài)</b><b class='flag-5'>分析</b>:Embedded Coder與TargetLink模型

    CoolSiC? MOSFET G2如何正確選型 硬開關與軟開關場景解析

    在功率電子領域,英飛凌的CoolSiCMOSFETG2以其卓越性能備受關注。本文將重點分析如何在硬開關和軟開關兩種應用場景下,正確選型CoolSiCMOSFETG2,以實現最佳系統(tǒng)性能。
    的頭像 發(fā)表于 08-26 09:04 ?5278次閱讀
    CoolSiC? MOSFET G2如何<b class='flag-5'>正確</b>選型 硬開關與軟開關場景解析

    網段隔離器實現靜態(tài)NAT網絡通信

    在許多網絡場景中,不同網段之間需要進行通信,但又要保證各網段的相對獨立性和安全性。如果缺少網絡規(guī)劃與網段隔離,會使網絡面臨巨大的安全風險,各類網絡攻擊更容易傳播。而靜態(tài)NAT能夠在實現網段隔離的前提下,建立起不同網段間的通信橋梁,十分適用于需要固定IP地址進行通信的系統(tǒng)中
    的頭像 發(fā)表于 08-16 13:44 ?987次閱讀

    汽車軟件團隊必看:基于靜態(tài)代碼分析工具Perforce QAC的ISO 26262合規(guī)實踐

    ISO 26262合規(guī)指南,從ASIL分級到工具落地,手把手教你用靜態(tài)代碼分析(Perforce QAC)實現高效合規(guī)。
    的頭像 發(fā)表于 08-07 17:33 ?1195次閱讀
    汽車軟件團隊必看:基于<b class='flag-5'>靜態(tài)</b>代碼<b class='flag-5'>分析</b>工具Perforce QAC的ISO 26262合規(guī)實踐

    如何正確選購功率半導體器件靜態(tài)參數測試機?

    主要的功率半導體器件特性分為靜態(tài)特性、動態(tài)特性、開關特性。這些測試中最基本的測試就是靜態(tài)參數測試。靜態(tài)參數主要是指本身固有的,與其工作條件無關的相關參數。主要包括:柵極開啟電壓、柵極擊穿電壓、源極漏
    的頭像 發(fā)表于 08-05 16:06 ?839次閱讀
    如何<b class='flag-5'>正確</b>選購功率半導體器件<b class='flag-5'>靜態(tài)</b>參數測試機?

    動態(tài)BGP與靜態(tài)BGP的區(qū)別?

    的 IP,只要遠端發(fā)起 BGP 握手,且來自 AS 65002,即自動建立對等關系。四、實戰(zhàn)應用場景分析場景一:傳統(tǒng)運營商邊界路由器 使用靜態(tài) BGP BGP 對等關系固定,變化極少 需要手動管理
    發(fā)表于 06-24 06:57

    SiC MOSFET并聯運行實現靜態(tài)均流的基本要求和注意事項

    通過并聯SiC MOSFET功率器件,可以獲得更高輸出電流,滿足更大功率系統(tǒng)的要求。本章節(jié)主要介紹了SiC MOSFET并聯運行實現靜態(tài)均流的基本要求和注意事項。
    的頭像 發(fā)表于 05-23 10:52 ?1884次閱讀
    SiC MOSFET并聯運行<b class='flag-5'>實現</b><b class='flag-5'>靜態(tài)</b>均流的基本要求和注意事項

    如何利用EPR分析USB PD?

    /ref_xdps2222_240w1/)。 我想知道是否有適用于 CY4500 或任何其他分析儀的新固件可以用于進行一些測試。 或者,您建議我們如何利用 EPR 分析 USB PD?
    發(fā)表于 05-21 06:40

    利用邊緣計算和工業(yè)計算機實現智能視頻分析

    IVA的好處、實際部署應用程序以及工業(yè)計算機如何實現這些解決方案。一、什么是智能視頻分析(IVA)?智能視頻分析(IVA)集成了復雜的計算機視覺,通常與卷積神經網
    的頭像 發(fā)表于 05-16 14:37 ?869次閱讀
    <b class='flag-5'>利用</b>邊緣計算和工業(yè)計算機<b class='flag-5'>實現</b>智能視頻<b class='flag-5'>分析</b>

    如何利用高光譜相機實現精確的光譜分析?

    空間信息基礎上增加第三維的光譜信息。 這種技術基于物質對不同波長光的吸收、反射特性具有"指紋"效應的原理。每種物質都有其獨特的光譜特征,通過分析這些特征,我們能夠準確識別物質的成分和狀態(tài)。 一、實現精確光譜分析的關鍵
    的頭像 發(fā)表于 03-28 17:05 ?1123次閱讀
    如何<b class='flag-5'>利用</b>高光譜相機<b class='flag-5'>實現</b>精確的光譜<b class='flag-5'>分析</b>?