2023年01月30日
【第7回】ソースコード生成と実装業務の注意点
MBD実践ステップアップガイド
作成したモデルを使ったxILS等で仕様通りに動作確認することができれば、いよいよコード生成し、ソフトウェアとして実装する工程に入ります。
MBDでの実装段階のメリットは、何と言ってもモデルからツールを介してソースコードを自動生成できることです。これまで必要だった、ソフトウェア詳細設計書をインプットとしてプログラミングしていた作業が不要になります。生成ツールを利用することで、ソースコードの品質が安定し、コスト削減効果も絶大です。
一方で、実装モデル設計では前工程で設計・作成した制御モデルをソースコードに変換する前に、実装モデルだけでは実現できない場合には必要に応じてモデルを修正したり、部分的に従来のソースコードで実現したりします。また、生成ツールに限らず、実装プロセスを簡略化させることを目的としたサポートツールが存在します。
ここではMBDの実装プロセスで使用する代表的なツール、及び実装業務に関する注意点について簡単に説明します。
実装プロセスツール
ソフトウェアコンポーネント(SWC)設計支援ツール
こちらのツールは、SWC間の設計を支援するためのツールです。例えば以下のような設計を支援する機能を有しています。
・インターフェースの定義
・データタイプの定義
・ 通信の初期値やタイムアウト、ポートの定義
そのような定義した内容に不整合箇所がないかなどの確認をします。
ベーシックソフトウェア(BSW)とAUTOSARランタイム環境(RTE)設計支援ツール
こちらのツールは、BSWやRTEといった、アプリケーションとハードウェアを正しく接合、機能させるための層の設計、検証を支援するためのツールです。以下のように支援する機能を有しています。
1. 開発対象のSWCから入出力、実行条件、データなどの情報抽出
2. 各BSWやRTEで依存関係にある関連パラメータ(更新周期や待機時間など)の調整
3. 自動生成するためのコンフィグレーションされたXML(eXtensible Markup Lvanguage)形式のファイルをCOM、サービス、OSといった機能単位で生成
そのファイルをECU Configuration Descriptionといいます。また、生成する対象機能毎に、異なるツールを用いる場合が多いです。
コード生成ツール
ここでは、大きく2系統のコード生成ツールが存在します。
1つは、制御モデルからソースコード生成するためのツール
こちらは、各制御モデルからソースコードを生成します。
2つ目はBSW,RTE領域をコード生成するためのツール
こちらは、前述のXML形式ファイルを用いてソースコードを生成します。
生成したソースコード群を結合して、ECUに実装可能な実行体を作成します。
実装業務における注意点
AUTOSARの重要なポイントは、XMLファイルの扱いです。各コンフィグレーションの設計のアウトプットとして、あるいはBSW、RTEコード生成のためのインプットとして使用されます。製品によっては、自社だけでなく、ベンダーから提供されるXMLファイルを利用する場合もあります。
即ち、他社が使用したコンフィグレーション設計ツールも含め、さまざまなメーカーの実装プロセス用の設計支援ツールが同じ開発プロジェクト内で使用されます。
品質確保のためにも、各ツール間の保証の仕方、作業プロセスの標準化は不可欠です。潜在的に異なるツールであっても、さまざまなBSWモジュールで使用される可能性もあります。汎用性や品質保証を考慮した実用的な観点からは、同一のベンダーからリリースされているツールを用いてBSW、RTEの構成を生成することが望ましいです。
また、モデリングに関しても、同じ制御でも人によっていろんな表現の仕方があります。できるだけ、誰が作成しても同じ表現になるように整備しておくことで、開発プロセスに多くのメリットが期待できます。例えば、モデルで一般的な作成手法や依存するデータや変数、関数名の命名方法などの共通ルールを設けることで、モデルの品質向上、手戻りの回避が見込めます。
実装に向けてコード生成実行までにおさえておきたいポイント
コードの生成による効果をより有効にするためには、実行後の手戻りを如何になくすかが重要です。そのためには制御モデルや機種モデルの不備がないかを事前に確認する必要があります。そこで、以下のようなポイントで確認することをお勧めします。
モデルガイドラインに沿った形となっているか
JMAAB(Japan MBD Automotive Advisory Board)から
モデリングガイドラインが公開されています。それを参考に確認してもいいですし、その他独自にガイドラインを設けている場合には、そのルールに沿っているかレビューをします。
効率的なコードの使用になっているか
生成されるコードを想定して、モデリングに使用するブロックに禁止されているものが使われていないか、不要な定義がないかといった視点でレビューします。
コード生成における注意点
コード生成ツールは、非常に便利で開発の効率化に非常に効果的なツールです。実際の開発でコード生成を行う際には、以下のような注意点があることもおさえておく必要があります。
リソース量が、自動生成コード>熟練者が作成したソースコード
ハンドコーディングで作成したCソースコードのリソースを1とすると、ツールで生成したリソースは1.2から1.4くらいになります。
上記を踏まえた上で、実装するマイコンのROM容量などを検討する必要があります。
バージョン違いによる品質保証
同じコード生成ツールであっても、使用するバージョンによって、生成されたコードが変わる可能性があります。
コードが変わっていると、繋がりや振る舞いにも影響がある可能性があります。
品質確保の観点から、制御モデルのバージョン、コード生成ツールのバージョン毎に生成されたコードや検証結果の管理も重要です。
これらをクリアするために
・マイコンの容量が実装するソフトウェアサイズに見合っているかを予め検討しておく
・構成管理ツールなどを用いてバージョン、データを管理
など、実施項目として開発プロセスに織り込むことで、検討漏れを防ぐことが可能です。
最後に
コード生成をはじめ、MBDプロセスで使用する実装に関連するツールの一覧表を以下に示します。
これらは、さまざまなベンダーからリリースされています。
特徴や使い勝手を吟味して、ご自身の開発プロセスに一番マッチしているツールを選定、運用ルールの整備など、MBDの効果を最大限に活かすために大事な要素だと思います。
筆者紹介
「車に関わる仕事がしたい」の一心で、従事して参りました。エンジン単体、車両走行試験に始まり、制御プログラム開発を経験、品質とプロセスの重要性を痛感しながら今日に至っています。開発スピードを如何に早くするかという点でMBDは有効だと思いますが、最後は実機での確認が重要だと思っています。