Uml 多机器人协作系统的组件图

Uml 多机器人协作系统的组件图,uml,multi-agent,Uml,Multi Agent,我想做一个多机器人协调系统的组件图 我想在组件图上显示,每个“机器人”组件的子组件“感知”通过接口相互通信。事实上,所有机器人的传感器都用于估计每个机器人的位置/速度,这是一种协作传感 我该怎么做?我是否应该有一个由“机器人”组件提供和要求的接口 谢谢。对于这种类型的系统,您可以充分利用UML的强大功能,制作真正有效的文档。您很可能需要以下部分(或全部)图表: 组件图-显示“全局图”和系统的主要部分及其接口和依赖关系。组件在这里是“黑匣子”,将在下图中详细说明 复合结构-非常适合打开组件并显示其

我想做一个多机器人协调系统的组件图

我想在组件图上显示,每个“机器人”组件的子组件“感知”通过接口相互通信。事实上,所有机器人的传感器都用于估计每个机器人的位置/速度,这是一种协作传感

我该怎么做?我是否应该有一个由“机器人”组件提供和要求的接口


谢谢。

对于这种类型的系统,您可以充分利用UML的强大功能,制作真正有效的文档。您很可能需要以下部分(或全部)图表:

  • 组件图-显示“全局图”和系统的主要部分及其接口和依赖关系。组件在这里是“黑匣子”,将在下图中详细说明
  • 复合结构-非常适合打开组件并显示其内部结构。您可以将“黑匣子”及其接口作为这项工作的输入。每个组件(外部组件除外)都应在内部建模。这种图允许您使用“整体-部分”范式将内部结构建模为互连元素的网络。这里将使用以前检测到的接口来显示它们实际上是如何实现的
  • 类图。如果需要进一步指定内部结构的元素(它们的属性、方法、关联等),这是要绘制的图表
  • 状态机。在嵌入式实时系统中,很多类都是活动的并且具有状态。识别这些类(甚至组件),并使用状态图显示其内部逻辑
  • 序列和交互作用。这些图表将帮助您指定系统的不同元素如何协同工作以实现不同的场景
  • 部署图。由于robot是一个硬件部件,并且这些组件在其上运行(如果有多个硬件节点,也可以在其上运行),因此您可能希望展示这些组件是如何分布在硬件结构上的
  • 您还可以查看时序图,这是一个相对较新的时序图,专门为实时系统设计。如果您需要表示时间限制、持续时间等,它可能会很方便
  • 如果您是UML新手,我建议您从组件和部署开始。它们相对容易学。当你感到理解并需要进一步表达你的想法时,深入到复合结构和状态中。最后是上课

    玩得开心

    示例

    这就是我理解您的模型及其元素的方式。这扩展了我的评论

    注释和图表注释中有解释

    组件图:

    组件实例图:

    请注意,第一个图应该扩展为定义所有有效连接可能性的“连接规则”。只有一个中央经理吗?每个机器人必须连接到CentralManager吗?机器人能自言自语吗?等等


    这些问题和其他问题应该分别建模。根据具体的细节,在类图上绘制图表。

    这取决于您在绘制图表时的严格程度。我认为,当您使用UML图来传达总体设计而不是细节时,它确实很好。在这种情况下,我认为您可以使用一个简单的注释,指向指定合作感知的感知组件,否则您将以一个难以理解的图表结束,这是我的观点。感谢您的建议。我认为这是一个好的选择。但是,我想知道是否有“最佳实践”用于使用组件图对多代理系统进行建模?我不知道这类系统中的最佳实践,但通常,当您在组件图中使用接口时,因为您试图进行通信,所以您可以将实现组件与另一个可以通过此接口进行通信的“不同”组件交换。在这种情况下,它们本质上是相同的组件,因此我认为这个“自身接口”详细说明了它最好在类图中指定,(如果这个接口是编程接口)如果我理解得很好,这意味着实际上,我不必在组件图中显示机器人之间的通信。但是,我可以在类图中显示这一点。然而,在类图中,我不能比使用关联“1--*”更详细地介绍。如果我想精确地展示机器人之间共享的内容(例如,机器人只与其他机器人共享激光数据,而不共享视频数据),用两个实例“:Robot”和“:Robot”制作组件图,并显示所需和实现的接口,这是标准吗?谢谢您的回答。然而,这有点笼统,对于我的特定系统,我试图表述的问题是:是否可以在组件图中描述同一组件的实例之间的交互。我已经毫无问题地定义了robot组件和“中央管理器”组件之间的接口。但不能在“robot”组件的实例之间。我可以构建一个序列图来精确地显示这些交互,但是我想通过接口来显示机器人之间的交互。您认为它可行吗?组件图显示的是结构,而不是动态方面(行为),因此您不能使用组件图来显示任何类型的交互。但是,您可以使用序列图或交互图和组件实例(相同组件或不同组件)来显示这种通信。一个实例可以是e