この内容は、バージョン 7.5.4 以降にあてはまります。UML モデルの分析規則は、UML モデルがベスト・プラクティスに沿っているかどうか判別する際に役立ちます。
モデル内でいくつかのタイプの問題を検出することができます。
例えば、モデルを対象に、壊れた意味関係、欠落した仕様、または正しい Java™ 命名規則などを検査することができます。
UML のレビュー規則は、完全性、正確さ、結合、Java の命名、スタイル、および追跡可能性のカテゴリーにグループ化されます。
完全性に関する規則
以下の表に、完全性カテゴリーの規則をリストします。
| 規則名 |
説明 |
| 抽象クラスに具象サブクラスがある |
この規則では、モデル内の、具象サブクラ
スを持たないすべての抽象クラスが特定されます。
抽象クラスはインスタンス化できないため、有効にす
るには具象実装が必要になるためです。 |
| 孤立要素 |
この規則では、他のどの要素とも関係を持たないすべての要素 (パッケージを除く) を特定します。孤立要素は、モデルから削除する有力な候補となります。 |
正確さに関する規則
以下の表に、正確さカテゴリーの規則をリストします。
| 規則名 |
説明 |
| インターフェース操作は public |
この規則では、モデル内の、非 public 操作を宣言するすべてのインターフェースが特定されます。インターフェース内のすべての操作は、それらを参照するインターフェースの具象実装に対して、public なものとして可視になっている必要があるためです。 |
| インターフェース属性は public |
この規則では、モデル内の、非 public 属性を宣言するすべてのインターフェースが特定されます。インターフェース内のすべての属性は、それらを参照するインターフェースの具象実装に対して、public なものとして可視になっている必要があるためです。 |
結合に関する規則
以下の表に、依存関係カテゴリーの規則をリストします。
| 規則名 |
説明 |
| モデル間依存関係 |
この規則では、論理モデル内の分類子で、別の論理モデル (モデルまたはパッケージ) 内の分類子を参照するものをすべて検出します。 |
| パッケージ間依存関係 |
この規則では、パッケージ内の分類子で、別のパッケージ内の分類子を参照するものをすべて検出します。この分析からサブパッケージの従属関係を除外できます。 |
Java の命名に関する規則
以下の表に、Java の命名カテゴリーの規則をリストします。
| 規則名 |
説明 |
| 要素名は有効な Java ID |
この規則では、Java の標準命名規則に従っていないすべてのモデル要素が特定されます。UML モデルを有効な Java コードに変換するには、モデル内のすべての要素が Java で有効な名前を持っている必要があるためです。 |
| タイプ名の先頭は大文字 |
この規則では、モデル内の、名前の先頭が大文字になっていないすべてのタイプが特定されます。Java の標準命名規則では、タイプ名の先頭を大文字にすることになっているためです。 |
| フィーチャー名の先頭は小文字 |
この規則では、先頭が小文字になっていないすべてのフィーチャー名が特定されます。Java の標準命名規則では、フィーチャー名の先頭を小文字にすることになっているためです。 |
| パッケージ名は小文字 |
この規則では、モデル内の、すべての文字が小文字になっていないすべてのパッケージ名が特定されます。Java の標準命名規則では、パッケージ名を小文字のみにすることになっているためです。 |
| サブタイプ属性の名前はスーパータイプ属性と異なる |
この規則では、モデル内の、スーパータイプの属性と同じ名前の属性を持つすべてのタイプが特定されます。サブタイプの属性にスーパータイプの属性と同じ名前を付けると、すべての特殊化においてスーパータイプの属性が非表示になるためです。 |
スタイルに関する規則
以下の表に、スタイル・カテゴリーの規則をリストします。
| 規則名 |
説明 |
| 具象クラスに抽象サブクラスがない |
この規則では、抽象クラスをサブクラスとして持つすべての具象クラスが特定されます。この状態は、設計フローに問題がある可能性を示しているためです。 |
| サブ分類子への参照なし |
この規則では、サブ分類子へのすべての
参照が特定されます。これらの参照は悪い事例と見なされているためです。 |
| public 属性は定数 |
この規則では、モデル内のすべての public 属性が特定されます。属性は分類子の外側では編集不可である必要があるためです。
get メソッドおよび set メソッドを使用するか、属性を public ではなく、定数として宣言してください。 |
| インターフェースに属性または発信元となる関連がない |
この規則では、属性または外向きの関連を持つすべてのインターフェースが特定されます。インターフェースは、データ・メンバーではなく、振る舞いを指定することを目的にしているためです。 |
追跡可能性に関する規則
以下の表に、追跡可能性カテゴリーの規則をリストします。
| 規則名 |
説明 |
| 要素がトレース関係サイクルにかかわっています |
この規則では、トレース関係サイクルにかかわるすべての要素を特定します。 |
| 要素に実装が欠落しています |
この規則では、実装を持たないすべての要素を特定します。 |
| 要素に仕様が欠落しています |
この規則では、仕様を持たないすべての要素を特定します。 |