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上でモデルのトレーサビリティを実現してほしいな、と思っていたけれど、このプラグインでどこまで対応できるのか、試してみたいと思う。
| 固定リンク
「astahによるUMLモデリング」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- astahにタイミング図がサポートされた(2024.03.12)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
- パッケージ原則とクラス原則の違いは何なのか(2023.10.14)
コメント