本ページではモデルベース開発工程について解説します。
下図は組み込みソフトウェア開発でよく用いられるV字プロセスといわれる開発工程です。
モデルベース開発でもこのプロセス自体は同じです。
モデルをベースにしながらV字プロセスを効率よく進めていく方法がモデルベース開発です。
各工程について解説します。
①要件定義
どんなシステムなのか、どんな機能・性能をもったものを開発するのかを定義する工程です。全ての要件を満たすソフトが完成すると開発プロジェクトが完了となります。
注意点 後々言った言ってない問題に発展しないように要件定義結果は関連部署(委託元と委託先だったり、同じ会社でも自部署と他部署だったり)と合意を取り、証拠を残しましょう(議事録や打ち合わせ時の動画など)。
②基本設計
要件定義で決定した各要件をどのように実現するかを設計します。各ECUの受け持つ機能や入出力、通信仕様などを定義し、機能分割した後に側(がわ)だけの制御モデル(スケルトンモデル)を作成します。
後々「この機能はこのECU担当ではない」や「通信仕様はこれが正しい」など揉めることが無いように設計事項は仕様書としてドキュメント化し、関係者とのレビュー結果を書面として残しておきましょう。
③詳細設計
基本設計で設計した各ECUが担当する機能のモデル化および検証を下記流れで行います。
1 各サブシステム内のロジックの作り込み
2 制御モデルの検証(モデリングガイドラインチェック、設計エラー検証、動的解析)
3 MILS(Model In the Loop Simulation)よるシステム検証
④コーディング
従来開発では詳細設計で作成した仕様書をもとに人力でコーディング作業を行っていましたが、モデルベース開発では、自動コード生成機能により制御モデルから自動でコードを生成することができます。
⑤単体評価
自動生成したコードを実際のECUに書き込んで机上環境で動作検証を行います。効率化のためにHILSの導入が有効です。
この工程ではひとつのECUに対しての評価を行います。他ECUと連携して機能を実現する場合でも、まずは各ECUが仕様通り動作していることを確認するために本工程が存在します。(各ECUがそれぞれ正しく動いていることが確認できないまま結合してしまって不具合が出た場合、原因の切り分けに時間がかかる)
⑥結合評価
複数のECUを結合して机上環境で動作検証を行います。HILSの活用も有効です。
単体(ひとつのECU)ではなく、搭載予定のECUが全て接続された状態での評価を行います。
⑦実機評価
全ECUを実機に搭載し、実環境で評価を行います。
要件定義内容を全て実現できていることを確認してプロジェクト完了となります。