国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

利用醫療設備軟件的靜態代碼分析

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:嵌入式計算設計 ? 2022-06-19 10:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

醫療設備使用的軟件代碼比以往任何時候都多。然而,雖然軟件為醫療設備提供了更多的功能和靈活性,但它也帶來了額外的復雜性,從而增加了故障風險。今天大約 20% 的醫療設備召回是由軟件缺陷引起的,而且這個數字還在上升。

聯邦藥物管理局 (FDA) 監督在美國銷售的醫療器械的質量,希望發布醫療器械的公司必須獲得 FDA 510(k) 許可。在調查上市后失敗的同時,FDA 更加注重預防,并建議將靜態代碼分析作為方法的一部分。

復雜缺陷檢測的價值

現代靜態代碼分析工具使用復雜的技術來分析源代碼以檢測潛在的軟件缺陷。工具嘗試分析代碼中的所有邏輯路徑,提供比傳統測試形式更多的路徑和代碼覆蓋率。靜態分析工具不需要任何測試用例,甚至可以對代碼片段進行操作,發現潛在的程序崩潰、緩沖區溢出、內存泄漏、數據損壞等。靜態分析通常運行迅速,并且可以在相對較短的時間內報告一系列潛在的錯誤(參見圖 1)。

圖 1:靜態分析可以在軟件開發生命周期的早期發現潛在問題。

pYYBAGKuhROAQr7PAAHx4iOBxwU673.png

由于各種原因,靜態分析工具確實會產生一些錯誤的結果,通常稱為誤報和誤報。當靜態分析工具認為有錯誤而沒有錯誤時,就會發生誤報。誤報是應該報告錯誤但沒有報告。

大多數現代靜態分析工具必須在可接受的精度水平和可接受的運行時間之間找到盡可能多的好結果之間進行微妙的權衡。換句話說,在大量誤報中發現每個問題的嘈雜工具的價值可能有限,就像只發現一小部分問題的高度準確的工具一樣(參見圖 2)。

圖 2:靜態分析工具不會發現所有錯誤(誤報),并且會報告一些并非真正的錯誤(誤報)。使遺漏的錯誤和錯誤報告最小化的是良好的分析算法和適當的分析調整。

pYYBAGKuhSSAKxNGAAD0qKhD0fE292.png

現代靜態分析工具已經改進了分析技術,可以以足夠的準確度生成有用的結果。大多數組織認識到靜態分析工具雖然不完善,但在大多數軟件開發過程中都提供了重要的價值。

充分利用靜態分析工具

現代靜態分析工具對大多數醫療設備制造商來說都是相對較新的。對于許多首次在其流程中實施靜態分析的組織而言,了解最佳實踐有助于在最短的時間內以最少的返工量充分利用工具。

調音

靜態分析工具提供了適用于所有類型代碼庫的通用設置,雖然它們可以立即發現好的錯誤,但只需針對代碼調整工具就可以大大改善結果(參見圖 3)。這有助于找到更多相關的錯誤并減少通過誤報進行的搜索,這會浪費時間并導致開發人員疲勞。

圖 3:幾乎每個靜態分析部署都應該從一個可靠的調優項目開始。調整會帶來更多更好的錯誤和更少的誤報。

poYBAGKuhSyAFDf1AAGMPQG7dRI791.png

許多靜態分析工具都有自己的源代碼解析器,它們可能無法理解或無法訪問所有代碼。將系統配置為分析所有代碼或調整系統以識別分析時無法訪問的接口——例如單獨驗證的第三方庫——確保結果是最佳和可重復的。實現 100% 的代碼覆蓋率對于堵住可能增加風險的漏洞非常重要。

調優有助于發現真正的問題。例如,告訴靜態分析工具內存分配機制是如何工作的,或者程序何時退出,這樣工具就不會繼續沿著特定路徑跟蹤問題,這有助于發現新問題并剔除錯誤問題。這可能是一個繁瑣的過程,需要特定的專業知識,但從長遠來看會有所回報。

調優通常是一個持續的過程,應定期審查,以確保一致地使用配置并跟上代碼和環境的變化。如果不進行持續調整,開發人員可能會錯過一些重要的錯誤,并且團隊將浪費時間檢查誤報。

配置檢查器

許多靜態分析工具附帶數百個檢查,涵蓋從并發性到安全性到 C 和 C++ 陷阱的一系列問題。許多人不一定適用于給定的應用程序。例如,為什么在分析 C 代碼時打開 C++ 特定檢查?確定正確的檢查器集需要一些試驗和錯誤以及專業知識,以了解什么是最劃算的。需要考慮的一些領域是:哪些類型的檢查器會導致真正的問題,哪些檢查器容易產生噪音,哪些檢查器可以配置為有用。一旦一個好的集合最終確定,將其鎖定,以便記錄并始終如一地運行。

在一個說明檢查器價值的真實示例中,客戶希望確保他們的靜態分析系統始終如一地運行,并要求在系統出現差異時立即收到警報。開發人員創建了一個測試套件,其中包含每個檢查器的測試用例。每當他們更改系統時,他們都會運行測試套件以確保每個檢查器確實按預期運行。如果結果失敗,他們知道他們有需要解決的配置問題。如果測試通過,開發人員會將結果放入他們的設計歷史文件中,以證明系統按照他們記錄的方式工作。該測試套件不僅為客戶提供了責任和保證,而且還降低了他們的維護和管理成本。

過程

一旦實現了全面覆蓋、調整了系統并定義了分析的廣度,開發人員就可以開始更有效地使用靜態分析。對于醫療設備,一個典型的目標是檢查報告的每一個問題。每個問題都可以通過多種不同的方式進行分類:

一個必須解決的問題。它將有一個適當的優先級來描述它的重要性以及在軟件開發過程中必須如何解決它。

正確標記的問題,但不太可能表現為現實世界的錯誤,通常是因為該工具做出了不正確的環境假設。這些類型的分類標志著潛在的調整機會。

被錯誤地標記為錯誤的問題,無論是誤報還是分析工具中的徹底錯誤。這些問題也預示著調整機會。

這些案例中的每一個都必須仔細審查。尤其應檢查誤報的正確性。每個問題都需要自由文檔,并且需要一個強大的數據保留政策來實現全面問責。如果在流程后期發現重大錯誤,這些分類缺陷報告可能會在審計過程中或在回顧中重新審查。組織通常會回到靜態分析缺陷以查看主要錯誤是如何通過該過程的。它可能標志著一個中斷的過程或一個調整分析以找到更好的錯誤的機會。

使用模式

靜態分析通常在開發人員沙箱構建中和/或通過中央構建運行(參見圖 4)。至少,在發布之前分析和評估結果是有意義的。但是,軟件開發組織不應該等到最后一刻才解決可能存在的大量錯誤,特別是當這些錯誤本可以作為規范流程的一部分更早地解決時。否則,團隊可能會錯過最后期限并在最壞的時間更改代碼。

圖 4:靜態分析可以根據業務需求、環境和使用的工具以多種不同方式部署。

pYYBAGKuhTWANb-jAAI0dlyrCkE521.png

組織通常將靜態分析自動化作為夜間構建或持續集成構建的一部分。通過這種方式,可以經常審查結果并在結果出現時加以處理。其他人則通過使開發人員能夠在沙盒環境中分析他們正在處理的代碼來更早地執行錯誤發現過程。開發人員可以立即獲得有關其代碼更改質量的反饋,然后在簽入前修復和驗證缺陷。循環時間越快,代碼庫中的代碼就越干凈。

無論在哪里運行,技術環境都需要保持一致,以確保結果相同。中央和開發人員構建需要保持一致。對分析設置的輕微更改可能會導致報告更多結果,并且組織不需要審查更多可能主要是誤報的問題的額外負擔。為開發人員創建一個高度自動化的系統將有助于確保一致性。

許多醫療設備公司不僅將源代碼檢查到其存儲庫中,還檢查其實際環境。這樣,可追溯性是可用的。靜態分析可執行文件和所有相關配置、狀態和其他相關項目也應定期檢查,以確保一致性和問責制。

處理積壓

大多數組織在開發大量代碼后開始使用靜態分析。通常,代碼越多,報告的錯誤就越多。因此,在推出靜態分析時,管理層必須預先分配時間來處理最初積壓的錯誤。

最好在開發周期中盡早進行靜態分析,以盡量減少積壓,然后創建一個流程來處理積壓,與由于日常代碼更改導致的日常流入錯誤流分開處理。審查缺陷需要時間,應該在開發人員之間適當分配,或者外包給一個單獨的團隊來挑選需要工作的缺陷。

文化

所有開發團隊在技術技能水平以及團隊中每個人如何定義質量方面都存在差異。在培訓和指導課程中,最常見的論點是:

“是的,這絕對是一個錯誤,但代碼一直在工作,所以我們不想更改它。”

“我們不應該讓這樣的代碼出現在我們的產品中。”

“這種情況在現實生活中永遠不會發生。”

“如果我們將來將產品移植到另一個平臺,這將成為一個錯誤。”

“如果你在這上面多花幾分鐘,你就會發現這顯然是一個錯誤。”

靜態分析將提供各種類型的錯誤,從必須解決的關鍵問題到警告。一些組織希望投機取巧,只為可證明的錯誤更改代碼。其他人則主動清理代碼并提高質量,甚至“修復”警告。團隊應該在處理靜態分析結果的方式上保持一致。審查結果、培訓/指導和頻繁的溝通是成功的關鍵。

如果使用得當,靜態分析已被證明在提高安全關鍵代碼的軟件質量方面非常有效。盡管不嚴格要求批準,但 FDA 承認其有效性。通過適當的規劃、專業知識和現實的投資,靜態分析應該會產生可觀的投資回報,并有助于向市場提供安全的代碼。

審核編輯:郭婷

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

    關注

    8

    文章

    2000

    瀏覽量

    61591
  • C++
    C++
    +關注

    關注

    22

    文章

    2123

    瀏覽量

    77110
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    分析嵌入式軟件代碼的漏洞-代碼注入

    隨著互聯網的發展,嵌入式設備正分布在一個充滿可以被攻擊者利用的源代碼級安全漏洞的環境中。 因此,嵌入式軟件開發人員應該了解不同類型的安全漏洞——特別是
    發表于 12-22 12:53

    醫療設備整改實踐:EMC案例分析與啟示

    一挑戰與危機【EMC危機曝光】:隨著科技的進步和醫療需求的不斷發展,醫療產品在提升診療水平、保障患者健康方面起著至關重要的作用。而醫用負壓機是一種用于醫療場景的設備,其主要功能是通過產
    的頭像 發表于 12-09 11:35 ?360次閱讀
    <b class='flag-5'>醫療</b><b class='flag-5'>設備</b>整改實踐:EMC案例<b class='flag-5'>分析</b>與啟示

    醫療設備器械全生命周期的檢測認證一站式解決方案

    醫療設備
    廣電計量
    發布于 :2025年11月28日 15:23:41

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

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

    利用軟件的方法解決EMC問題

    有時候解決EMC問題利用軟件的方法反而是更高效快速的。二整改案例今天分析一個用軟件的方法解決EMC問題的實際案例,通過該案例可以了解到軟件
    的頭像 發表于 10-28 11:35 ?296次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>軟件</b>的方法解決EMC問題

    如何在Zephyr中進行靜態代碼分析

    在嵌入式軟件開發中,“能編譯通過”并不等于“可以放心交付”。安全性、可靠性和合規性是產品能否順利量產的關鍵。進入量產的Bug會浪費寶貴的工程時間,也會削弱用戶信任;安全漏洞可能暴露設備,帶來嚴重后果;在受監管市場中,若未滿足MISRA或CERT檢查要求,甚至會直接導致產品
    的頭像 發表于 10-17 10:28 ?871次閱讀

    醫療設備維修進修探索與成長并行的旅程

    醫療設備
    ch18091592326
    發布于 :2025年09月18日 14:15:56

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

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

    第三屆大會回顧第7期 | 面向OpenHarmony大規模代碼的路徑敏感的稀疏值流分析

    靜態分析(Static Analysis)是軟件開發中不可或缺的一部分,它可以幫助開發人員提高代碼質量、減少缺陷和安全風險。
    的頭像 發表于 08-18 11:31 ?1009次閱讀
    第三屆大會回顧第7期 | 面向OpenHarmony大規模<b class='flag-5'>代碼</b>的路徑敏感的稀疏值流<b class='flag-5'>分析</b>

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

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

    讓老舊醫療設備“聽懂”新語言:CAN轉EtherCAT的醫療行業應用

    醫療影像設備的智能化升級中,通信協議的兼容性常成為工程師的“痛點”。例如,某醫院的移動式X射線機采用CAN協議控制機械臂,而主控系統基于EtherCAT架構。兩者協議差異導致數據延遲高達5ms
    發表于 07-18 15:27

    一技在手,醫療無憂!零基礎轉行高薪醫療維修工程師

    黃金賽道!” 6月9日彩虹將針對零基礎人員開展維修技能培訓,培訓包含彩超、內鏡、CT、DR設備,從基礎原理-設備構造-整體拆裝-常見故障判斷分析-解決故障等一系列課程下來也就正式踏入醫療
    發表于 05-15 10:22

    與樹莓派的“黃金”關系,是如何幫助這家醫療設備公司擴大規模?

    穩定的供應和與樹莓派的“黃金”關系,幫助這家醫療設備公司擴大規模。埃及醫療設備制造商BioBusiness需要將物聯網功能成功集成到其患者監測設備
    的頭像 發表于 03-25 09:48 ?713次閱讀
    與樹莓派的“黃金”關系,是如何幫助這家<b class='flag-5'>醫療</b><b class='flag-5'>設備</b>公司擴大規模?

    【JVM開發者必看】IntelliJ IDEA代碼分析實踐指南:實時糾錯、冗余檢測、自動修復等

    【IntelliJ IDEA中的代碼分析技巧】靜態代碼分析是指在不實際運行代碼的情況下掃描
    的頭像 發表于 03-13 10:34 ?1059次閱讀
    【JVM開發者必看】IntelliJ IDEA<b class='flag-5'>代碼</b><b class='flag-5'>分析</b>實踐指南:實時糾錯、冗余檢測、自動修復等