私はMyClientTypeオブジェクトであり値がMyClientオブジェクトであるMapを含むMyServerクラスを持っています。私はこの関係をクラス図で描写したいが、それを行うためのきれいな方法を理解することはできない。含まれているマップをUMLクラス図で表現する方法は?
答えて
MyServer
|
|
|
Map
|
| |
| |
MyClientTypeKey MyClientType
上記のように単純ではありませんか?
- myserverが地図
- 有するものassoication 1つを有するマップがキーと値の両方を持つ1に多くの関連を有しています。
私はMyClientからMyClientへの関連性をMyClientの終端に0の多重度で示しています。他のすべては実装の詳細であり、プログラマに委ねられます。
これは2つの正解の一つです。もう一つは@Kruです。 –
MyServer
|
|*
T1toT2
/ \
1/ \1
Key Value
Markのソリューションとの違いは、サーバーがコンテナと多くの関係を持つことです。それはまた、Eclipse Modeling Framework (EMF) proposes to implement mapsの方法です。
キーが一意である(ステレオタイプを使用する)ことを指定するなど、UML固有のものをいくつか追加することもできます。
まず第一に私といくつかの人は、UMLにはいくつかの初期のバージョンと同様にいくつかの基本的なコレクションタイプが含まれるべきだと思います。彼らは、しかし、それは本当に重要でない私見ですの種類にあまり重要私見いますので、私はちょうどそれをモデル化するだろう、「EMFの方法は、」右思わ
... OCLから例えば取ることができます関連クラスとして。これにより、通常のクラスを使用してキャプチャできるマップ固有の制約(たとえば多重度など)はすべてキャプチャできますが、そのクラスは他のクラスと同じように重要ではありません。
あなたは資格の関連付けを使用することができます。
┌──────────┐ 1 ┌───────┐
│ MyServer │Key│───────────│ Value │
└──────────┘ └───────┘
参照:http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Qualified+Associations/資格の関連付けが多様に変化することも
注意(ASCIIを使用して描画することは困難である原因):
を┌──────────┐ 0..* ┌───────┐
│ MyServer │───────────────│ Value │
└──────────┘ └───────┘
┌──────────┐ 1 ┌───────┐
│ MyServer │Key│───────────│ Value │
└──────────┘ └───────┘
上部は、サーバーから0-n値への関連付けを示しています。対照的に、修飾された関連付けでは、指定されたキーは1つの値にのみ関連付けられ、キーには値がないということが示されます。
これは2つの正解の一つです。もう一つはチンパンジーです。 –
MyServerが操作と属性を表示するために「展開」された場合、マップ関係をモデル化するために、MyServerの属性コンパートメントにはどのようなものがありますか? –
クルさんの答えは最高ですが、それでもまだ地図だけがヒントです。
私はそれがあなたのダイアグラムが座っている抽象化のレベルに依存すると主張します。それが比較的高い場合、私はチンパンジーの反応に行くだろう。それは比較的低いだとあなたが本当に意図的に実装関連の詳細を示す、地図を表示する必要がある場合は、私は次のように行きたい:
マップは、コードで実装されてどのように MyServer
|
|
Map
|
|*
T1toT2
/ \
1/ \1
Key Value
は全く無関係である(T1toT2
ラン実際には存在しない可能性があります)。地図を表示または指定するには、あなたが本当に本当に必要がある場合は
Gabreilで述べたように、これはまた、関連クラスにもちろん
MyServer
|
|
Map
|
|*
T1toT2
|
|
1--------1
Key Value
を使用してモデル化することができることが唯一の問題です。
- 1. UMLクラス図でレポートを表現する方法
- 2. UMLシーケンス図で割り込みを表現する方法は?
- 3. UMLクラス図のスイングコンポーネントの表現
- 4. UMLシーケンス図でリスナーを表現する方法
- 5. UMLクラス図でプライベート継承関係を表示する方法
- 6. ダイヤモンドサインはUMLクラス図で何を表していますか?
- 7. UMLクラス図 - 初期値の属性を表現する
- 8. umlクラス図と表記法をプログラミングで作成するには?
- 9. UMLクラス図でEclipse拡張ポイントをモデル化する方法は?
- 10. UMLでC++のネストされたクラスを表現する方法は?
- 11. Silverlight MVVMクラスはUML図で表されます
- 12. 静的メソッドの使用方法を表示する方法UMLクラス図
- 13. UMLクラス図:抽象メソッドとプロパティを記述する方法は?
- 14. UMLのクラス図でAndroidの "インテント"をモデリングする方法
- 15. UMLクラス図:コレクション
- 16. クラス図(UML)のHashMap
- 17. スタティックUMLモデルでイベントベースのアーキテクチャを表現する方法は?
- 18. UMLクラス図 - 異なる 'レポート'クラスをどのように表現するのですか?
- 19. UMLでテンプレートクラスを表現する正しい方法は何ですか?
- 20. UMLユースケース拡張ポイントをグラフィカルに表現する方法は?
- 21. UMLクラスの関心事/モジュール/拡張子を表現する方法
- 22. このUMLクラス図の改善/編集方法は?
- 23. UMLクラス図関連タイプ
- 24. UMLクラス図の生成
- 25. ライブ通知UMLクラス図
- 26. UMLクラス図のインタフェース集約
- 27. Eclipse PDTでグラフィカルUMLクラス図を取得するには?
- 28. Eclipseを使用してUML図を描画する方法
- 29. UMLクラス図の継承表記を簡略化するにはどうすればよいですか?
- 30. これは、UMLクラス図のクラス、または型として考慮する必要がありますか?
それは私の心にも最初に来たことですが、マップはクラスに値するものではないと感じています。それは単なる封じ込めの方法です。私は知らない、ちょうどいい気分ではない。 – gooli
しかし、MyServerに直接関連付けられているキーと型クラスを持っているだけで、それらがどのように関連しているかはわかりません。 Mapはコンテナですが、キーとタイプの関係も示しています。 – Mark