我对UML序列图有疑问。
假设我们有一个对象Customer,KioskUI,KioskService和KioskService有一个名为showNotification()的最后一个进程;方法showNotification会转到Customer对象还是KioskUI?
如果KioskUI,对象是否必须将变量作为“< ----- notification”返回给Customer对象,或者我们不再需要从KioskUI向客户返回一些内容?
由于序列图仅关注过程如何相互操作,我的另一个问题是,是否有一个有形的对象,如打印报告不再需要在序列图中显示或是否必须?
答案 0 :(得分:1)
在面向对象的系统中,最好将序列图看作对象的描述,向每个对象发送消息进行通信。 这些图中的箭头表示时间对象之间的发送者/接收者关系,其中箭头的标签描述了消息本身,例如,带参数的方法调用。 您正在询问向后箭头是否应指向KioskUI或Customer对象。答案很简单,这取决于发送邮件的人,例如方法调用“showNotification()”返回的位置。你必须决定这一点,但我猜KioskUI是一个自然的选择。 所以答案是,只有当客户有一个前向箭头时,才应向客户显示向后箭头(除非是异步调用,否则应使用生命线上的方框进行描述)。 根据你的需要,需要在图表中描述的内容总是一个选择,只要它是一个分类器,我认为UML没有区别,这意味着任何可以有实例的东西都可以在那里 - 类,组件,演员,节点,...例如,我看到许多用例实现作为序列图完成,其中actor是具有生命线的对象。