如何在静态UML模型中表示基于事件的体系结构?

fle*_*esh 7 events uml

我有一个相当基本的基于C#事件的系统,但我不确定我是如何在UML中建模的.我很想显示事件发布者,订阅者,处理程序和EventArgs类.我认为你使用'信号'但我找不到任何例子.任何人都能指出一个例子或任何光明吗?

谢谢

编辑:我正在创建一个静态模型,我不需要在整个过程中表示状态或路径.对不起,如果我在最初的问题中没有说清楚的话......

uml*_*cat 6

"发布者 - 订阅者"对模式(又名"观察者")可以在每个编程(语言)框架中实现不同,因此,在UML中设计不同

任何方式,在概念上,当被发送的事件("信号"或"消息"),从发布者(又名"服务器"),以任何用户("客户端"),有时,一个"id",以识别特定事件,来自其他事件,它提供的,以及一些其他参数或数据也发送.

正如其他答案已经提到的那样,您可能需要(类)图来描述静态模型.(注意,有一个"聚合",而不是"组合","关联"可以使用):

..............................
+--------------------------+..
|      <<Publisher>>       |..
|      VectorDrawApp       |..
+--------------------------+..
| [+] create()             |..
+--------------------------+..
| [+] send(EventArgs e)    |..
+------------+-------------+..
............/ \...............
............\ /...............
.............|................
.............|................
+------------+-------------+..
|      <<Subscriber>>      |..
|          Figure          |..
+--------------------------+..
| [+] create()             |..
+--------------------------+..
| [+] receive(EventArgs e) |..
+--------------------------+..
..............................
+--------------------------+..
|        <<Event>>         |..
|        EventArgs         |..
+--------------------------+..
| [+] Sender: TObject      |..
+--------------------------+..
| [+] receive(EventArgs e) |..
+------------+-------------+..
.............|................
.............+................
............/ \...............
...........+---+..............
.............|................
+------------+-------------+..
|        <<Event>>         |..
|  FillEventArgs: EventArgs|..
+--------------------------+..
| [+] ForeColor            |..
| [+] BackColor            |..
| [+] FillStyle            |..
+--------------------------+..
..............................
Run Code Online (Sandbox Code Playgroud)

而且,您可能需要一个图表来描述动态模型:

.........................................
+----------------+..+----------------+...
| <<Publisher>>  |..| <<Subscriber>> |...
|  VectorDrawApp |..|      Figure    |...
+--------+-------+..+--------+-------+...
.........|...................|...........
.......+-+-+...............+-+-+.........
.......|   |...send(fill)..|   |..Fill().
.......|   +==============>+   +---+.....
.......|   |...............|   |...|.....
.......|   |...<<return>>..|   |...|.....
.......|   |<--------------+   +<--+.....
.......|   |...............|   |.........
.......+-+-+...............+-+-+.........
.........|...................|...........
.........X...................X...........
.........................................
Run Code Online (Sandbox Code Playgroud)

UML中的刻板印象是你的"喝酒伙伴",允许你描述或限制演员,对象,类,特征或界面的作用.

使用它们时,突出显示对象或类,类的子类或实现时,与活动相关的接口,即模型,即使存在其他父类或接口.

干杯.


Joh*_*ers 0

使用状态图或活动图。