9

クラスの可視性は、オブジェクト設計の重要な部分です。いくつかの UML ブックで、非パブリック クラスを示すサンプル図を見たことがありません。また、他のツールの中でも、Enterprise Architect でクラスの可視性を示す方法を見たことがありません。Enterprise Architect やその他のツールを使用すると、メタモデルでクラスの可視性を設定できますが、これを図で表示する方法はまだ見ていません。

4

6 に答える 6

1

UML 仕様 v2.5 ベータ 2 によると、NamedElement だけでなく、PackageableElement にも VisibilityKind 型の属性 Visibility があります。

p48 から:

PackageableElement [抽象クラス]

..[をちょきちょきと切る]..

属性

  • visibility : VisibilityKind [0..1] = public PackageableElement が Namespace によって所有されている場合、可視性を指定する必要があります。デフォルトの可視性は public です。

制約

  • namespace_needs_visibility Namespace が所有する PackageableElement には可視性が必要です。inv: 可視性 = null は名前空間 = null を意味します

ただし、この可視性に関する表記ガイドラインは見つかりませんでした

于 2015-02-04T07:02:12.917 に答える
0

UML 2.4.1 Infrastructure で調べただけです。図10.3 p。95 では、Element である NamedElement である Type として定義された Class が表示されます。可視性パッケージを使用すると、 NamedElement は p.9.21.1 で定義されている可視性を持ちます。名前空間に属している場合は 88。したがって、可視性がある場合、クラスには可視性があります。+ - # および ~ (p. 89) で通常の表記法を使用できます。

VisualParadigm はこれを行うことができます。

于 2015-02-03T08:36:40.670 に答える
0

UML は、メタモデルと表現の両方で、プログラミング言語に依存しない方法で可視性をサポートします。

さまざまな場所で使用される VisbilityKind という名前の列挙型があります ( UML 2.3 上部構造仕様セクション 7.3.5.5 p142 を参照)。

クラス図では、可視性を示すさまざまな方法があります。最も一般的なのは、'-' を使用して非公開機能を表し、'+' を使用して公開機能を表すことです。例えば:

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

その他の例については、仕様のp52 の図 7.28 / 7.29 を参照してください。

h番目。

于 2011-11-07T11:55:52.500 に答える
0

Eclipse では、アイコンに可視性があります。つまり、緑色のクラス アイコンがあり、プライベートの場合は ap が一番上に表示されます。オプションを選択すると、このアイコンはクラス図にも表示されます。この助けを願っています。

于 2011-11-07T09:22:04.707 に答える
0

ステレオタイプ (たとえば、<<クラス>>) を使用してクラスを定義すると、形状スクリプトをステレオタイプに割り当てることができます。装飾のみを指定する場合、これはクラスのデフォルトの描画を使用し、装飾を追加する必要があります。これは、クラスのスコープ プロパティに基づいて条件付きにすることができます。

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

これにより、Public クラスの左上隅に P が出力されます。ただし、代わりにアイコンを使用することもできます。

残念ながら、シェイプ スクリプトを既定の定型化されていないクラスに割り当てる方法が見つかりません。誰もそれを行う方法を知っていますか?

于 2015-09-10T12:58:43.057 に答える