首页 > 解决方案 > 实现 UML 序列和类图

问题描述

我最近遇到了这个问题,我只是好奇我的工作是否正确,如果不正确,我在哪里犯了错误。

我的任务:

a) 官员是临时或永久任命的。教授是可以被任命为固定任期或终身的公务员。教授也是教学教授或研究负责人。科研机构的雇员是公务员或雇员。教授隶属于科学部长,科研院所员工隶属于教授。研究所的教授和员工都在研究所工作。研究所可以召集教授和工作人员开会。

创建适当的 UML 类图。

我的答案:

在此处输入图像描述


b) 教授可以通知秘书处,他或她想与研究所的工作人员进行约会。秘书处随后将向所有相关工作人员发送一份拟议任命清单。一旦秘书处收到所有工作人员的反馈,它将向他们每个人发送最终任命。

创建相应的 UML 序列图。

我的答案:

在此处输入图像描述

c) 用 Ja​​va 实现 (b) 中的过程(方法体就足够了!)。这样做时,请遵守 (a) 中定义的类、抽象类和接口。

我的答案:

我试图解决这个问题,但我没有进一步了解,特别是它是关于使用抽象类和接口解决任务的。我认为这个子任务可以在没有抽象类和接口的情况下解决,对吧?

科研机构是否应该作为一个抽象类来实现?

有人可以向我解释一下吗?非常感谢 :)

标签: interfaceumlabstract-classclass-diagramsequence-diagram

解决方案


类图

有一个错误,因为谁是professor谁的下属:在你的叙述中,教授是部委的下属,而不是另一位教授的下属。 civil-servantco-workerprofessor

我从叙述中了解到,在 ascientific institutesubordinate toa工作的员工professor只能是employee.

在您的图表中,部分叙述消失了:

  • 只有fulltime_employee. 目前尚不清楚这些与临时和永久雇员有何关系。
  • 没有meeting与工作人员和教授有关的内容。
  • 工作人员在哪里?

在您的图表中,还有一种现实世界中不存在的刚性:aprofessor可能会开始职业生涯,并且有一天会晋升为director of studies。还是那个教授。只是角色变了。在这里,我建议考虑优先组合而不是继承

顺序

对我来说似乎很合理,除了:

  • 你真的应该将单独的执行活动显示为单独的:秘书处发送活动然后它就结束了。当收到反馈时,另一个活动开始。在某些情况下(收到最后的反馈),随后是另一个不同的活动来发送最终确认。
  • 你应该小心箭头。大多数请求是异步的并且有一个开放的箭头。
  • send final 是发送给工作人员时的普通异步消息(纯线,开头),但它是对教授的回答(这里可以保留虚线。

执行

这本身就是一个复杂的问题。最好将此作为一个单独的问题提出。但你需要更具体。

提示:抽象类,是一个不能被实例化的类:从它继承的类必须实现它的抽象方法,这样对象才能被实例化。


推荐阅读