UML是一种功能强大的设计语言。它是独立于编程语言的(尽管它倾向于基于类的语言),因此允许设计某些语言无法实现但在某些其他语言中却微不足道的事物。
真正的问题是您对评估的期望:
void
类型,它不属于UML的原始类型。这是一种依赖语言的类型。 Animal.eats()
例如可以是{abstract}
。但是,缺少此信息是否表明它不是抽象的? Animal
来很好地应对这种设计。在Java中,多重继承是被禁止的,并且这样不能实现(需要更改此模型以引入接口并使用interface realization)。 另一方面,每天都在这里对图进行系统的审查。评估的目的是查看符号是否与UML规范一致,并最终与所选UML profile的约束一致。有一些research papers探索这种一致性评估的自动化。