« Redmineの一つのプロジェクト内でユーザの権限を使い分ける要望への対応 | トップページ | Redmineと組織構造や組織文化はどのように関係するのか »

2020/12/15

astahのM+プラグインでモデル間のトレーサビリティが実現できる


astahのM+プラグインがいい感じで使えるのでメモ。

【参考】
M PLUSプラグイン | astah* プラグイン

astahのM+プラグインは、多種類のソースコードをクラス図から自動生成するだけ、と思っていた。

(引用開始)
1. ソースコード出力
C++ / C# / Crystal / Golang / Java / JavaScript / Kotlin / Python / Ruby / Scala / Swift / TypeScript / Alloy / VDM++に対応。
Acceleo, MOFScript, Xpandのように手書きのコードを維持するため、繰返しのコード生成が可能です。
(引用終了)

しかし、便利な機能があることが分かった。

(引用開始)
2. モデルプレビュー
構造ツリー上のパッケージを選択して、パッケージ内のモデル構造をプレビューできます。

3. ダイアグラムマップ
プロジェクト内の複数の図を1箇所に表示し、図をまとめて見れるだけでなく、図要素をマウスオーバーすると、同じ型のモデル要素同士が ハイライト線で繋がる為、図を跨いだ要素のトレースができます。

4. 依存関係マトリクス
プロジェクト内のモデル間の依存関係をExcelに出力します。
(引用終了)

モデルプレビューは、パッケージを選択すると、パッケージ内のダイアグラムをEnterpriseAcrchitectのようにパッケージ図にダイアグラムアイコンをHTMLで表示してくれる。
astahのパッケージは、ダイアグラムを階層化するための機能なので、モデル間のトレーサビリティ機能として欲しかった機能だった。
ただし、ダイアグラムのハイパーリンクはないので、単に表示するだけなのは残念。
ダイアグラムのハイパーリンクがあれば、下方追跡が実現できるのに。

モデルの粒度とトレーサビリティ、変更管理の問題は、モデリングツールではなくUMLそのものに真因があるのではないか: プログラマの思索

モデル間のトレーサビリティと粒度、変更管理に関するastahのあるべき姿: プログラマの思索

ダイアグラムマップは、2個以上のダイアグラムを含むパッケージを元に、複数のダイアグラムにあるクラスなどの要素が同じであれば、ハイライト線でつないでくれる。
つまり、ハイライト線はモデル間のトレーサビリティを実現した機能になる。

この機能を使えば、クラス図、シーケンス図、コンポーネント図などで、クラスがあちこちに散らばっていたとしても、同じクラスであれば、ハイライト線で該当箇所を見つけることができる。
つまり、ハイライト線でモデル同士の要素をトレースできるので、なぜこんな所にあるのか?とか、モデリング作業中の気づきを増やせる。

依存関係マトリクスとは、RelationshipMatrixというExcelを出力して、モデル間の依存関係を出力してくれる。
これを使えば、本来あるべき依存関係がない、とか、本来ない依存関係があるぞ、とか、モデルをリファクタリングしたり、モデルを精査する時に役立つ。

astah上でモデルのトレーサビリティを実現してほしいな、と思っていたけれど、このプラグインでどこまで対応できるのか、試してみたいと思う。

|

« Redmineの一つのプロジェクト内でユーザの権限を使い分ける要望への対応 | トップページ | Redmineと組織構造や組織文化はどのように関係するのか »

astahによるUMLモデリング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Redmineの一つのプロジェクト内でユーザの権限を使い分ける要望への対応 | トップページ | Redmineと組織構造や組織文化はどのように関係するのか »