如何在序列图中显示事件

Vah*_*iri 9 uml modeling

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

谢谢

Ale*_*nen 9

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

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

在UML序列图上表示.NET事件

在上图中,Source实例发出一个事件MyEvent,其中包含一个落在系统接收器上的参数列表.接收方找到收件人(Target)并调用其对应的方法(Target.OnMyEvent()).为了强调这个调用是事件触发的,我引入了一个名为" Event " 的刻板印象.

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


Mar*_*mer 4

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

介绍通常如何记录这一点

我可能会使用协作图来做到这一点。

如果您坚持使用序列图,图 2 应该会有所帮助