在 UML 静态 class 图中是否有显示重写方法的约定?
Is there a convention for showing overridden methods in UML static class diagrams?
如果class Human
继承superclass的部分方法Mammal
不变(如laysEggs: () -> false
)并覆盖其他方法(如postsToWhosebug : () -> true
),在 Human
的 UML 静态 class 图部分中,不同方法的指示方式是否有任何区别?例如,Human
的框中是否只显示覆盖的方法,或者两者都显示,并为覆盖的方法添加一些注释?
现在有了。一些匿名让我深入研究 2.5.1. specs。在第102 它说
Members that are inherited by a Classifier may be shown on a diagram of that Classifier by prepending a caret ’^’ symbol to the textual representation that would be shown if the member were not inherited. Thus the notation for an inherited Property is defined like this:
<inherited-property> ::= ’^’ <property>
where <property>
is specified in 9.5.4.
Similarly, the notation for an inherited Connector is defined like this:
<inherited-connector> ::= ’^’ <connector>
where <connector>
is specified in 11.2.4.
Analogous notations may be used for all NamedElements that are inheritedMembers of a Classifier to indicate that they are inherited.
Inherited members may also be shown in a lighter color to help distinguish them from non-inherited members. A conforming implementation does not need to provide this option.
由于它适用于 NamedElements,因此它也可用于属性和操作。
除了第 9.11 页的图 9.11 之外,规范本身(还)没有大量使用插入符号。第 115 页和图 10.9。 173.
在 2.5 及之前的规范中,答案是:不,没有。您只能通过检查继承自 class 的方法来判断方法是否被覆盖。
请参阅@qwerty_so 回答以了解更多最新规范。我在下面提出的符号来自 2008 年之前过时的图表教科书和大学教学。
虽然 UML 标准中没有指定,但以下是一种表示法,表示一个函数何时覆盖另一个函数:
+ toString() : String <<override>>
我复制了方法声明,如果我想表明继承的 class 将覆盖它,在其他情况下只需省略声明。
如果class Human
继承superclass的部分方法Mammal
不变(如laysEggs: () -> false
)并覆盖其他方法(如postsToWhosebug : () -> true
),在 Human
的 UML 静态 class 图部分中,不同方法的指示方式是否有任何区别?例如,Human
的框中是否只显示覆盖的方法,或者两者都显示,并为覆盖的方法添加一些注释?
现在有了。一些匿名让我深入研究 2.5.1. specs。在第102 它说
Members that are inherited by a Classifier may be shown on a diagram of that Classifier by prepending a caret ’^’ symbol to the textual representation that would be shown if the member were not inherited. Thus the notation for an inherited Property is defined like this:
<inherited-property> ::= ’^’ <property>
where
<property>
is specified in 9.5.4.Similarly, the notation for an inherited Connector is defined like this:
<inherited-connector> ::= ’^’ <connector>
where
<connector>
is specified in 11.2.4.Analogous notations may be used for all NamedElements that are inheritedMembers of a Classifier to indicate that they are inherited.
Inherited members may also be shown in a lighter color to help distinguish them from non-inherited members. A conforming implementation does not need to provide this option.
由于它适用于 NamedElements,因此它也可用于属性和操作。
除了第 9.11 页的图 9.11 之外,规范本身(还)没有大量使用插入符号。第 115 页和图 10.9。 173.
在 2.5 及之前的规范中,答案是:不,没有。您只能通过检查继承自 class 的方法来判断方法是否被覆盖。
请参阅@qwerty_so 回答以了解更多最新规范。我在下面提出的符号来自 2008 年之前过时的图表教科书和大学教学。
虽然 UML 标准中没有指定,但以下是一种表示法,表示一个函数何时覆盖另一个函数:
+ toString() : String <<override>>
我复制了方法声明,如果我想表明继承的 class 将覆盖它,在其他情况下只需省略声明。