Translate

2021/10/01

UMLモデルからSysMLモデルへの変換

 Forum の記事

「UML model to SysML model(Change/migrate model with state machines from UML to SysML model)」

にあった話題ですが、Papyrus の UML として作成したステートマシンモデルを SysML のステートマシンモデルに変換するにはどうしたらよいのか、という話です。

Switch Architecture Context で出来るとのことです。

知らなかったので少し試してみました。

ステートマシンモデルの切り替え

まずはUMLモデルとしてステートマシンを作成してみました。


Properties の Diagram Kind から見て取れる通り、UML の State Machine Diagram になっています。

この状態で、Architecture Context の切り替えを行ってみます。操作は、Model Explorer のトップのモデルをマウスで選択し、ドロップダウンリストから Switch Architecture Context を選びます。


すると切り替えのダイアログが表示されます。SysML1.6 のアドオンがインストールされていることが前提ではありますが。


ここで SysML1.6 に切り替えます。


これでOKをクリックすると以下のような警告が表示されます。


了解して Yes をクリックすると以下のようになりました。


Diagram Kind を見ると、確かに SysML 1.6 State Machine Diagram に変わっていますね。

へーという感じです。細かには色々と気になること、例えば、図の変換なのかモデルの変換なのか、はありますが、UMLとしてモデルを作成した世界から、SysMLのモデルの世界に移りゆくことは可能そうですね。

その後、同じく Switch Architecture Context で UML に切り替えると無事に元に戻りました。

クラス図の変換

少なくとも図の変換は出来たということで「図の変換」という表現を使いますが、次に気になるのは「UMLのクラス図はどうなるか」です。

試してみました。

以下のようなクラス図を作成しました。


同じく Switch Architecture Context を実行してみると、以下のようになりました。


Diagram Kind を見ると UML :: Class Diagram のままですね。Model Explorer 上の State Machine Diagram の方のアイコンから分かる通り、こちらは SysML に変わっているのですが、SysML の Architecture Context でも、UMLのクラス図はそのままというわけなのですね。

前にも少し試していた UML と SysML の混在(その1その2)に関しても、Architecture Context を切り替えて使った方が良さそうですね。

ただ使ったことがないので、問題等についてちゃんと把握はしていませんが。。。