9

我想设计一个简单的嵌入式系统。这方面的特别之处在于我想使用UML来设计它的架构。在我使用的其他图表中,我有一个序列图,如下图所示。

在此处输入图像描述

我在这里试图描述的是,包含在“LOOP”片段中的序列在没有事件的情况下一次又一次地执行。

图最右侧的中断服务程序(ISR) 块是一个异步执行并生成等待事件的块。

这里的问题是,由于事件可能在循环序列期间的任何时间生成,每隔一段时间,例如每 10 毫秒,并发送到“模块 2”,我不知道如何表示。

如果我只是将消息箭头从“ISR”块指向“模块 2”,我理解这意味着包含事件的消息将作为循环的一部分从“ISR”发送到“模块 2”,每次循环执行时,但这不是我需要的。我需要描述这样一个事实,即从“ISR”到“模块 2”的消息仅每 X 毫秒发送一次,或者在时间上随机发送(在硬件中断的情况下)。

有什么建议么?

4

3 回答 3

5

序列图专用于描述特定的执行。要描述所有可能的执行,您应该使用状态机图。

于 2013-08-30T21:55:48.600 回答
2

我不是 100% 确定这一点,但我想这仅通过序列图是不可能的(我将继续研究它......)。我将保留此序列图以对循环核心进行建模,并使用活动图对异常进行建模。一般的想法是建模,如下所示,至少一个调用你的序列的 CallBehavior,一个 ExceptionHandler 来捕获你的异常,以及对你的异常的处理,它可以是另一个调用行为或你想要的。希望有帮助, 模型异常

于 2013-08-29T14:43:24.973 回答
0

a) 在必须 Exit() 的 {lifeline of the} 组件中插入一个 Self-Call 或 Self-Message。

b) 在导致 {need for the} 自调用的条件之后立即放置自调用。我在这里假设您的自调用是有条件的,否则跳过/忽略此步骤。

c) 将自调用明确标记为“终止流程”或“终止并退出”,或者更好的是“终止所有处理并退出”。

于 2021-08-13T17:28:15.893 回答