如何在UML中引用包含其类名的操作?

如何在UML中引用包含其类名的操作?,uml,Uml,我喜欢在我的文档中使用UML符号来表示操作(即使在UML图之外,也包括纯文本文档)。例如,我可能会这样写:“为了初始化JDBCDriverManager,请使用getConnection(url:String)方法”。 当上下文(即定义操作的类)已知时,这种方法很有效 我想知道规范是否指明了一种推荐的表示法,用于引用一个操作,包括定义该操作的类?然后我可以编写类似于“为了初始化JDBC,使用DriverManager#getConnection(url:String)方法” 使用散列符号作为分隔

我喜欢在我的文档中使用UML符号来表示操作(即使在UML图之外,也包括纯文本文档)。例如,我可能会这样写:“为了初始化JDBC
DriverManager
,请使用
getConnection(url:String)
方法”。 当上下文(即定义操作的类)已知时,这种方法很有效

我想知道规范是否指明了一种推荐的表示法,用于引用一个操作,包括定义该操作的类?然后我可以编写类似于“为了初始化JDBC,使用
DriverManager#getConnection(url:String)
方法”


使用散列符号作为分隔符(受Javadoc表示法的启发)是可行的,但如果存在这种情况,我宁愿使用UML标准表示法。

UML本身并没有为此提供语法。在UML规范本身中,他们通过章节命名明确定义了上下文(例如类),然后引用操作而无需进一步的上下文。当交叉引用类被命名时,例如,调用类bar实例的操作foo。
但是要小心,不要混淆类和对象。非静态操作对类实例的数据进行操作,而不是对类本身进行操作。因此,当从不同的上下文引用操作时,对象(例如,通过关联或角色名)是必需的。

UML本身不提供语法。在UML规范本身中,他们通过章节命名明确定义了上下文(例如类),然后引用操作而无需进一步的上下文。当交叉引用类被命名时,例如,调用类bar实例的操作foo。
但是要小心,不要混淆类和对象。非静态操作对类实例的数据进行操作,而不是对类本身进行操作。因此,当从不同上下文引用操作时,需要对象(例如,通过关联或角色名)。

使用限定名称:
DriverManager::getConnection(url:String)


限定名称是UML规范的一部分,但显然对于操作,参数被排除在外。

使用限定名称:
DriverManager::getConnection(url:String)


限定名称是UML规范的一部分,但显然,对于操作,参数被排除在外

如果有人认为我错了,请评论,我想知道原因。考虑到有两个人(除了我之外)遗漏了它,这是一个极好的回答!根据OMG UML2.5.1规范第7.4.3.1节(公共结构/名称空间/语义/名称空间),您是对的:“名称空间为名称元素提供了一个容器,称为它自己的成员。(……)如果名称为N的命名空间的成员是名称为x的NamedElement,则该成员可以由形式为N::x的限定名引用。(…)因为命名空间本身就是NamedElement,NamedElement的完全限定名可能包括多个命名空间名,例如N1::N2::x。“…其他示例包括第7.4.5.2节(公共结构/名称空间/示例/导入)中的
Types::Integer
VisibilityKind::public
,附录C表C.1关键字,
LoopNode::loopVariable
,第6.1节(附加信息/规范简化)…之所以允许使用这种表示法,是因为
是一个
封装的分类器
,本身是一个
结构化分类器
,本身是一个
分类器
,本身是一个
命名空间
;和
包含
属性
操作
作为
ownedMembers
。最后请注意,不必排除参数。第9.6.4节(分类/操作/符号)指出,当提及
操作时,参数可能会被抑制,但括号可能不会。你是对的,规范在这方面并不明确。(这并不奇怪,众所周知UML规范包含许多类似的小缺陷。)我认为可以公平地说,其目的是使用相关符号部分中显示的约定编写
之后的部分。(它还说:“‘重新定义’”,“可能有限制的地方”,如果符号本身不适用于零件,这将是非常奇怪的。)无论如何,我并不觉得受到规范本身不遵循的约束约束约束……如果有人认为我错了,请评论,我想知道原因。回答很好,考虑到还有两个人(除了我)错过了!根据OMG UML2.5.1规范第7.4.3.1节(公共结构/名称空间/语义/名称空间),您是对的:“名称空间为名称元素提供了一个容器,称为它自己的成员。(……)如果名称为N的命名空间的成员是名称为x的NamedElement,则该成员可以由形式为N::x的限定名引用。(…)因为命名空间本身就是NamedElement,NamedElement的完全限定名可能包括多个命名空间名,例如N1::N2::x。“…其他示例包括第7.4.5.2节(公共结构/名称空间/示例/导入)中的
Types::Integer
VisibilityKind::public
,附录C表C.1关键字,
LoopNode::loopVariable
,第6.1节(附加信息/规范简化)…之所以允许使用这种表示法,是因为
是一个
封装的分类器
,本身是一个
结构化分类器
,本身是一个
分类器
,本身是一个
命名空间
;和
包含
属性
操作
作为
ownedMembers
。最后请注意,不必排除参数。第9.6.4节(分类/操作/符号)指出,当提及
操作时