问题标签 [communication-diagram]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
uml - 协作/沟通图是否有“OPT”片段?
我的序列图中有一个 OPT(可选)片段,我想在我的协作图中绘制它,但不确定协作中是否存在诸如 OPT 片段网络之类的东西?我用谷歌搜索并找不到任何解决方案。
我的一位朋友告诉我使用:[条件]:someFunction()
但我不知道这是否是正确的方式
uml - 分析阶段的序列图和序列图设计阶段的序列图有什么区别?
谁能解释一下每个阶段的这些图表有什么区别。谢谢
language-lawyer - UML 通信图中涉及的对象之间的关系
简而言之
在 UML 通信图中,相互交互的对象在视觉上用线条连接,顺序消息可以沿着这些线条在两个方向上循环。对象之间的线通常表示链接,即关联的实例。但是对象可以交换消息,即使它们没有关联(例如,如果一个对象作为参数传递或返回给另一个对象)。
我希望表示没有关联的对象之间的这种消息交换。但我想消除歧义并澄清所涉及的对象之间没有直接关联。UML 规范是否允许在不创建用户定义的原型的情况下表达这一点?
此外,当前的 UML 规范是否在某处为通信图中交互的对象之间的关系定义了一个术语?是否可以在图中进一步指定通信对象如何相互了解?
在提出问题之前进行了更多研究
我目前正在重读 Grady Booch、James Rumbaugh 和 Ivar Jacobson 的“ UML 用户指南,第 2 版”,这是一本以易于阅读的明文解释 UML 规范的好书。这是本书的更新 UML 2 版本,我可以映射回他们的大部分声明的 UML 2.5.1 规范。
然而,在第 16 章关于交互的内容中,他们解释了对象通过链接进行通信:
链接指定一个对象可以将消息发送到另一个(或相同)对象的路径。(...) 如果您需要更准确地了解该路径的存在方式,您可以使用以下约束之一装饰链接的适当末端:
- 关联:(...) 对象通过关联可见
- self: (...) 对象是可见的,因为它是操作的调度程序
- global: (...) 对象是可见的,因为它在封闭范围内
- local: (...) 对象是可见的,因为它在本地范围内
- 参数:(...)对象是可见的,因为它是一个参数
在第 19 章中,他们为通信图解释了交互中涉及的对象显示为相互关联的:
您将连接这些对象的链接渲染为该图的弧。链接可能有角色名来识别它们。最后,您使用对象发送和接收的消息来装饰这些链接。
这看起来很简单。于是我找了对应的UML 2.5.1规范:
- 链接仅定义为关联的实例。
- 对于通信图,17.9 节中根本没有提到链接和通信通道。图 17.26 显示了相互关联的对象(即生命线),但连接对象的线和表示沿这条线的消息的箭头似乎都以图形方式定义为“消息”。这对我来说似乎很模棱两可。
- 此外,我还没有找到任何关于约束、关键字或预定义的原型的参考,这些参考可以描述对象在特定图表中如何相互了解,并且可以证明它们之间的通信渠道是合理的。
- 我可以找到在过时的 UML 1.4 规范中定义为构造型的
«association»
,«local»
,«global»
,«parameter»
(具有与上述相同的含义),但在当前规范中不再存在。
因此我的问题。
oop - 使用Java中的一段代码绘制协作图
我必须为这段代码编写协作图:
其中 mp3 和 wav 是从类 Track 继承的类,它们具有带两个参数的构造函数。此外,函数“add”采用 Track 类型的参数。所以,我认为我们应该有 3 个自调用(对于方法 add 的每个调用),因为那是类列表中的函数,然后是一个(也是自调用)用于函数播放的函数。但不确定如何包含 mp3 类和 wav 类的对象,因为我们只调用 Playlist 类的函数。所以,我不确定为什么我们从 mp3(wav) 类而不是从类播放列表中调用函数播放。另一方面,我们从播放列表调用函数 play。