这是我第一次绘制UML序列图,我不确定一些事情。
我有一个带有蓝牙加密狗的覆盆子pi的灯塔。服务器要求信标开始更改其ID periodically(startIDRotation)
。信标在每个间隔后广播并改变它们。当智能手机想要发出请求时,它包括检测到的ID,信标在请求中广播,具有所请求的文件并将请求发送到服务器。服务器使用另一个活动图中表示的逻辑来确定用户是否有权访问该文件,并将响应发送回智能手机。
第一个问题是,在信标和智能手机之间画线是否正确?因为信标不是专门向信标发送ID,所以它只是通过蓝牙进行广播。
是否可以引用另一个图表类型,因为决策图是一个活动图?
服务器向信标发送一个post请求以开始一次旋转,但它保持信标的状态并知道它正在旋转其ID。这应该像我一样表示同步还是异步?
如果您有任何其他评论,请随时纠正我。
答案 0 :(得分:1)
在信标和智能手机之间画线是否正确?
是。该行代表一条消息。生命线代表一个单独的实例。当手机接收到广播时,这就是发送的消息。由于您确实绘制了一个空心箭头,因此它表示异步调用。这是完美的。
是否可以引用另一种图表类型?因为决策图是活动图。
是。您将通过添加图表参考以您的方式执行此操作。这代表了覆盖区域的细节。您也可以添加任意图表参考,如下所示。
这应该表示为同步还是异步?
这取决于。很可能你会在这里进行同步通信(闭合三角形),因为服务器想要知道消息是否已经到达并且信标确认活动的开始。
答案 1 :(得分:0)
是的,Beacon向智能手机发送(广播)异步信号,因此应该有一条描述它的消息行。
按el_rule
您引用另一个序列图。如果要表示某些行为(使用某些活动图描述的活动),请使用同步请求,该请求将回调到同一生命线(从服务器到服务器),并调用负责执行权限检查的活动。您还可以将执行操作的名称放在执行规范中(使较薄的矩形稍微宽一些以便将其压缩 - 请参阅UML规范中的17.2.4.4)。
您的所有行代表异步消息。要显示同步消息,请使用带有实心三角形的实线作为箭头。要显示响应,请使用带有空心箭头的虚线。如果您的特定消息应该是同步的或异步的,则取决于您的需求。广播是异步的,所有其他广告可以是同步的或异步的。