8

いくつかの Java コードを表す UML ダイアグラムを作成しようとしています。

クラスには、オーバーロードされたメソッドがあります。

私の知る限り、メソッドのパラメーターは UML ダイアグラムには表示されません。

UML でメソッドのオーバーロードを表現するにはどうすればよいですか?

ありがとう。

4

5 に答える 5

4

オーバーロードについて話すとき-たとえば、クラスに同じ名前で異なる署名(パラメーター、ターゲット言語に応じて値を返す可能性があります...)のメソッドがさらにある場合は、署名を提供する必要があります。UML では、メソッド パラメーターを使用できないとは指定されていません。

于 2010-01-14T12:23:27.237 に答える
4

サブクラスでは、オーバーライドしたいメソッドと同じシグネチャを持つメソッドを指定し、メモ {​​redefines} をメソッドに追加します。例えば:

+doSomething(p:AThing):int{redefines}

これは、doSomething() メソッドがスーパー クラスのメソッドをオーバーライドすることを意味します。はい、メソッドのパラメーターは図に示されています。例のように、p は AThing 型のパラメーターです。

于 2008-12-01T01:36:24.663 に答える
2

ダイアグラム全体または個々のクラス/インターフェースの表示オプションを確認してください。ほとんどの UML ツールには、メソッドのパラメーター リストを表示するオプションがあります。

于 2008-12-01T00:45:54.080 に答える
0

上記の答えのほとんどは、特定の質問に対して正しいです。Alepuzio、Vincent、および bmatthews68 はすべて、状況に応じて理にかなった答えを持っています。

**質問が再定義よりも同じシグネチャを持つスーパークラスメソッドのオーバーライドである場合は、正しい定義です。異なる引数をとる同じメソッドを作成するという点でオーバーロードしている場合、これを構造的にモデル化することはできないと思います。たとえば、動作に関するシーケンス図でこれを示すことができますが、実際にはそうではありません。

+doSomething(p:AThing):int{redefines} は正しいです。これは Vincent が述べたものです。

** 問題/質問が、通常、ほとんどの UML ツールの設定である図に視覚的に表示されないパラメーターの周りにある場合。

** 何をしているのかをさらに明確にしたい場合は、キーワード <> を使用します。また、キーワードはメタモデルの一部ではないため、ステレオタイプではないことに注意してください。

于 2009-05-21T18:51:25.473 に答える