gpt4 book ai didi

uml - 在 UML 中建模基于时间的属性和方法

转载 作者:行者123 更新时间:2023-12-04 15:12:23 24 4
gpt4 key购买 nike

我想建模一个在指定时间过去后发生的方法和一个随类和序列图消失的属性。

情况是这样的: worker 在他们使用机器的工厂工作。每台机器可供 0-10 名 worker 使用。每台机器都有维修时间限制, worker 必须在规定的时间内进行维修。它也有一个时间限制,如果 worker 错过维修,机器爆炸并且一个或多个 worker 死亡(比第一个更大)。有不同的机器。其中一些时间限制较长,一些时间限制较短。所有的机器都是机器上油的,持续一段时间,它会逐渐失去力量,直到消失。此值对所有机器都相同。

我的类图: enter image description here

我看到 repaireTime 和 explodeTime 的这个解决方案可以处理 qualifires 计算耗时,但我没有看到 tick 如何增加限定符值。它的行为像这样的属性吗? squence

最后,机油消失的原理是什么?这只是一个必须删除的属性,但我不明白在哪里计算耗时然后删除它。

编辑: enter image description here enter image description here enter image description here

最佳答案

您的序列图看起来没问题。

但是您的类图具有误导性:

  • 类图是结构图,而不是行为图。因此,您并不真正关心耗时,除非它出现在属性或操作中。
  • MachineTimer 之间的导航箭头不利于建议的序列图,它假定 Timer 知道找到 机器
  • 如果从一般层面考虑,与 worker end 和与 works end 的关联最终不是相同的关联吗?
  • 耗时的限定符不正确。

对于 MachineWorker 之间基于时间的关联,您可以考虑将其设为多对多关联,关联类定义时隙(开始和结束时间,您可以从中计算持续时间)。你可能会发现 here有关如何使用时间段的一些信息(尽管您不需要其他问题中提到的额外约束)。

编辑:审查更新后的图表

类图看起来更好。一些建议:

  • ClassSubclass1 可能是 MachineE1 ?
  • duration 关联类是特定于 Subclass 还是对任何 Class 都是通用的?在后一种情况下,您应该将其绘制在 WorkerClass 之间。没有必要为子类重复它,因为特化会自动继承其泛化的关联、属性和操作。
  • 如果 Timer 必须向对象发送消息?因此,依赖关系似乎放错了地方。它不应该与类关联到它应该发送消息的实例吗?
  • Timer 如何知道新的 Duration 对象?它是否需要知道 Duration 对象,或者它不能向机器发送报价,机器会将报价转发给持续时间?

在序列图中,无论上述建议的影响如何,重要的是要认识到生命线并不代表类,而是属于类的对象。因此,类名应该以 : 或对象名称和 : 开头。

如果您要进行报价转发,则第二个图表将集成到第一个图表中。然而,如果您要保留它,您应该问问自己 Duration 如何检查 elapsed_time==timeExplode,因为 timeExplode 是机器的属性而不是持续时间的属性。

关于uml - 在 UML 中建模基于时间的属性和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64977951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com