可以在UML类图上显示类可见性吗?

时间:2011-11-06 22:49:14

标签: uml class-diagram enterprise-architect class-visibility

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

5 个答案:

答案 0 :(得分:1)

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

来自p48:

  

PackageableElement [抽象类]

     

... [剪断] ..

     

属性

     
      
  • visibility:VisibilityKind [0..1] = public如果PackageableElement由Namespace拥有,则必须具有指定的可见性。默认的可见性是公开的。
  •   
     

约束

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

在各个地方都有一个名为VisbilityKind的枚举(参见UML 2.3 superstructure spec第7.3.5.5节p142)。

在类图上,有各种方法来说明可见性。最常见的是使用“ - ”表示私有功能,使用“+”代表公共功能。例如:

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

有关更多示例,请参阅the spec第52页的图7.28 / 7.29。

第h

答案 3 :(得分:0)

答案 4 :(得分:0)

我刚刚在UML 2.4.1基础架构中查找了它。见图10.3。 95你看到Class被定义为一个Type,它是一个NamedElement,它是一个Element。使用可见性包,NamedElement具有第9页的9.21.1中定义的可见性。 88,如果它属于命名空间。如果您有可见性,那么Class就具有可见性。您可以使用带有+ - #和〜的常用符号(第89页)。

VisualParadigm可以做到这一点。