mtrip
「mtrip」は、SysML・UML・DFD(データフローダイアグラム図)等の汎用モデリング言語で記述されたアーキテクチャ設計モデルと、詳細設計モデルのMATLAB/Simulink を相互に変換するツールです。
詳細設計モデルの変更をアーキテクチャ設計モデルへ同期しないと、次第に構造面でモデルを検討する事が困難になります。『mtrip』はアーキテクチャ設計モデルと詳細設計モデルを同期させ、異なる視点からモデルを見ることができ、高い保守性を維持します。
Simulinkモデルベース開発の効果と限界
MATLAB / Simulink はシミュレーション機能や充実した関連製品により、制御モデルを迅速に作成・検証できる大変便利なツールです。 しかしながら、この簡便さゆえ、開発者は「システムの構造的側面」に注意を払うことなく、試行錯誤を繰り返し「とにかく動くモデル」を作ってしまいがちです。
構造的側面の設計が不十分なモデルは、仕様変更時の修正個所の特定や、複数製品へのモデル再利用が難しい、いわゆる保守性が低いモデルになってしまいます。
mtripと“Simulinkモデル⇔アーキテクチャモデル”で高い保守性を維持
保守性の高いモデルを作るには、MATLAB / Simulink を用いて動くモデルを作る前に、UML等の表記を用いて論理的な視点で構造設計を行うのが効果的です。
下記は「mtrip」を用いた開発フローです。MATLAB / Simulink モデルとUML等のモデルを相互変換する「mtrip」を使って各工程で適したモデルを使い分けます。
すなわち、
・アルゴリズムの迅速な実装とフィードバックが求められる「先行開発モデル」
・ドメインの問題を整理し、保守・再利用に強い頑健な構造を設計するための「アーキテクチャモデル」
・コード生成、シミュレーション、検証の充実したツールチェーンを使える「量産開発モデル」
それぞれの場面で、適したモデルを使い分け、それらをシームレスにつなぐことが可能です。
いろいろなアーキテクチャモデルとSimulinkモデルの変換を実現
アーキテクチャモデルは複数のダイアグラムから選択できます。これにより、ユーザーの開発環境やドメインに適したモデリング表記・設計手法を用いることができます。
先行開発で作ったプロトタイプ的なSimulinkモデルを、アーキテクチャ設計用のモデルに変換します。 これによりアーキテクチャ設計のベースとなるモデルを作成することができます。
一方のモデルに変更を加えた後、変更内容をもう一方へフィードバックすることができます。
制御の目的や論理、原理原則を主体とした論理的で洗練されたアーキテクチャの構造を量産開発のモデルへ引き継ぐことで、詳細設計の品質を高めることができます。
UMLクラス図・パッケージ図
UMLのパッケージ図、クラス図を MATLAB / Simulink のサブシステム構造と相互変換します。
UMLのパッケージ、クラスはそれぞれ MATLAB / Simulink のサブシステムに変換されます。また、クラス間に信号線に相当する依存関係を付加することで、MATLAB / Simulink のサブシステム間をラインで結線します。ラインに付随する入出力ポートの生成や、名前の設定も自動的に行われます。
パッケージとクラスによる「モデリング」は、ドメインをオブジェクト・エンティティ中心で分割する場合に適しています。
UMLコンポーネント図
UMLのコンポーネント図を MATLAB / Simulink のサブシステム構造と相互変換します。
「UML」のコンポーネントは MATLAB / Simulink のサブシステムに変換され、それらをつなぐコネクタやポートはサブシステム間を結線するラインと入出力ポートに変換されます。 コンポーネントによるモデリングは、ドメインを機能中心で分割する場合に適しています。
SysML
SysMLのブロック定義図と内部ブロック図をSimulinkのサブシステム構造と相互変換します。
ブロック定義図のブロック・内部ブロック図のプロパティはSimulinkのサブシステムに変換され、それら要素をつなぐ接続はサブシステム間を結線するラインと入出力ポートに変換されます。
DFD
DFD(データフローダイアグラム図)を MATLAB / Simulink のサブシステム構造と相互変換します。
DFD(データフローダイアグラム図)のプロセスは MATLAB / Simulink のサブシステムに変換され、プロセス間をつなぐデータフロー/制御フローはサブシステム間を結線するラインと入出力ポートに変換されます。
DFD(データフローダイアグラム図)による「モデリング」は、ドメインをデータの流れを中心に分解する場合に適しています。
UMLステートマシン図
UMLのステートマシン図からSimulink/Stateflowをフォワード変換します*。
*リバース・ラウンドトリップ変換の機能は現在ありません。
動作環境
OS:Windows 10、11 ※.NET Framework 4.0 以降が必要
MATLAB/Simulink:R2011b 以降
Enterprise Architect:9.2~16 ※利用バージョンにより、SysMLには「MDG Technology for SysML」が必要
※MATLAB/Simulink/StateflowはThe MathWorks, Inc.の登録商標です。
※Enterprise Architectについてはスパークスシステムズ ジャパンのページをご覧ください。