如何在 UML 序列图中表示来自传感器的反馈

How to represent feedback from sensor in UML Sequence Diagram

我对使用 UML 序列图建模我的系统有疑问(是的,我知道状态机图更简单,但我需要一个序列图)。

考虑一个简单的火车门系统,其中有 (A) 自动控制器向 (B) 机械开启器(执行器)发出命令以打开或关闭门。该系统有一些 (C) 传感器 - 发送反馈通知火车是否停止;火车是否与站台对齐;是否有紧急情况;门是否打开、关闭或部分打开 opened/closed 并且;如果门口有人或物体 - 以及 (D) 门本身。

控制器根据传感器的反馈发出开门和关门的命令(例如,如果列车停止,在站台对齐并且门已关闭,则可以安全打开它)。因此,我需要在发送命令之前收到反馈。我如何在 UML 序列图中表示传感器及其信息?将每个传感器视为一个演员?将反馈视为找到的消息? 我无法使用 "pure UML" 来表示,需要为实时系统使用一些扩展吗?

谢谢


解决方案:我将每个传感器表示为生命线。他们在一个循环中向控制器发送反馈,并根据反馈我能够发出命令。 我不确定这是否正确。

传感器就像任何其他物体一样是生命线。它可以像任何对象一样发送消息。这些很可能是异步消息。但是根据协议,这也可能是同步的。如果需要,您可以向消息添加时间限制:https://www.uml-diagrams.org/sequence-diagrams.html

我想您可能正在寻找这样的东西:

ZenUML生成。只需将以下代码放入编辑器即可生成上图:

@Starter(AutomaticController)
MechanicalOpener.tryOpen(door) {
  stoped = Sensor1.isTrainStopped()
  aligned = Sensor2.alignedAtPlatform()
  closed = Sensor3.isDoorClosed()

  if (stopped_and_aligned_and_closed) {
    open(door)
  }
}