いくつかの Java コードを表す UML ダイアグラムを作成しようとしています。
クラスには、オーバーロードされたメソッドがあります。
私の知る限り、メソッドのパラメーターは UML ダイアグラムには表示されません。
UML でメソッドのオーバーロードを表現するにはどうすればよいですか?
ありがとう。
いくつかの Java コードを表す UML ダイアグラムを作成しようとしています。
クラスには、オーバーロードされたメソッドがあります。
私の知る限り、メソッドのパラメーターは UML ダイアグラムには表示されません。
UML でメソッドのオーバーロードを表現するにはどうすればよいですか?
ありがとう。
オーバーロードについて話すとき-たとえば、クラスに同じ名前で異なる署名(パラメーター、ターゲット言語に応じて値を返す可能性があります...)のメソッドがさらにある場合は、署名を提供する必要があります。UML では、メソッド パラメーターを使用できないとは指定されていません。
サブクラスでは、オーバーライドしたいメソッドと同じシグネチャを持つメソッドを指定し、メモ {redefines} をメソッドに追加します。例えば:
+doSomething(p:AThing):int{redefines}
これは、doSomething() メソッドがスーパー クラスのメソッドをオーバーライドすることを意味します。はい、メソッドのパラメーターは図に示されています。例のように、p は AThing 型のパラメーターです。
ダイアグラム全体または個々のクラス/インターフェースの表示オプションを確認してください。ほとんどの UML ツールには、メソッドのパラメーター リストを表示するオプションがあります。
上記の答えのほとんどは、特定の質問に対して正しいです。Alepuzio、Vincent、および bmatthews68 はすべて、状況に応じて理にかなった答えを持っています。
**質問が再定義よりも同じシグネチャを持つスーパークラスメソッドのオーバーライドである場合は、正しい定義です。異なる引数をとる同じメソッドを作成するという点でオーバーロードしている場合、これを構造的にモデル化することはできないと思います。たとえば、動作に関するシーケンス図でこれを示すことができますが、実際にはそうではありません。
+doSomething(p:AThing):int{redefines} は正しいです。これは Vincent が述べたものです。
** 問題/質問が、通常、ほとんどの UML ツールの設定である図に視覚的に表示されないパラメーターの周りにある場合。
** 何をしているのかをさらに明確にしたい場合は、キーワード <> を使用します。また、キーワードはメタモデルの一部ではないため、ステレオタイプではないことに注意してください。