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