任何關于優化軟體開發程序的嘗試都不可避免地需要在軟體質量、資源和時間之間進行權衡,只有在掌握了“三要素”中至少兩樣的前提下,才有可能實作軟體開發程序的優化,

▲質量、資源和時間“三要素”
對安全關鍵領域或業務關鍵的軟體來說,如在質量上有任何細微的妥協,都將可能導致嚴重的經濟損失或危及生命安全的后果,該類軟體開發的首要重點必須為質量,本文將討論把軟體質量放在首位時的嵌入式軟體開發流程優化方法,
01.什么是軟體質量
在軟體開發的最初階段,需求方通常對最終的軟體產品有著明確的需求與并不十分明確的期待,而軟體質量指代的就是產品最終與之相符的程度,具體而言,軟體質量指軟體與已被明確敘述的功能和性能需求、開發標準及任何專業開發的軟體都應具備的隱形特征相一致的程度,
影響軟體質量的因素如下圖所示:

▲影響軟體質量的因素
02.質量文化
質量文化(Quality Culture)是企業發展的核心,指企業在生產經營活動中所形成的質量意識、質量精神、質量行為、質量價值觀、質量形象以及企業所提供的產品或服務質量等的總和,
質量文化視測驗與品控為開發程序的重中之重,傾向于提高開發透明度及責任細分度,能夠有效減少開發高質量產品的成本,
良好的溝通是質量文化運作的基石,為提升團隊溝通的效率,可選擇使用組內每日例會的形式保證直觀、清晰的Bug描述,以避免修復Bug的程序中可能出現的問題,跨職能團隊之間的良好溝通有助于確保所有利益相關者對質量和安全目標達成共識,進一步提升企業質量文化,
03.優化件開發方法
專業領域的軟體通常有著專屬安全標準,如汽車領域的ISO 26262《道路車輛功能安全》國際標準、工業功能安全領域的IEC 61508《電氣/電子/可編程電子安全相關系統的功能安全》、航空領域的DO-178C機載系統和設備認證中的軟體注意事項等,以上標準對軟體開發的定義皆為下圖所示的線性程序:
▲專業軟體開發的V字形模型:左側為需求定義程序,右側為測驗驗證程序
按V字形模型所示的開發流程進行開發的產品很難擺脫傳統耗時較久的“瀑布模式”,而現代軟體開發方法(如敏捷和DevOps)能夠在保證軟體質量的同時有效縮短軟體開發周期,敏捷與DevOps被認為是創建更精簡、更具迭代性的軟體開發流程方法所需的概念,能夠在實作測驗“左移”的同時更好地進行安全關鍵領域的嵌入式軟體開發,
04.左移(Shift-left)
測驗在完整的軟體開發生命周期中通常會面臨著以下挑戰:
- 在開發的早期階段著重編碼而忽視測驗,代碼不穩定,團隊效率降低,
- 手工測驗與其他工具集成的成本居高不下,敏捷和DevOps無從下手,
- 用戶界面的驅動測驗緩慢且脆弱,測驗手段無法實作符合需求的覆寫率,
采用“左移”的測驗方法是應對這些挑戰的關鍵,“左移”指在軟體開發周期中較早進行測驗,確保在軟體需求及設計的正確性上花費足夠的時間,避免不必要的問題的產生,從而減少整體作業量及開發時間,“左移”以“盡早發現錯誤”為原則:錯誤發現得越早,其解決就越快、越容易,成本也會越低,“左移”已被逐步應用于大型復雜嵌入式系統,以敏捷開發方法為例,可通過在每個迭代處應用迷你V字形模型來推進軟體開發,
總體而言,將軟體質量作為首要因素時,可以通過以下方法優化嵌入式軟體開發流程:
- 撰寫高質量的需求
- 以硬體為基礎
- 讓領域專家參與需求定義
- 優化專案范圍
- 簡單設計
- 靜態分析
- 自動生成測驗用例
- 持續集成
- 半實物仿真
- 簡化需求跟蹤
- 撰寫易于維護的測驗用例
SkyEye,中文全稱天目全數字實時仿真軟體,是基于可視化建模的硬體行為級仿真平臺,支持用戶通過拖拽的方式對硬體進行行為級別的仿真和建模,是真實物理硬體的數字孿生,可達到軟體質量、資源、時間齊頭并進的理想目標,
SkyEye可通過實作對原始碼的快速修改實作測驗環境的更新,亦可通過全數字實時仿真對標真實硬體,大大減少硬體資源消耗,使多個部門同時開發,能夠在保證軟體質量的基礎上顯著提升開發效率,縮短開發周期,
參考鏈接
https://www.embedded.com/enhancing-quality-in-software-development-for-critical-systems/
原文鏈接
https://mp.weixin.qq.com/s/NdpdFzsNEXd98rmqpuqiqg
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538331.html
標籤:其他
上一篇:第三次打靶
