我想设计一个简单的embedded system。关于这一点的特殊之处在于我想使用UML来设计其架构。在我正在使用的其他图表中,我有一个Sequence Diagram,如下图所示。
我在这里想要描述的是,在没有事件的情况下,“LOOP”片段中包含的序列一次又一次地执行。
图表最右侧的Interrupt Service Routine(ISR)块是一个异步执行并生成等待事件的块。
这里的问题是,由于事件可能在循环序列期间的任何时间生成,只需每隔一次,例如每隔10ms,并发送到“模块2”,我不知道如何代表这一点。
如果我只是将消息箭头指向“ISR”块指向“模块2”,我理解这意味着包含该事件的消息将从“ISR”发送到“模块2”,作为循环,每次循环执行,但这不是我需要的。我需要描述一个事实,即从“ISR”到“模块2”的消息只是每隔X毫秒发送一次,或者是随机发送的(如果发生硬件中断)。
有什么建议吗?
答案 0 :(得分:5)
序列图专用于描述特定执行。要描述所有可能的执行,您应该使用状态机图。
答案 1 :(得分:2)
我不是百分之百确定,但我想这不可能只用序列图(我会继续看它......)。 我会保留这个序列图来建模循环核心并使用活动图来模拟异常。 一般的想法是建模,如下所示,至少一个CallBehavior将调用你的序列,一个ExceptionHandler来捕获你的异常,并处理你的异常,这可能是另一个调用行为或你想要的。 希望它有所帮助,