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



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

我假设它是:

  • 原始
  • 更专业的接口块

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

接口块 应该出现在那里的某个地方,以便键入端口,对吧? 这是否意味着我使用它来直接定义消息,或者这取决于我的端口方案(即我是否嵌套端口以及嵌套到什么级别(?

我想这归结为当你定义一个东西(即一个类/块(和当你定义这个东西是在你的模型中流动的数量(某种流 - 消息从一个任务或硬件传递到另一个(。

附言我正在使用MagicDraw作为SysML工具,但我认为这不会影响核心答案。

答案,由我的团队开发:

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

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

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

这是一个起点 - 我们最初发现了嵌套 valuetype 定义的问题,因此选择了更扁平的消息定义,该定义在单个ValueType中包含消息的所有方面,而不是嵌套它们。 我相信有办法解决这个问题,但你想变得多么复杂?

最新更新