Uml-object-diagram
UML-オブジェクト図
オブジェクト図はクラス図から派生しているため、オブジェクト図はクラス図に依存しています。
オブジェクト図は、クラス図のインスタンスを表します。 クラス図とオブジェクト図の基本概念は似ています。 オブジェクト図はシステムの静的ビューも表しますが、この静的ビューは特定の瞬間のシステムのスナップショットです。
オブジェクト図は、オブジェクトのセットとそれらの関係をインスタンスとしてレンダリングするために使用されます。
オブジェクト図の目的
図を実際に実装するには、図の目的を明確に理解する必要があります。 オブジェクト図の目的は、クラス図に似ています。
違いは、クラス図がクラスとその関係で構成される抽象モデルを表すことです。 ただし、オブジェクト図は特定の瞬間のインスタンスを表します。これは本質的に具体的です。
これは、オブジェクト図が実際のシステムの動作により近いことを意味します。 目的は、特定の瞬間にシステムの静的なビューをキャプチャすることです。
オブジェクト図の目的は次のように要約することができます-
- フォワードおよびリバースエンジニアリング。
- システムのオブジェクト関係
- インタラクションの静的ビュー。
- オブジェクトの動作とそれらの関係を実用的な観点から理解する
オブジェクト図を描く方法は?
オブジェクト図はクラス図のインスタンスであることはすでに説明しました。 オブジェクト図は、クラス図で使用されるもののインスタンスで構成されることを意味します。
したがって、両方の図は同じ基本要素で構成されていますが、形式は異なります。 クラス図では、要素は抽象的な形で青写真を表し、オブジェクト図では、要素は具体的な形で現実世界のオブジェクトを表します。
特定のシステムをキャプチャするために、クラス図の数は制限されています。 ただし、オブジェクト図を考慮すると、インスタンスの数に制限はありません。インスタンスは本質的に一意です。 システムに影響を与えるインスタンスのみが考慮されます。
上記の説明から、単一のオブジェクト図では必要なすべてのインスタンスをキャプチャできないか、システムのすべてのオブジェクトを指定できないことが明らかです。 したがって、解決策は-
- まず、システムを分析し、どのインスタンスに重要なデータと関連付けがあるかを判断します。
- 次に、機能をカバーするインスタンスのみを検討します。
- 第三に、インスタンスの数に制限がないため、最適化を行います。
オブジェクト図を描く前に、次のことを覚えて、明確に理解する必要があります-
- オブジェクト図はオブジェクトで構成されます。
- オブジェクト図のリンクは、オブジェクトを接続するために使用されます。
- オブジェクトとリンクは、オブジェクト図の作成に使用される2つの要素です。
この後、図の構築を開始する前に、次のことを決定する必要があります-
- オブジェクト図には、その目的を示す意味のある名前を付ける必要があります。
- 最も重要な要素を特定する必要があります。
- オブジェクト間の関連付けを明確にする必要があります。
- オブジェクト図に含めるには、さまざまな要素の値をキャプチャする必要があります。
- より明確にする必要がある箇所に適切なメモを追加します。
次の図は、オブジェクト図の例です。 クラス図の章で説明した注文管理システムを表します。 次の図は、特定の購入時のシステムのインスタンスです。 次のオブジェクトがあります。
- 顧客
- 注文
- 特別注文
- 通常注文
これで、顧客オブジェクト(C)は3つの注文オブジェクト(O1、O2、およびO3)に関連付けられます。 これらの注文オブジェクトは、特別注文および通常注文オブジェクト(S1、S2、およびN1)に関連付けられています。 顧客は、考慮される特定の時間について、異なる番号(12、32、および40)で以下の3つの注文を行います。
顧客は将来、注文数を増やすことができ、そのシナリオではオブジェクト図にそれが反映されます。 順序、特別な順序、および通常の順序のオブジェクトが観察される場合、それらにはいくつかの値があることがわかります。
注文の場合、値は12、32、および40です。これは、インスタンスが取得される特定の瞬間(ここでは購入が行われる特定の時間を瞬間と見なします)にオブジェクトがこれらの値を持つことを意味します
同じことが、注文数が20、30、および60の特別注文および通常注文オブジェクトにも当てはまります。 別の購入時期を考慮すると、これらの値はそれに応じて変化します。
上記のすべての点を考慮して、次のオブジェクト図が描かれています。
オブジェクト図の使用場所
オブジェクト図は、特定の瞬間に実行中のシステムのスナップショットとして想像できます。 走行中の列車の例を考えてみましょう
さて、実行中の列車のスナップを撮ると、次のような静的な写真が見つかります-
- 実行中の特定の状態。
- 乗客の特定の数。 別の時間にスナップを撮ると変化します
ここでは、走行中の列車のスナップが上記の値を持つオブジェクトであると想像できます。 そして、これは実際の単純なシステムまたは複雑なシステムのすべてに当てはまります。
一言で言えば、オブジェクト図が使用されていると言うことができます-
- システムのプロトタイプを作成します。
- リバースエンジニアリング。
- 複雑なデータ構造のモデリング。
- 実用的な観点からシステムを理解する。