要素技術調査に心血を注ぎ、手段レベルのまま放置されたモデルは、情報をまとめきれず、全体的に抽象度が低いため、要素間の入出力関係が複雑で、下左図のように処理の複雑化を招きやすくなります。
モデルを整頓する上で、うまく「アーキテクチャ設計」ができると、要素間の入出力が簡潔で、処理も簡潔になり、 各要素の役割も明確で、理解しやすく変更しやすいといったメリットが得られます。
この「アーキテクチャ設計」のポイントは「レイヤ」と「ドメイン」による分割です。
車両制御ソフトウェアは、抽象度に応じて機能/手段/部品の3つの「レイヤ」に分割できます。
さらにドライバの運転機能に応じて、機能レイヤには「判断」、手段レイヤには「認知」と「操作」、そして部品レイヤには「デバイス」といった「ドメイン」を割り当てることで、互いに疎な構造からなるモデルを構築することが可能になります。
なお、開発対象の規模、最適な設計手法、開発者のスキル等に応じて、他のモデリング言語の併用も有効です。たとえば、「レイヤ」や「ドメイン」といったレベルでの設計には、UMLの活用が効果的です(「モデルベース開発(UML+オブジェクト指向)」をご覧ください)。
アーキテクチャレベルでモデルを整頓した後は、MATLAB/Simulinkモデルを再構築します。再構築がうまくできているかを確認する際に有効になるのがモデルのメトリクスです。基本的な考え方はコー ドメトリクスと同じで、ソースコードではなくモデルを静的に解析し、定量的な値を測定します。具体的には、サブシステム上のブロック数 、サブシステムの処理の複雑度を計測した経路複雑度、伝播信号の表示率、コメント率などがあります。
メトリクスはソフトウェアの品質と密接な関連性を持つため、メトリクスを評価することで品質上の問題が特定可能になります(下図)。
このように開発したモデルに対し、定期的にメトリクスを測定することにより、
品質改善(問題箇所の特定)
品質のモニタリング(品質劣化防止、改善効果の可視化)
品質のベンチマーキング(品質基準の策定、複数モデルの品質を比較)
などを通じて、モデルの品質向上に向けた活動を行うことができます。
弊社では、 MATLAB/Simulink モデルのメトリクス測定ツールを提供しています。(MODEL EVALUATOR)
また、メトリクスを使った具体的なリファクタリングの進め方を「Simulinkモデルのリファクタリング」で紹介しています。ぜひ、そちらもご覧ください。