0

我目前正在创建一个嵌入式系统的 UML 模型,以帮助描述相关的软件需求规范。

我有一个物理压力传感器,它输出一个电压,电压值和测量的压力之间存在确定的关系。由于该模型用于引发 SwRS,因此我决定通过一个抽象电压-压力关系并通过其压力属性公开当前测量压力的类来对压力传感器进行建模。

在此处输入图像描述

我使用了一个属性而不是类似的操作getPressure():Real,因为压力传感器连续测量压力,不仅在需要时。

如果压力变为负值,则认为压力传感器已损坏。

我想使用 UML 来表示此事件与软件显示警报消息所用时间之间的时间限制。

我相信我所追求的事件是ChangeEvent,即when(PressureSensor.pressure < 0)。

我相信可以用于此的图表类型是序列图,但我无法表达我想要什么并遵守 UML 2.5 规范。

例如,如果我使用序列图,我可以用这种方式表达这个概念。

在此处输入图像描述

问题是那个页面。UML 2.5 规范的 572指出

消息的签名指的是操作或信号。

这意味着签名不能引用 ChangeEvent,因此我的图表不遵守UML 2.5 规范

我也想过使用活动图,但我无法找到一种正确的方法来使用活动图来达到我的目的。

4

2 回答 2

0

您有一个功能性和非功能性需求:

  1. “如果压力降至 0 以下,用户界面应显示警告消息。”
  2. “压力警告信息应在压力降至0以下后10ms内显示。”

两者都可以用状态图表示。

在此处输入图像描述

这里,PressureSensor.Pressure < 0是一个变化事件,UserInterface.showMessage("WARNING: Pressure below 0")是一个效果。时序要求被建模为约束。

于 2016-02-23T09:45:26.190 回答
0

UML 允许在 SD 中包含时序细节,如下所示:

在此处输入图像描述

我不知道 Papyrus 是否允许以这种方式描述它(我使用了 EA)。

于 2016-02-23T11:06:39.783 回答