我有一个设备,我代表的是一个阶级,有两个演员,一个远程和本地操作员谁可以打开或关闭设备。这两个行为体都将使用设备的功能。但是现在我如何用序列图来表示它们,因为如果我从本地和远程绘制一个事件,它将在设备上显示一个接一个发生,但实际上两个角色使用相同的功能,可以随时调用它。那么,我如何在下面的序列图中表示这两个参与者。
RAN40L是设备,CMS是远程操作,模拟器是本地操作。

发布于 2014-04-23 10:00:19
碰巧我有来自国防工业的丰富经验,包括海军CMS,所以我熟悉这个领域。
关键的问题是,与UML一样,您想要在图表中显示什么,这当然与您在其他图表中显示的内容相关联。没有一个图是孤立地读取的,并且您永远不会在一个序列图中捕获整个雷达功能。
请记住,序列图的目的是以严格的顺序显示正在发生的事情。可以使用适当的片段显示一些基本的并发性,但是如果您想要显示两个参与者做的事情完全相同,那么在这两种情况下,序列实际上都是一个和相同的序列,那么序列图是显示这一点的错误位置。
假设这个序列是作为一个用例的精化,那么解决方案就是用一个单一的参与者来替换这两个参与者,例如“雷达控制器”。然后,这个角色可以被专门化为CMS和模拟器,如果雷达不知道或不关心在某些情况下(用)与它交互的人,这就有意义了。
如果雷达从来没有做过区分,那么根本就不应该有两个演员。演员必须对他们互动的系统有意义,否则你的演员模型就有问题了。
因此,一种解决方案是按以下方式构造用例。

发布于 2014-04-19 11:24:51
http://sdedit.sourceforge.net/images/webserver.png,这是一个很好的例子,其中使用了两个参与者。默认情况下,将一个参与者与另一个角色相反(在示例中没有这样做)。
发布于 2014-04-23 10:41:27
参与者被认为只是序列图中的另一个对象。你可以任意地绘制许多演员,并使用他们就像任何其他对象,在这个意义上没有限制。
虽然有一些文体指导方针,但最重要的是关于演员在图表上的定位。在图的边界上显示actores是一种常见的做法,将内部系统对象保存在图中。此外,人类行为体通常显示在左侧,而系统参与者则保持在右侧。参与者不应与系统对象“混合”。下面是一个简单的例子:

https://stackoverflow.com/questions/23169328
复制相似问题