我应该使用哪种元素类型在SysML中对消息及其数据元素进行建模?

时间:2018-10-26 14:37:09

标签: modeling sysml magic-draw

在SysML中,当对消息进行建模时,我很难理解应该使用哪种元素类型来定义它,它的元素以及它所流经的端口。

我假设是:

  • 原始的 阻止
  • 更专业的 InterfaceBlock

两者都可以键入 代理端口 (如果我理解正确,则以前称为 流端口 ),或键入其他功能块中的大多数其他属性都可以构建完整的消息接口或端口系统(直接端口或嵌套端口)。如果基本消息定义是普通的 阻止 ,那么何时创建 流属性 ,键入 阻止 ,以便实际上可以通过端口从一个任务流到另一个任务?

接口块 应该出现在其中,以便键入端口,对吗?这是否意味着我使用它直接定义消息,还是取决于我的端口方案(即是否嵌套端口以及将端口嵌套到什么级别)?

我想这可以归结为当您定义事物(即类/块)以及定义事物是模型中流动的量(某种形式的消息传递)时的困惑从一个任务或硬件到另一个任务。

P.S。我使用MagicDraw作为SysML工具,但我认为这不会影响核心答案。

1 个答案:

答案 0 :(得分:0)

答案是由我的团队提出的:

  1. 使用 完整端口 作为原始网络接口的物理层。
  2. 使用 阻止 键入网络接口,包括:
    • 代表从端口流出的物理项目的流量属性,例如总电流(功率)。
    • 用于物理嵌套端口的
    • 嵌套 完整端口 元素,例如构成物理以太网端口的引脚。输入另一个 block
    • 嵌套的<>元素,用于通过网络接口(例如套接字/连接)进行逻辑/抽象数据流
  3. 使用 接口块 使用键入每个逻辑连接(嵌套的 代理端口 )。 接口块 ,其中包含以下内容:
    • 表示数据块(例如消息)的流属性,这些数据块作为一组通过连接发送
    • 用于定义该连接特征的值属性,例如源和目标IP地址和端口号,通信丢失和重试信息等。请注意,其中的某些属性最好作为标签中的元数据,作为单独的构造型的一部分。
  4. 使用 ValueType 键入连接的数据流属性,其属性是该数据块的各个数据元素(即消息元素)。
  5. 使用自定义名称(如“数据元素”)创建新的构造型,并为每个数据元素所需的任何元数据添加标签,例如长度(以位或字节为单位),消息中的基础类型,任何单位或比例因子,消息中的位置等。

您甚至可以在此时创建一​​个通用表,该表将列出给定消息或所有消息中的每个数据元素,并添加所有相关的 数据元素 标记为列,并将其用作每个消息和每个消息的数据元素的当前规范,并可以更轻松地直接在该表中编辑所有信息。

为什么要对流过 代理端口 的数据块使用 ValueTypes ?因为这样,它们将通过两个之间的连接器显示为 Information Flow 项目,而不是 Item Flow 项目 内部框图(IBD) 上的> 代理端口 。即当我发送由 Block 键入的物理项目时,它作为 Item Flow 发送,但是当我发送一个逻辑项,例如数据,它由 ValueType 键入,并作为 Information Flow 发送>。

这是一个起点-我们发现最初嵌套值类型定义存在问题,因此选择了一个更加扁平的消息定义,该消息定义在单个 ValueType 中包含了消息的所有方面/ strong>,而不是嵌套它们。我敢肯定有解决方法,但是您想变得多么复杂?