web-dev-qa-db-ja.com

静的メソッドの使用法を示す方法UMLクラス図

UMLクラス図で静的メソッドの使用を表示するにはどうすればよいですか?

class A{
    public static void test(){
    }
}

class B{
    public void b(){
    A.test();
    }
}

関係を示すクラス図はどのようになりますか?違いがあれば、UML 2.0が用意されます。

14
Nicolas

静的メソッドを表示するには、静的メソッドの名前に下線を付けます。詳細については、 ここ を参照してください。

その関係をナビゲートすることに関しては; class Bは、class Aの存在に依存しています。クラスBはクラスAに対して「使用依存関係」を持っていると言えます

class B ----uses----> class A

お役に立てれば。

14
RobertMS

@RobertMSは正しいです。

別の代替方法は、stereotypesを使用することです。

..............................................................
....+----------------------------------------------------+....
....|                StringUtilityClass                  |....
....+----------------------------------------------------+....
....| [+] void: lowerCase()              <<non virtual>> |....
....| [+] void: upperCase()              <<non virtual>> |....
....| [+] String: toString()                <<override>> |....
....+----------------------------------------------------+....
....| [+] String: LowerCaseCopy(String Value) <<static>> |....
....| [+] String: UpperCaseCopy(String Value) <<static>> |....
....| [+] String: ReverseCopy(String Value)   <<static>> |....
....+----------------------------------------------------+....
..............................................................

一部のプログラミング言語のベストプラクティス、特にCの大文字と小文字を区別する構文では、静的関数を大文字にし、残りの関数はキャメル小文字のままにします。

乾杯。

10
umlcat

静的メソッドと属性を表示するには、UMLクラス図で下線を引きます。 ML蒸留 p.66または MLスーパーストラクチャー仕様)のセクション7.3.19(機能 を参照してください。

静的機能には下線が引かれています。

クラスBとクラスAの関係(BはAで静的メソッドのみを使用)を表示するには、関連付けではなく、依存関係を使用します。関連付けは常に、UMLスーパーストラクチャー仕様のセクション7.3.3(関連付け)のように、両端のクラスのインスタンスの間にあります。

関連付けは、型付きインスタンス間で発生する可能性のある意味上の関係を指定します。

しかし、クラスBは、仕様のセクション7.3.12のように、クラスAに依存です。

依存関係とは、1つまたは一連のモデル要素が仕様または実装のために他のモデル要素を必要とすることを示す関係です。

ステレオタイプとの依存関係の性質を明確にすることはおそらく価値があります。あなたuseステレオタイプを使用できますが、これは非常に一般的であり、実際にはインスタンス間の標準的な関連付けを包含します(ただし、明示的に見せる)。 FowlerがUML Distilledで言うように、

多くのUML関係は依存関係を意味します。 [彼の例の1つで]注文から顧客へのナビゲート可能な関連付けは、注文が顧客に依存することを意味します。

どのステレオタイプを使用するかの基準はないようです。依存関係の性質を明確にするためにusesStaticallyを使用しました。あれは

B --usesStatically--> A

(または、クラスBに静的フィールドとしてAのインスタンスがある場合、クラス図でBを明示的に表す場合はB--containsStatically--> Aのようなものを使用します。それ以外の場合は、タイプAの下線付きの静的属性を使用します。 B)

8
Stuart Rossiter