9

类可见性是对象设计的重要组成部分。我没有在几本 UML 书籍中看到任何显示非公共类的示例图,也没有看到在 Enterprise Architect 和其他工具中显示类可见性的方法。Enterprise Architect 和其他工具允许您在元模型中设置类可见性,但我还没有看到在图表中显示这一点的方法。

4

6 回答 6

1

根据 UML 规范 v2.5 beta 2 不仅 NamedElement 而且 PackageableElement 具有 VisibilityKind 类型的属性 Visibility

从第 48 页开始:

PackageableElement [抽象类]

..[剪辑]..

属性

  • 可见性:VisibilityKind [0..1] = public 如果 PackageableElement 归命名空间所有,则它必须具有指定的可见性。默认可见性是公开的。

约束

  • namespace_needs_visibility 命名空间拥有的 PackageableElement 必须具有可见性。inv:可见性 = null 意味着命名空间 = null

但是,我还没有找到任何关于这种可见性的符号指南

于 2015-02-04T07:02:12.917 回答
0

在 Eclipse 中,您可以看到图标。我的意思是你有一个绿色的类图标,如果是私有的,那么 ap 放在顶部。如果您选择该选项,该图标在类图中也可见。希望这有帮助。

于 2011-11-07T09:22:04.707 回答
0

UML 以编程语言中立的方式支持元模型和表示中的可见性。

有一个名为 VisbilityKind 的枚举在不同的地方使用(参见UML 2.3 上层结构规范第 7.3.5.5 p142 节)。

在类图上有多种方式来说明可见性。最常见的是使用“-”表示私有特征,使用“+”表示公开。例如:

----------------------------
| Class                    |
|--------------------------|
| +publicAttribute: Type   |
| -privateAttribute: Type  |
|--------------------------|
| +publicMethod()          |
| -privateMethod()         |
----------------------------

有关更多示例,请参见规范p52 上的图 7.28 / 7.29 。

hth。

于 2011-11-07T11:55:52.500 回答
0

我认为你需要看看单向和双向关联

于 2013-11-29T03:34:50.710 回答
0

我只是在 UML 2.4.1 Infrastructure 中查找它。在图 10.3 上。95 你看到 Class 被定义为一个 Type,它是一个 NamedElement,它是一个元素。使用可见性包,NamedElement 具有第 9.21.1 页中定义的可见性。88,如果它属于一个命名空间。因此,如果您具有可见性,则 Class 具有可见性。您可以使用带有 + - # 和 ~ 的常用符号(第 89 页)。

VisualParadigm 可以做到这一点。

于 2015-02-03T08:36:40.670 回答
0

如果你用原型定义你的类(比如<<class>>),你可以为原型分配一个形状脚本。如果你指定一个装饰,这应该使用一个类的默认绘图,并添加你的装饰,这可以是基于类的范围属性的条件:

decoration X
{
  if(hasproperty("scope","public"))
    print("P");
}

这会在公共类的左上角打印一个 P。但是,您同样可以有一个图标。

不幸的是,我找不到将形状脚本分配给默认非定型类的方法。有谁知道该怎么做?

于 2015-09-10T12:58:43.057 回答