2016-12-26 101 views
0

这是我第一次绘制UML序列图,我不确定几件事情。绘制序列图

enter image description here

我有一个信标是一个覆盆子PI与蓝牙适配器。服务器要求信标开始更改ID periodically(startIDRotation)。信标广播并在每个间隔后更改它们。当智能手机想要提出请求时,它会将检测到的ID(信标在请求中广播)与请求的文件一起发送,并将请求发送给服务器。服务器使用另一个活动图中表示的逻辑来决定用户是否有权访问该文件并向智能手机发回响应。

第一个问题是,在信标和智能手机之间画线是否正确?由于信标不是专门将信标发送到信标,它只是通过蓝牙广播它们。

由于决策图是活动图,是否可以引用另一个图类型?

服务器向信标发送一个发布请求以开始一次旋转,但它保持信标的状态并知道它正在旋转其ID。这应该表示为与我同步或异步吗?

如果您有任何其他评论,请随时纠正我。

回答

1

在信标和智能手机之间画线是否正确?

是的。该行代表一条消息。生命线代表一个个体实例。当电话收到广播时,这是发送的消息。由于您确实画了一个开放的箭头,它表示一个异步调用。所以这很完美。

是否可以引用另一个图类型?因为决策图是一个活动图。

是的。你会按照你所做的方式来添加图表参考。这表示覆盖区域的细节。您还可以添加如下所示的任意图表引用。

这应该表示为与我同步或异步吗?

这取决于。最有可能的是,您将在此处进行同步通信(封闭三角形),因为服务器想要知道消息是否已到达,并且信标确认该活动的开始。

enter image description here

0
  1. 是,信标发送(广播)的异步信号,智能电话所以应该有一个消息行描绘它。

  2. 通过Ref您引用另一个序列图。如果要表示某些行为(使用某个活动图描述的活动),请使用同步请求将同一生命线(从服务器到服务器)回叫,同时调用负责执行特权检查的活动。你也可以把执行动作的名字放在执行规范里面(使得这个细长的矩形更宽一点,以便将它挤入 - 参见UML规范中的17.2.4.4)。

  3. 所有行代表异步消息。要显示同步消息,请使用带实心三角形的实线作为箭头。用空心箭头表示应答使用虚线。如果你的特定消息应该是同步的或异步的取决于你的需求。广播是异步的,其他的可以是同步的也可以是异步的。

+0

谢谢,但我没有得到这个“使用一个同步请求,回到同一生命线(从服务器到服务器)与调用活动负责执行权限检查”。你有什么样的例子吗? – cleo

+0

@ThomasKilian关于ref有两种不同的意见,它应该也是一个sequecne图,或者可能是另一个图类型,如活动图,所以这不是同一个答案:) – cleo

+0

它可以是任何图。但在大多数情况下,这将是一个可持续发展。 –