评估UML类图

问题描述 投票:2回答:1

假设我绘制一个表示项目的类和接口结构的UML类图。在实际创建那些类和接口之前,是否有任何方法可以评估UML设计?

示例:已知下图将导致钻石问题。并且必须进行更改或处理。

enter image description here

uml associations multiple-inheritance class-diagram class-design
1个回答
0
投票

UML是一种功能强大的设计语言。它是独立于编程语言的(尽管它倾向于基于类的语言),因此允许设计某些语言无法实现但在某些其他语言中却微不足道的事物。

真正的问题是您对评估的期望:

    关于模型是否符合UML规范的
  • 句法和语义有效性?在您的图表中,使用void类型,它不属于UML的原始类型。这是一种依赖语言的类型。
  • 该模型的[[
  • 完整性和准确性,并考虑到潜在的歧义和缺少的信息?在您的图表中,Animal.eats()例如可以是{abstract}。但是,缺少此信息是否表明它不是抽象的?
  • 类设计的评估
  • ,例如它的复杂性,继承的深度,关系的强度,相互依赖性等...?但是,当某些领域本来就很复杂时,这如何帮助发现错误的设计呢?
  • 可行性
  • UML allows for multiple inheritance,但未精确定义其背后的语义。例如,在C ++中,您可以通过继承Animal来很好地应对这种设计。在Java中,多重继承是被禁止的,并且这样不能实现(需要更改此模型以引入接口并使用interface realization)。
当前设计不是高度自动化;因此,据我所知,没有系统的方法可以评估设计。

另一方面,每天都在这里对图进行系统的审查。评估的目的是查看符号是否与UML规范一致,并最终与所选UML profile的约束一致。有一些research papers探索这种一致性评估的自动化。

© www.soinside.com 2019 - 2024. All rights reserved.