隨著網絡戰越來越成為常態的一部分,許多(如果不是大多數)軍事嵌入式系統本質上對安全和/或安保至關重要。為了應對這種日益增加的風險,軍事系統應該按照一些行業最嚴格的軟件開發標準來構建,以確保其安全、可靠和功能準確的運行,這是有道理的。遵循這些標準提供了雙重好處。它不僅可以降低安全和安保風險,還可以降低成本。軟件開發標準提高了可維護性、可升級性、可重用性和可測試性,提供了長期利益,特別是考慮到這些系統的典型生命周期。
為了滿足提高安全性和安全性、一致性并簡化未來維護和測試的需求,軟件開發組織必須考慮標準化軟件開發流程和明確定義的軟件語言使用。如果這種環境沒有明確定義,那么未來當然會有巨大的潛在問題。
讓我們看看 C 語言中的這個問題,它以極其靈活的方式定義了運算符、語法、函數等。可以編寫可能有效但其他人幾乎無法理解的代碼,并且可能包含在某些情況下造成嚴重破壞的復雜性和隱藏錯誤。像C++、Java甚至Ada這樣的語言——都在軍事嵌入式系統中使用——不加選擇地使用,可能會導致類似的不受支持的條件。編碼標準為軟件開發提供了一種一致的、相互理解的語言和方法,可幫助開發人員避免軟件語言定義中的任何歧義,并確保團隊正確完成編碼。
擁有這種基于標準的方法會帶來立竿見影的好處。編碼標準有助于定義一組可以在整個團隊中理解和使用的實踐。通過協作處理一組通用的編碼結構和實踐,團隊成員可以使用相同的方法輕松進行通信,并在整個軟件開發組織中生成更加一致、可維護和可測試的代碼。
在軍事和航空航天領域,現在有一些程序必須遵循DO-178C,這是一種開發安全關鍵航空電子設備應用的軟件標準。DO-178C 要求公司使用編碼標準來確保安全關鍵型應用程序建立在更安全、更安全的代碼之上。MISRA、CERT C/C++ 和 CWE 等標準有助于首先消除輸入代碼的缺陷和安全漏洞。對于定義了許多變體的 C 等語言,編碼標準可確保一致、可維護的實踐,有助于降低風險并支持未來的可重用性和可測試性。
做對了
不用說,任何這樣的編碼標準集都將非常詳細,需要不斷關注。檢查以確保標準實際上已得到完全遵守可能是一項更加艱巨的任務,并且只能通過使用自動化工具可靠地實現。代替人工檢查,自動檢查是通過對源代碼的靜態分析來完成的,應該在整個代碼構建過程中完成。只有當該工具能夠快速且易于理解的操作向開發人員準確展示他們需要了解的合規性時,這才變得實用(或可以忍受)。
尋找一種靜態分析工具,該工具可讓您從已建立的標準以及組織內采用的規則中進行選擇。這些優勢使同一項目的團隊能夠根據他們一直在使用的同一組實踐和標準將他們的結果匯集在一起。試圖弄清楚其他人試圖做什么的問題、對話和解釋要少得多。雖然不能完全量化,但這意味著花更少的時間在理解代碼和溝通上,這在項目的整個生命周期中可以節省大量資金。
自動檢查合規性可加快迭代開發工作。在安全性方面,編碼標準有助于解決整體安全難題的一部分。它們不解決加密、隔離、隔離問題,也不確保數據在靜態和傳輸過程中得到保護等,但它們確實有助于避免可能被利用的細微編碼錯誤。這樣的標準將消除臭名昭著的心血錯誤,這種錯誤是由于未能限制變量的大小而引起的——這種風險在軍事系統中是無法證明的。為深入分析而設置的工具還可以收集有關代碼的內部信息,并了解更深入的主題,例如真正的數據耦合和控制耦合,這是安全和安保關鍵應用所必需的。
動態測試超越了靜態分析,因為它涉及實際編譯和運行帶有輸入的代碼并查找預期的輸出。動態單元和集成測試需要一組測試向量和一個測試工具,這些工具派生自對靜態分析獲得的代碼的深刻理解。該線束是一個軟件,它圍繞著被測代碼,能夠顯示測試輸入和提取結果輸出。
標準 — 基礎!
將編碼標準視為過程的一部分和基礎。采用團隊理解的一組標準,結合強大的工具支持,可以使工作流程更順暢,并生成當前和未來團隊可以理解的代碼。因為它是可理解的,所以可以很容易地識別可能需要調整或修改的區域,從而更容易維護。而且,深入的分析可以極大地減輕設置和執行詳細測試的負擔,以充分向開發人員(或合規組織)保證其工作的堅實功能。
所以,是的,編碼標準對于形成堅實的軟件質量過程的基礎是必要的。遵守嚴格編碼標準的開發組織將創建更加一致、可維護、可重用和可測試的代碼。最終,這將產生更高質量的應用軟件。
審核編輯:郭婷
-
嵌入式
+關注
關注
5090文章
19176瀏覽量
306892 -
C++
+關注
關注
22文章
2114瀏覽量
73792
發布評論請先 登錄
相關推薦
評論