【问题标题】:Can I use a communication diagram for a high-level view?我可以将通信图用于高级视图吗?
【发布时间】:2021-07-06 13:22:30
【问题描述】:

使用通信图来建模包之间的通信而不是对象之间的通信是否正确?我想在更高层次上建模通信,但我不想滥用图表。 作为示例,我向您展示了一个使用两个图表建模的用例。在序列图中,所有对象都出现了,因为它是详细实现的,而通信提供了更高级别的视图。我想知道它在概念上是否正确。

【问题讨论】:

  • 包如何通信?所以不行。不过,您可以创建组件并使用接口。

标签: package uml interaction sequence-diagram communication-diagram


【解决方案1】:

真的是关于 UML 包吗?

UML 将包定义为在命名空间中将事物打包在一起的一种方式:

Package 是其成员的命名空间,其中包含通过 packagedElement 关联的那些元素(称为拥有或包含)以及导入的那些元素。

UML 提供了使用包之间的依赖关系、合并包的名称以及诸如此类的方法。但是包本身没有行为,因此无法通信。

会不会是组件?

但是,您的图表建议使用某种形式的交流和行为的分类器。您的“包”的名称似乎暗示了比简单类更复杂的东西。

UML 定义组件:

组件表示系统的模块化部分,它封装了其内容,并且其表现形式在其环境中是可替换的。

UML 组件有两个重要特征:

  • 它们是自包含的,即它们依赖于其他元素,而其他元素仅通过明确定义的接口依赖于它们。
  • 它们是可替代的,即一个组件可以被另一个提供相同“合同”的组件替换,前提是它们使用并提供相同的接口。

在实践中,某些组件边界可能会与包边界匹配(巧合?),这可能会造成一些术语混淆。

通讯图

如果您所谓的“包”与实际的 UML 组件相匹配,尤其是考虑到这两个特征,您可以像以前一样完美地考虑通信图。

无关的旁白:我知道这是一种常见的做法。但原则上,诸如序列图和通信图之类的交互图显示了“封闭分类器的行为单元”,即原则上在系统内部的东西,而根据定义,参与者在系统外部。

【讨论】:

  • 我认为你说的对,我在通信图中所说的包实际上是组件。我画的每个通信图框都代表一组类,它们是给定软件层的一部分。相反,序列图中的框是对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
相关资源
最近更新 更多