那曲檬骨新材料有限公司

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

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

3天內不再提示

利用正確的靜態分析實現應用

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Arthur Hicken,Wayne ? 2022-06-19 07:23 ? 次閱讀

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

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

積分時靜態分析

持續集成時間 (CI) 靜態分析

指標分析

編輯時靜態分析

運行時靜態分析

積分時靜態分析

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

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

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

持續集成時間 (CI) 靜態分析

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

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

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

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

指標分析

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

圖 1: Parasoft 靜態分析指標報告

pYYBAGKsSD-AA41VAAzutAkeNas576.png

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

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

編輯時靜態分析

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

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

運行時靜態分析

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

關于靜態分析和 QA 的最后說明

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

作者:Arthur Hicken,Wayne Ariola,Adam Trujillo

審核編輯:郭婷

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

    關注

    2553

    文章

    51392

    瀏覽量

    756597
  • 智能手機
    +關注

    關注

    66

    文章

    18550

    瀏覽量

    181054
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69052
收藏 人收藏

    評論

    相關推薦

    如何利用Google Play實現出海應用增長

    出海應用變現。本文我們將介紹市場趨勢和如何利用 Google Play 實現增長。 ? ? ? "訂閱疲勞" 破迷思, 澄清事實抓機遇 "吸引用戶開始和保持訂閱十分重要,但隨著訂閱業務的
    的頭像 發表于 01-22 11:52 ?156次閱讀
    如何<b class='flag-5'>利用</b>Google Play<b class='flag-5'>實現</b>出海應用增長

    利用EVM對ADS1299進行內部產生方波的測試,如何才能從邏輯分析儀上獲得正確的輸出?

    利用EVM對ADS1299進行內部產生方波的測試,同時在ADS1299上接著邏輯分析儀,可是從邏輯分析儀獲得的數據跟EVM獲得的數據不一樣,請問發生什么問題?我該如何才能從邏輯分析
    發表于 12-05 07:17

    汽車異構硬件平臺開發如何進行靜態代碼分析

    先進的靜態代碼分析工具,其新版本中引入的多CCT功能為開發人員提供了強大的支持,該功能不僅簡化了多編譯器環境下的代碼分析過程,還可以極大增強代碼的質量和安全性。
    的頭像 發表于 10-09 16:15 ?587次閱讀
    汽車異構硬件平臺開發如何進行<b class='flag-5'>靜態</b>代碼<b class='flag-5'>分析</b>

    Perforce靜態分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改進和安全增強

    ?和Klocwork的最新版本對靜態分析工具進行了重大改進,通過盡早修復錯誤、降低開發成本和加快發布速度,使開發團隊實現左移。本文中,我們將概述2024.2版本的新特性和新功能。CI/CD和左移以
    的頭像 發表于 10-08 16:22 ?340次閱讀
    Perforce<b class='flag-5'>靜態</b><b class='flag-5'>分析</b>工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork<b class='flag-5'>分析</b>引擎改進和安全增強

    利用靜態電流和動態電壓調節技術延長電池壽命

    電子發燒友網站提供《利用靜態電流和動態電壓調節技術延長電池壽命.pdf》資料免費下載
    發表于 09-04 10:14 ?0次下載
    <b class='flag-5'>利用</b>低<b class='flag-5'>靜態</b>電流和動態電壓調節技術延長電池壽命

    利用靜態電流和動態電壓調節技術延長電池壽命

    電子發燒友網站提供《利用靜態電流和動態電壓調節技術延長電池壽命.pdf》資料免費下載
    發表于 08-31 09:51 ?0次下載
    <b class='flag-5'>利用</b>低<b class='flag-5'>靜態</b>電流和動態電壓調節技術延長電池壽命

    通過LM74912-Q1睡眠模式實現超低靜態電流和為常開負載供電

    電子發燒友網站提供《通過LM74912-Q1睡眠模式實現超低靜態電流和為常開負載供電.pdf》資料免費下載
    發表于 08-28 09:35 ?1次下載
    通過LM74912-Q1睡眠模式<b class='flag-5'>實現</b>超低<b class='flag-5'>靜態</b>電流和為常開負載供電

    基于ANSYS的高速磨削電主軸動靜態性能分析

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

    恒訊科技分析:香港站群服務器為什么要做偽靜態處理呢?

    提高搜索引擎優化(SEO)效果:偽靜態處理可以使得動態網頁URL看起來像是靜態網頁的URL,這有助于搜索引擎更好地索引網站內容。搜索引擎通常偏好靜態網頁,因為它們認為靜態網頁更穩定、內
    的頭像 發表于 07-31 12:49 ?312次閱讀

    IAR通過多架構認證的靜態分析工具加速代碼質量自動化

    公司推出經TüV SüD認證的C-STAT靜態分析工具,適用于最新發布的IAR Embedded Workbench for RISC-V V3.30.2功能安全版。
    的頭像 發表于 06-19 15:49 ?425次閱讀

    FPGA 高級設計:時序分析和收斂

    的綜合、映射、布局和布線,以減小邏輯和布線延時,從而提高 工作頻率。 2、獲得正確的時序分析報告 幾乎所有的 FPGA 設計平臺都包含靜態時序分析工具,
    發表于 06-17 17:07

    CAN分析儀的驅動程序如何正確安裝

    新手在使用USB轉CAN時,可能會遇到一些常見問題。以下是一些常見的問題及其解決方法的清晰歸納: 1.驅動安裝問題 問題描述:CAN分析儀的驅動程序沒有正確安裝,導致設備與計算機無法正常通信
    的頭像 發表于 06-03 18:07 ?1382次閱讀

    利用NVIDIA的nvJPEG2000庫分析DICOM醫學影像的解碼功能

    本文將深入分析 DICOM 醫學影像的解碼功能。AWS HealthImaging 利用 NVIDIA 的 nvJPEG2000 庫來實現此功能。
    的頭像 發表于 05-28 14:27 ?909次閱讀
    <b class='flag-5'>利用</b>NVIDIA的nvJPEG2000庫<b class='flag-5'>分析</b>DICOM醫學影像的解碼功能

    如何設置靜態IP代理

    靜態IP
    jf_60146132
    發布于 :2024年04月29日 07:46:31

    計算機為什么利用反碼來實現減法?

    計算機為什么利用反碼來實現減法? 計算機在實現減法運算時利用反碼的原因可以從歷史背景、計算機設計優勢和運算規則等方面來分析。 1. 歷史背景
    的頭像 發表于 02-19 15:10 ?958次閱讀
    喜力百家乐官网的玩法技巧和规则| G3百家乐官网的玩法技巧和规则| 百家乐桌布小| 元游棋牌下载| 女神百家乐官网娱乐城| 百家乐娱乐网网77scs| 东乡| 黄金城百家乐官网安卓版| 同乐城百家乐娱乐城| 百家乐官网真人游戏网| 正镶白旗| 大发百家乐现金网| TT娱乐城开户,| 百家乐官网投注网出租| 大发888yulecheng| 赌博百家乐官网下载| 网上百家乐真坑人| 百家乐官网中P代表| 金盈会百家乐现金网| 澳盈88开户,| 百家乐真人真钱| 在线真人娱乐| 百家乐微笑心法搜索| 在线博彩| 澳门百家乐赢钱秘诀| 大发棋牌游戏| 澳门百家乐玩大小| 峨眉山市| 百家乐高手心得| 百家乐官网技巧和规律| 百家乐太阳城| 网上百家乐官网哪里好| 百家乐大天堂| 真人百家乐官网攻略| 威尼斯人娱乐场是真的吗| 德州扑克概率计算| 百家乐稳定打法| 巨野县| 郑州百家乐的玩法技巧和规则| 赌场百家乐官网网站| 大发888游戏平台 新葡京|