ここではオブジェクト図について説明します。

オブジェクト図もUMLで定められたダイアグラムの一つです。
ただしこちらはクラス間の関係ではなくて、プログラムが動作中のある時点における「インスタンス間の関係を示す図」です。

さて 1 つのインスタンスからなる単一オブジェクト図の描き方は次のようになります。


図1: 単一オブジェクト図


クラス名の左に具体的なインスタンス名を記入します。
なお汎化を行っている場合はスーパークラスの名前ではなく、実際にインスタンスを作成したサブクラスの名前を書きます。

また属性名には各フィールドの現在値を入れます。
なお属性名は省略する場合もあります。

さてインスタンス間に何らかの関係性がある場合はクラス図の関連の時と同様にリンクで繋ぎます。
その際「あるクラスのインスタンスから他のクラスのインスタンスに張るリンクがクラス図の多重度と同じ対応」になるという特徴があります。

例えば集約の例として挙げた図をもう一度考えます。
ソースコードも同じページにあるソース1を使います。
また MyWorld のインスタンス名は myworld とします。

すると myworld が作られると同時に MyWorld のコンストラクタで orange0 〜 orange3 が作られ、myworld と 各 orange には集約という関係性があったので、オブジェクト図は次の図 2 で表されます。
myworld と 各 orange 間のリンクがクラス図の多重度と同じく 1 対 4 という対応になっていることに注目して下さい。


図2 オブジェクト図の例