我在Ruby中创建Java项目的表示来计算一些指标。我正在为Java中可用的语言元素(JavaClass
,JavaInterface
,JavaMethod
等)创建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
中有效?
答案 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中。