如何在序列图中显示事件

时间:2012-09-01 13:19:20

标签: modeling uml

我想绘制一个序列图,我想展示用户和UI之间的互动。作为actor的用户将填充文本框,而在text_change事件中,BL类的异步方法将调用。在这种情况下,是否可以在图表上显示text_change事件?我该如何展示呢?

感谢

2 个答案:

答案 0 :(得分:7)

为了在一个或多或少复杂且富含GUI的应用程序中表示交互,我也常常发现自己对在序列图中表示.NET事件感兴趣。在我看来,没有真正描述性的方法来有效地使用标准手段。

一个正式合理的方法可能如下:提出一个事件基本上只是在目标实例中调用一个已定义的函数,唯一的区别是你不是直接调用它,而是通过系统事件消息循环。因此,在幕后,提升事件与在系统本身中调用一些 HandleMessage(" MyEvent",params object [] args)函数相同,参数是事件和可选参数列表。我不知道确切的名称和签名是什么,但这并不重要。

A representation of .NET event on an UML sequence diagram

在上图中, Source 实例发出一个事件 MyEvent ,其中包含一系列落在系统接收器上的参数。接收者找到收件人(目标)并调用其相应的方法( Target.OnMyEvent())。为了强调这个调用是由事件触发的,我引入了一个名为" 事件"的构造型。

这个方案可能看起来有点笨拙,但对我来说,它涵盖了案例。

答案 1 :(得分:2)

你想做的事情是可能的,但不寻常。通常,这些交互将由现有系统/平台提供,因此没有必要将其包含在应用程序设计中。

Introduces how this would typically be documented

我可能会使用collaboration digram来执行此操作。

如果你坚持Sequence Diagrams figure 2 should help