UML 静的クラス図でオーバーライドされたメソッドを表示するための規則はありますか? 質問する

UML 静的クラス図でオーバーライドされたメソッドを表示するための規則はありますか? 質問する

クラスがHumanスーパークラスからいくつかのメソッドをMammal変更せずに継承し ( などlaysEggs: () -> false)、他のメソッド ( などpostsToStackOverflow : () -> true) をオーバーライドする場合、 の UML 静的クラス図の の部分で異なるメソッドがどのように示されるかに違いはありますかHuman? たとえば、 のボックスにはオーバーライドされたメソッドのみが表示されますかHuman、それともオーバーライドされたメソッドに対する注釈とともに両方が表示されますか?

ベストアンサー1

今はあります。匿名の人が私に調査を依頼しました2.5.1. 仕様102ページにはこう書いてある

分類子によって継承されたメンバーは、メンバーが継承されていない場合に表示されるテキスト表現の前にキャレット '^' 記号を付加することで、その分類子の図に表示できます。したがって、継承されたプロパティの表記は次のように定義されます。

<inherited-property> ::= ’^’ <property>

<property>9.5.4で指定されています。

同様に、継承されたコネクタの表記は次のように定義されます。

<inherited-connector> ::= ’^’ <connector>

<connector>11.2.4で指定されます。

継承されていることを示すために、Classifier の継承されたメンバーであるすべての NamedElement に同様の表記法を使用できます。

継承されたメンバーは、継承されていないメンバーと区別するために、明るい色で表示されることもあります。準拠した実装では、このオプションを提供する必要はありません。

これは NamedElement に適用されるため、属性や操作にも使用できます。

仕様自体は、115 ページの図 9.11 と 173 ページの図 10.9 を除いて、キャレット表記を (まだ) あまり使用していません。


2.5 以前の仕様では、答えは「いいえ、ありません」でした。メソッドがオーバーライドされているかどうかは、継承元のクラスのメソッドを調べることによってのみわかります。

おすすめ記事