UML中的服务类表示

UML中的服务类表示,uml,class-diagram,Uml,Class Diagram,我有三个班,一个叫 WorkCoordinator,它根据传递给它的事件调用不同的服务类,因此如果事件是trackIssue,则有一个TrackService类专门处理一些跟踪操作,还有一个Track对象。所以你可以有以下几点 WorkCoordinator--(曲目发布)-->TrackService(有曲目对象列表) 如何在UML图中正确表示这三个方面?当一切都从使用TrackService和TrackService的workcoordinator开始时,可能会有一个类似add(Track

我有三个班,一个叫

WorkCoordinator
,它根据传递给它的事件调用不同的服务类,因此如果事件是
trackIssue
,则有一个
TrackService
类专门处理一些跟踪操作,还有一个
Track
对象。所以你可以有以下几点

WorkCoordinator--(曲目发布)-->TrackService(有曲目对象列表)

如何在UML图中正确表示这三个方面?当一切都从使用
TrackService
TrackService
的workcoordinator开始时,可能会有一个类似add(Track Track)的功能,您可以将一个Track对象传递给它,以添加到其中的数组列表中,比如:

私有数组列表轨道

当add被调用时,一个音轨被添加到音轨中

感谢你的见解,我是这样想的,但可能完全错了

我有三个班,一个叫

与操作相反,不能调用类,但可以使用它

WorkCoordinator--(跟踪问题)-->TrackService

当事件字符串为trackIssue时,类WorkCoordinator使用类TrackingService,但是如何使用呢?因为在您的图表中,类TrackingService只有一个add操作,这意味着调用了该操作,即使我对此有一些怀疑,更多的事实是我们不知道参数中给出的Track实例来自何处。如果调用了其他操作,请将其添加到图表中

关于您的图表:

  • WorkCoordinator和TrackingService之间的行的角色是未知的,然后无效。由于trackingService属性,您可能还希望将其显示为关系,在这种情况下,关系必须完成

  • TrackingService有两个轨迹列表,一个通过属性trackItems,另一个通过关系轨迹。这可能不是您想要的,trackItems必须重命名为tracks或相反

  • 在UML中,通过属性和关系来显示相同的东西是合法的,但这相当沉重,因为读者必须检查它们是相同的东西,我鼓励您只使用其中一个,并且在绘制这两个类时支持这种关系

  • 您的聚合表示TrackingService由Track组成,您确定是这种情况,并且必须使用聚合吗

如何在UML图中正确表示这三个方面

类图根本没有指出,当处理的事件是trackIssue时,操作add(或其他)应用于trackingService(使用正确的参数)。当然,你可以添加一个注释来说明这一点,但该注释是一个自由文本,只有人类才能理解它

要在图中显示这一点,可以使用序列图或活动图,具体取决于要显示的内容

显示流程执行过程中发生的情况的序列图可以是(假设创建了一个新的Track实例,并在要添加的参数中给出):

event应该是process的参数,为TrackingService的实例命名,我使用TrackingService作为属性的名称,item表示创建的Track实例,以便在消息add中使用它

所有这些看起来都很模糊,但这是正常的,因为交互不是一种行为,序列图关注的是生命线之间的消息交换

如果希望对操作过程的行为进行完全建模而不产生歧义,则可以使用活动,图表可以是:


补充说明:

  • 事件通常不仅仅是像trackIssue这样的名称,因此进程的参数不是字符串,或者该字符串是复杂的形式

  • Track的id有getter/setter,但名称没有getter/setter,这似乎很奇怪。是否确定在创建实例时不仅设置了id(使用名称)

我有三个班,一个叫

与操作相反,不能调用类,但可以使用它

WorkCoordinator--(跟踪问题)-->TrackService

当事件字符串为trackIssue时,类WorkCoordinator使用类TrackingService,但是如何使用呢?因为在您的图表中,类TrackingService只有一个add操作,这意味着调用了该操作,即使我对此有一些怀疑,更多的事实是我们不知道参数中给出的Track实例来自何处。如果调用了其他操作,请将其添加到图表中

关于您的图表:

  • WorkCoordinator和TrackingService之间的行的角色是未知的,然后无效。由于trackingService属性,您可能还希望将其显示为关系,在这种情况下,关系必须完成

  • TrackingService有两个轨迹列表,一个通过属性trackItems,另一个通过关系轨迹。这可能不是您想要的,trackItems必须重命名为tracks或相反

  • 在UML中,通过属性和关系来显示相同的东西是合法的,但这相当沉重,因为读者必须检查它们是相同的东西,我鼓励您只使用其中一个,并且在绘制这两个类时支持这种关系

  • 您的聚合表示TrackingService由Track组成,您确定是这种情况,并且必须使用聚合吗

如何在UML图中正确表示这三个方面

类图根本没有指出,当处理的事件是trackIssue时,操作add(或其他)应用于trackingService(使用正确的参数)。当然,你可以添加一个注释来说明这一点,但该注释是一个自由文本,只有人类才能这样做