UML类图,在继承字段中具有固定值

时间:2016-07-31 15:13:15

标签: java ruby inheritance uml

我在Ruby中创建Java项目的表示来计算一些指标。我正在为Java中可用的语言元素(JavaClassJavaInterfaceJavaMethod等)创建Ruby类。我正在绘制Ruby类及其关系的UML类图(JavaClass contains 0..* JavaMethods)。

我不知道如何在UML中表示以下内容:

  • JavaFile只包含一个与MainClass本身共享名称的JavaFile
  • MainClass扩展JavaClass,其中包含'visibility'类型的字段Visibility,其值可以是'public''protected''default''private'

虽然JavaClass可能包含四个可见性值之一,但MainClass仅限于修饰符'public''default'。有没有办法表示只有两个Visibility - 值在UML的MainClass中有效?

2 个答案:

答案 0 :(得分:0)

不是真的。您正在询问模型的上下文信息,该信息可以由元约束表示。这需要使用模型的元模型(建模规则),并且可以用于在建模工具中实现“某些东西”以遵守该约束。 “某些东西”可以是定期运行的一些完整性检查或一些JIT代码来检查约束。

答案 1 :(得分:0)

您可以创建专门的枚举LimitedVisibility,它是Visibility的特化,仅包含公共值和默认值。 由于MainClass是JavaClass的特化,您可以重新定义属性可见性并显示其使用LimitedVisibility键入的内容。

您的MainClass可见性属性将如下所示:

visibility:LimitedVisibility {redefines visibility}

显示特征(例如属性)可重定义的语义如图9.9所示。在UML规范中(它是RedefinableElement的子类),详细信息如图9.10所示。语义在9.5.3节中描述,有关符号的详细信息在9.5.4节和9.5.5中的例子中提供,特别是在图9.11中。

相关问题