一、傳統的軟件開發方法
在基于模型的設計中,系統工程師先建立一個系統模型,即通過數學模型來精確描述用戶需求,創建一個可執行、跟蹤的技術規范。工程師可以通過這個系統模型,動態地確認系統性能。使每個工程師無歧義地理解并運行系統模型,專注開發模型各個部分,不會因理解不同造成需求丟失、冗余或沖突。
2)生成定點模型
系統模型與需求之間可建立雙向鏈接,在整個開發過程中,軟件工程師可對模型進行需求追蹤和測試,將產品缺點暴露在開發初期。根據具體嵌入式器件和實現條件,對系統模型進行細化和功能分區,進行系統測試、設計測試和模型助手測試,驗證是否滿足需求與技術規范,判斷是否還存在缺失的需求,驗證是否符合行業標準(如DO-178B、IEC-61508、MAAB等),之后再對模型做定點轉換,形成簡潔、高效的定點模型。
3)嵌入式代碼自動生成
MathWorks的Real-Time Workshop Embedded Coder可以將Simulink/Stateflow中的模型自動轉換為嵌入式C代碼,大大降低嵌入式系統的開發門檻。開發人員可以在Simulink/Stateflow、Embedded Matlab中建立系統模型、構思解決方案,然后使用RTW-EC自動生成優化的、可移植的、自定義的產品級C代碼,并根據特定目標配置自動生成嵌入式系統實時應用程序??s短開發周期,避免人為引入的錯誤。
4)連續測試和驗證
基于模型的設計在整個設計過程中都在不斷進行測試和驗證,工程師利用測試案例追蹤系統級模型和需求,檢測設計變更導致的系統輸出變化,并快速追蹤變更來源,通過測試案例還可以了解模型的功能覆蓋度。
對于嵌入式系統,還需要測試其實時性,工程師可以使用硬件在環測試嵌入式代碼的實時性。通過測試,收集實時數據,相應修改代碼參數。硬件在環檢測能確保在開發初期就完成嵌入式軟件測試,這樣在系統整合時,比傳統方法檢測得更徹底、更全面,從而及早發現問題,降低解決問題的成本。