DSMタブで検出・表示する要素は次の通りです。
DSMタブでは次の関係が依存として検出、表示されます。
要素名 | 備考 |
---|---|
関連 | 誘導不可能は単方向依存として扱います |
関連(集約) | コンテナから要素への単方向依存として扱います |
関連(コンポジション) | コンテナから要素への単方向依存として扱います |
依存、使用依存、実現、テンプレートバインディング | - |
汎化 | サブクラスからスーパークラスへの依存として扱います |
実現 | Implementクラスからインタフェースへの依存として扱います |
パッケージの依存関係 | パッケージに含まれる要素はコンテナパッケージに依存するが、 マトリクスが見づらくなるため、セルに依存数を出力しません |
DSMタブでは以下のルールでセルの内容を表示しています。改善候補を目立たせることで、意図しない依存関係を明らかにし、改善を促します。
依存の内容 | 色 | 備考 |
---|---|---|
循環参照(相互参照)がある要素間のセル | 赤 | デッドロックやデータの未開放の発生、モジューラビリティが低下する可能性があります |
間接的な循環参照がある要素間のセル | ピンク | 循環参照と同様の問題が発生する可能性があります |
5つ以上の要素から依存される要素の全カラムの背景色 | 黄色 | 責務が肥大している可能性があります。該当要素の変更時に、影響範囲が広くなる可能性があります |
パッケージ選択コンボボックスでは、DSMに表示する要素の名前空間を「全て」、またはプロジェクト内の各パッケージから指定できます。
ボタン名 | 説明 |
---|---|
自動的に表を更新 | モデルの更新時に、自動的にDSMタブの内容も更新します (デフォルト: ON) |
タブの更新 | [更新]ボタンをクリックして、DSM上の表示を更新します |
Excelにエクスポート | [Excelにエクスポート]ボタンをクリックして、DSMをExcelに出力します (詳しく見る) |
DSMの表示要素が100を超える場合は、下記の警告メッセージが表示されます。
「DSMに表示する要素数が100を超えます。パフォーマンス低下が予想されます。不要なパッケージを閉じることでパフォーマンスが改善されます。実行しますか?」
astah*では、一つの要素を複数のクラス図で用いることができます。
このように、DSMを使って一元的に要素の依存関係を確認することで、意図しない構造の複雑性を見つけて、改善できます。