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

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

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

3天內不再提示

如何優化安全和業務關鍵型嵌入式軟件開發

李麗華 ? 來源:hrtuoyu ? 作者:hrtuoyu ? 2022-07-30 14:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開發安全或業務關鍵型軟件只需要更多的知識和努力,以確保以不犧牲質量的方式使用工具和技術。

任何優化軟件開發過程的嘗試都將不可避免地遇到質量、資源和時間之間的古老權衡。這個三重約束對于項目經理來說是眾所周知的,格言是只有三分之二才有可能成功。

當然,沒有一家公司真的想在質量上妥協,但對于安全關鍵型或業務關鍵型軟件而言,風險更高,因為在質量上妥協可能會導致嚴重的財務或危及生命的后果,因此主要關注點必須放在質量上對于此類項目。那么,當項目的性質要求軟件質量必須是最重要的時候,您如何優化嵌入式軟件開發呢?

培養質量文化
質量文化將減少實現優質產品的開銷,并意味著在生產高質量軟件時需要更少的有意識的思考和努力。

幸運的是,通過遵循一些簡單的原則,發展質量文化相對容易。質量文化傾向于促進透明度和所有權。他們還將測試和質量控制視為開發過程的重要組成部分,而不是最后的開發步驟。

有效的質量文化的基石是良好的溝通。技術包括從每日例會到報告錯誤時提高清晰度的所有內容,以便在修復錯誤時不太可能犯錯誤。跨職能團隊和團隊之間的密切溝通也有助于促進質量文化,并確保所有利益相關者對質量和安全目標有很好的理解。

優化您的軟件開發方法
現代軟件開發方法,如敏捷和 DevOps,被廣泛認為比傳統的瀑布方法產生更快的結果。所有主要的軟件安全標準(例如,IEC 61508、ISO 26262 和 DO-178C)都將軟件開發定義為一個線性過程,v 模型在左側顯示需求定義,在右側顯示測試,如下圖所示:

這使得在開發安全關鍵軟件時很難擺脫線性瀑布方法。現代敏捷開發實踐側重于頻繁發布,這可能會給安全關鍵型軟件的開發帶來問題,因為每個發布都需要經過正式的驗證和/或認證流程。同樣,DevOps 原則(例如持續部署)在涉及硬件時會變得更加復雜。

但是,仍然可以利用許多 DevOps 和敏捷原則來創建一種簡化的、更具迭代性的方法來開發安全關鍵型和業務關鍵型嵌入式項目。

Shift-left
在項目開發生命周期中較早(左)移動工作量通常會導致整體工作量減少。花更多時間確保軟件需求和設計正確可減少生產問題并避免將時間花在浪費性的開發活動上。左移的測試方法的原理是,更早地發現錯誤意味著可以更快、更容易、更便宜地修復它們。這主要是因為,如果測試被延遲,依賴項變得難以解除。

Shift-left 可以增量地應用于大型和復雜的系統。敏捷通過在敏捷方法中為每個沖刺或迭代使用迷你 v 模型來進一步實現這一點。

編寫高質量的需求
定義明確的需求需要正確、完整、分解、明確和邏輯一致。這將有助于避免昂貴的返工和受挫的利益相關者。

為確保完整性,根據實際用例驗證需求或按照某些敏捷方法中的建議創建故事很有用。通過分解將需求定義到適當的詳細程度也有助于確保低層次的需求集中在單一的概念上。一旦定義了一組需求,最好檢查它們的邏輯一致性。使用模板來鼓勵語法一致性有助于使這些檢查更容易,從而在需求重疊或沖突時變得明顯。

從硬件開始 在軟件設計過程的早期考慮硬件對于確保不浪費精力至關重要。同樣,盡早修復應用程序編程接口 (API) 功能等通信接口也是一個好主意。

在為安全或業務關鍵型項目選擇或設計硬件時,還值得考慮用于測試的硬件可用性的時間范圍。當然,最好讓選定的硬件可用于測試,但這并不總是可行的,因為有時硬件是并行開發的。在這些情況下,主機然后目標測試可能是一種可行的解決方案,或者在模擬器上進行測試(如果有的話)。當需要在這些不同的環境中執行測試時,可以使用條件編譯(例如,#ifdef 等 C 指令),從而避免重復測試的需要。

讓領域專家參與需求定義
確保正確的人員正在審查需求并驗證它們的正確性和完整性是至關重要的。領域專家的示例包括業務分析師、技術專家、營銷和最終用戶。從廣泛的角度考慮需求有助于從一開始就正確地定義它們。

領域專家應確保指定的需求真正捕捉到應用程序或設備的目標。他們還應該檢查需求是否與編寫它們要實現的業務、功能和安全目標相匹配。或者,對于較低級別的需求,將它們追溯到滿足這些目標之一的較高級別的需求。

為確保優化此流程,不同角色將需要不同級別的需求數據;例如,業務分析師將驗證的需求不會分解到與開發人員將驗證的需求相同的級別。需求管理工具 (RMT) 可用于確保以清晰和有組織的方式向所有利益相關者提供他們所需的需求數據。將需求保留在 RMT 中還可以通過清楚地顯示更高級別和更低級別需求之間的可追溯性來幫助分解。

優化項目范圍
在項目的設計階段,值得注意的是質量和范圍的區別。產品的質量是安全或業務關鍵項目中不能犧牲的東西;但是,可能有縮小范圍的空間。大多數安全標準都建議盡可能簡單地設計系統,因為這使它們更容易測試,更不用說實施、維護和適應了。

簡單的設計
應用程序和固件/硬件之間的內存管理和分層的必要性通常意味著代碼復雜性是嵌入式開發中的一個問題。但是,限制使用全局變量和避免嵌套 if 語句(超過兩個或三個)等編碼實踐有助于限制代碼復雜性并提高可維護性。MISRA C/C++ 等語言子集可以提供一種有用的方法來提高程序的安全性和可移植性。

確保代碼是模塊化的有助于防止脆弱的設計,避免具有過長實現的函數,并旨在通過松散耦合使組件具有內聚性。架構分析矩陣是識別組件依賴關系的有用方法,并且可以使用工具來自動生成它們。通過應用分層等技術優化交互也有助于保持嵌入式代碼的可管理性。

靜態分析
第一個驗證階段很可能是靜態分析。此技術可用于在代碼執行之前發現代碼問題。靜態分析工具提供有關代碼潛在問題的即時反饋。靜態分析解決方案應提供有關影響可靠性、可維護性和可移植性的代碼的信息。靜態分析還可用于強制執行 MISRA C/C++ 等編碼標準。

自動化測試生成
驗證的下一階段是在單元級別動態測試代碼并執行檢查以確保行為符合需求中的定義。創建這些詳細的測試很耗時,但很有必要。現代測試工具可以自動生成這些低級測試。這通常通過解析代碼和生成單元測試來實現所需的結構代碼覆蓋率。

自動生成的測試向量不僅可以驅動代碼,還可以檢查函數之間傳遞的參數、可訪問的全局數據的值、調用順序和返回值。此過程還將確保生成一套全面的測試,涵蓋已在代碼中實現的所有功能。這些生成的測試需要根據軟件單元設計需求進行驗證,以確保需求得到驗證。

使用持續集成
一旦創建了一組通過的測試,它們就可以不斷地重新運行,以識別在增強或重構代碼時引入的任何回歸錯誤。這個基線安全網減少了對耗時且昂貴的系統測試的依賴,并且更加徹底并準確地識別錯誤的位置。

持續集成可用于將代碼集成到具有自動單元、集成以及系統級測試(如果可能)的共享存儲庫中。這可以大大加快開發速度,因為每次構建代碼時運行回歸測試提供了一個非常快速的反饋循環。它還使合并代碼分支更容易,從而減少破壞現有代碼的機會。

pYYBAGLhH7CAStgUAAA2J7O8X0g046.jpg


圖 3:持續集成過程(來源:QA Systems Ltd)

在設置持續集成環境時,重要的是優化運行的測試,以確保您擁有一套全面但精簡的測試,這些測試運行速度快,同時仍執行必要的檢查。分析代碼更改的影響以識別并僅運行受影響的測試有助于優化此過程。自動測試生成也可以是一個好方法,只需單擊一個按鈕即可創建一套初始的精益回歸測試。

保持硬件循環
持續集成的一個目標是持續部署,當涉及到硬件時,這可能很難實現。嵌入式平臺上的測試引入了不同于本地主機測試的挑戰,例如內存不足、缺乏可用功能(例如文件 I/O)、中斷處理以及編程語言的非標準擴展。盡管可以使用變通方法來解決這些問題中的許多問題,但如果可以通過事先計劃來避免它們,則效率會更高;例如,通過確保選擇具有“內存蠕變”能力的目標并確保硬件有足夠的準備來測試軟件。

調用控制技術,例如存根(有時稱為模擬),是一種標準且有用的方法來管理對不可用對象(例如,硬件)的調用。諸如“包裝”之類的高級技術可用于攔截呼叫。這對于集成測試檢查返回路徑并使用返回值或替換它非常有用。這允許在添加對象時驗證對象之間的交互。該技術對于模擬無法實現的現實條件(例如硬件故障)也特別有用。

簡化需求可追溯性
所有安全標準都需要測試和需求之間的可追溯性證據。將需求與測試用例匹配的過程很難自動化。對于以自然語言定義的需求,將需求翻譯成代碼的可靠解釋水平仍然遠遠超出當前機器學習 (ML) 的水平。但是,可以使用一些工具來提高記錄需求可追溯性的手動過程的效率。

需求可追溯性經常出現的一個問題是對不斷變化的需求的管理。在這里,使用工具來突出顯示更改以及與修改后的需求相關的測試用例是非常寶貴的。

編寫易于
維護的測試 在重構代碼時維護測試也是一個重大問題,因為即使是很小的更改也會破壞測試。單元和集成測試非常依賴源代碼結構,因此在更改代碼時它可能很脆弱(在某些情況下甚至沒有構建),并且修復它們可能很耗時。在這里,測試工具可用于識別影響測試的代碼更改和自動化測試維護,包括根據對代碼所做的更改提供測試的自動重構。

明智地投資
通過以適合您項目的方式選擇上述技術的組合,優化您的開發過程是可行的,即使在質量上不可能妥協。但是,所有優化都需要一定程度的投資,這可能涉及開發新流程、改進工具或增加開發團隊的規模。

可以有效地開發安全或業務關鍵型軟件,當然也不能幸免于現代開發技術。只需要更多的知識和努力來確保以不犧牲質量的方式使用工具和技術。

QA Systems是歐洲領先的安全關鍵市場軟件質量解決方案提供商。我們的工具用于自動化單元測試、代碼覆蓋、集成測試和靜態分析。所有工具均由 SGS TüV 獨立認證,可用于所有主要安全標準(ISO 26262、IEC 61508、IEC 62304、EN 50128 和 IEC 60880)的安全相關軟件開發的最高完整性級別,并且符合 DO 等標準-178B/C。QA Systems 最近在馬薩諸塞州波士頓開設了第一家北美辦事處,以更好地幫助北美客戶加速開發符合安全標準的關鍵業務軟件。

審核編輯 黃昊宇

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

    關注

    5199

    文章

    20457

    瀏覽量

    334279
  • 軟件開發
    +關注

    關注

    0

    文章

    708

    瀏覽量

    30096
  • 安全
    +關注

    關注

    1

    文章

    373

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    半導體嵌入式單元測試的核心技術、工具選型與落地全流程

    不通過,CI/CD平臺會阻斷代碼合并,確保只有通過測試的代碼才能進入下一個階段。三、winAMS在半導體嵌入式軟件開發中的實踐應用3.1 汽車電子領域:保障自動駕駛系統的安全性在汽車電子領域,自動駕駛系統
    發表于 03-06 14:55

    Parasoft C/C++test:嵌入式安全關鍵行業的一體化軟件測試解決方案

    ? ? ? 在汽車電子、工業控制、醫療設備、航空航天等嵌入式安全關鍵行業,軟件質量與功能安全直接決定產品可靠性與合規準入。面對日益復雜的代碼
    的頭像 發表于 03-06 09:42 ?249次閱讀

    嵌入式軟件開發工具市場新動向:訂閱制趨勢下的中國開發者選擇

    面對軟件業從永久授權模式廣泛轉向訂閱制的行業趨勢,作為行業兩大主流嵌入式軟件開發工具,即Keil MDK與IAR Embedded Workbench也推出了不同的市場策略,正在為中國開發
    的頭像 發表于 01-30 17:20 ?750次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>工具市場新動向:訂閱制趨勢下的中國<b class='flag-5'>開發</b>者選擇

    嵌入式驅動開發,需要掌握哪些技能?

    單元測試、集成測試、系統測試等,并學會使用調試工具進行問題排查。 6、 其他嵌入式驅動開發,實質也是軟件開發,還需要掌握開發文檔的編輯、軟件
    發表于 01-20 16:46

    什么是嵌入式應用開發

    概述 所謂的嵌入式應用開發就是在嵌入式操作系統下進行開發、軟硬件綜合開發 ?嵌入式應用
    發表于 01-12 16:13

    C語言單元測試在嵌入式軟件開發中的作用及專業工具的應用

    需要硬件模擬的場景 對于安全關鍵系統,建議選擇支持MC/DC覆蓋率分析的框架,如winAMS內置的覆蓋率分析工具。 2. 測試流程優化 嵌入式C語言單元測試的典型流程應包括: ?需求
    發表于 12-18 11:46

    CW32嵌入式軟件開發的必備知識

    嵌入式軟件開發作為計算機科學和電子工程的交叉領域,要求開發人員具備一系列的專業知識和技能。 而基于CW32的嵌入式軟件開發必備知識包括以下
    發表于 11-28 07:48

    嵌入式開發關鍵點介紹

    需要考慮嵌入式系統的資源限制,例如:內存、CPU處理能力等等。因此,嵌入式開發需要開發人員具備優化代碼的能力。嵌入式系統的
    發表于 11-13 08:12

    嵌入式軟件測試與專業測試工具的必要性深度解析

    嵌入式系統作為控制、監視或輔助裝置運行的專用計算機系統,其軟件測試面臨著獨特的挑戰和嚴格的要求。專業測試工具在嵌入式軟件開發過程中發揮著不可替代的作用,是確保系統可靠性和
    發表于 09-28 17:42

    2025“芯原杯”全國嵌入式軟件開發大賽圓滿落幕

    此前,2025年7月20日至26日,第四屆“芯原杯”全國嵌入式軟件開發大賽決賽在海口成功舉辦。
    的頭像 發表于 08-06 09:51 ?1346次閱讀

    嵌入式軟件開發常用的軟件有哪些?

    對于初學嵌入式的朋友們,會想要了解嵌入式軟件開發常用的軟件有些,有什么用。那么看以下常用的軟件介紹。 1.Visual Studio Cod
    發表于 07-03 17:06

    如何成為一名嵌入式軟件工程師?

    、Java等)和軟件開發工具,還需要對硬件的工作原理有深入的理解。 在團隊中,嵌入式軟件工程師往往扮演著核心角色,他們的工作直接關系到產品的性能、穩定性和用戶體驗。 02掌握核心技能與知識
    發表于 04-15 14:37

    嵌入式主板開發詳細指南

    嵌入式主板開發涉及硬件設計、軟件集成、系統優化等多個環節,需要結合具體應用場景進行深度定制。以下是嵌入式主板
    的頭像 發表于 04-02 11:35 ?1379次閱讀
    <b class='flag-5'>嵌入式</b>主板<b class='flag-5'>開發</b>詳細指南

    嵌入式系統開發圣經【干貨】

    內容包括:嵌入式系統的介紹、嵌入式SoC硬件系統概論、嵌入式系統軟件開發。適用于產品主管、系統設計分析人員及欲進入該領域的工程師。本資料詳細的理論講解,廣泛深入地分析相關的
    發表于 03-12 13:58

    IAR發布云端平臺,助力現代嵌入式軟件開發團隊

    該平臺為嵌入式軟件開發人員提供前所未有的自由度與靈活性,助力開發團隊在工具選擇和日常工作流中實現更高效的協作與創新。
    的頭像 發表于 03-12 11:56 ?822次閱讀