带有UML类图的可选参数

带有UML类图的可选参数,uml,Uml,在UML类类型图中是否有指定方法可选参数的官方语法 例如,我有一个方法: public function abc( $arg = 0) { ... return void; } 如何指出$arg是可选参数及其默认值?UML2.5对参数列表有以下定义 是以下格式的操作参数列表::=[',']* ::= [] ‘:’ [‘[‘’]’] [‘=’ ] [‘{‘ [‘,’ ]*“}”] 其中: ::='in'|'out'|'inout'(如果省略,则默认为'in'。 是参数的名称。 是指定

在UML类类型图中是否有指定方法可选参数的官方语法

例如,我有一个方法:

public function abc( $arg = 0) { ... return void; }

如何指出$arg是可选参数及其默认值?

UML2.5对参数列表有以下定义

  • 是以下格式的操作参数列表::=[',']*
    ::= []  ‘:’ 
    [‘[‘’]’] [‘=’ ] [‘{‘  [‘,’
    ]*“}”]
其中:

  • ::='in'|'out'|'inout'(如果省略,则默认为'in'。
  • 是参数的名称。
  • 是指定参数类型的表达式。
  • 是参数的多重性。(见乘法运算-第7.5款)。
  • 是定义参数默认值的值规范的表达式。
  • 表示应用于参数的其他属性值。
所以你可以用

+abc($arg:Integer=0)


类型表达式不是可选的,所以您不能忽略它,但我想您可以考虑一种约定,在该约定中,您可以使用UML 2.5规范第9.4.3.4章参数p中的
未指定

。107:

参数是参数的规范,用于将信息传入或传出BehavioralFeature调用。参数的类型和多重性限制了可以传递的值、数量以及值是否有序。多重性定义了在运行时传递给参数的值的上下限。下限为零表示该参数是可选的。使用参数的操作可以在没有可选参数值的情况下执行。下限大于零意味着参数值需要在操作执行期间的某个时间到达

如果为参数指定了defaultValue,则仅当且仅当在调用BehavioralFeature时未提供任何参数时,才会在调用时对其求值并将其用作此参数的参数


然而,多样性通常不会显示在类图表示上。信息只存储在元数据中。至少我从未见过任何工具使用Geert的答案所指出的符号。

是“[variable\u name:data\u type=default\u value]”吗?在UML中,我们使用术语
操作
来表示你所称的
方法
@GeertBellekens Hehe,在上层结构中搜索
方法
:-)@ThomasKilian
方法
是实现
操作的
行为
。在这种情况下,我们讨论的是规范,而不是实现,因此
操作
可能需要编写
+abc($arg:Integer[0..1]=0)
来显示可选性?可以,但多样性是可选的,因此允许忽略它。如果一个参数有一个默认值,我想这意味着它是可选的。
Integer[0..1]
意味着该方法根本不需要
$arg
中的值,但它将始终有一个值,或者由您提供,或者由默认值提供。