オブジェクト図

統一モデリング言語（UML）のオブジェクト図（オブジェクトず）は、特定の時点でのモデル化されたシステムの構造の完全なビューまたは部分的なビューを示す図です。

 概要 
統一モデリング言語（UML）では、オブジェクト図は、特定のオブジェクトと属性のセット、およびこれらのインスタンス間のリンクに焦点を当てています。オブジェクト図の相関セットは、システムの任意のビューが時間の経過とともにどのように進化すると予想されるかについての洞察を提供します。初期のUML仕様では、オブジェクト図は次のように説明されています。

 「オブジェクト図は、オブジェクトとデータ値を含むインスタンスのグラフです。静的オブジェクト図は、クラス図のインスタンスです。ある時点でのシステムの詳細な状態のスナップショットを示しています。オブジェクト図の使用はかなり制限されています。つまり、データ構造の例を示すためです。 " Object Management Group (2001) 	UML specification 1.4, September 2001 Anne Banks Pidduck, John Mylopoulos, Carson C. Woo (2002) Advanced Information Systems Engineering. p.776.

最新のUML2.5仕様では、オブジェクト図を明示的に定義していませんがClassification of UML 2.5 Diagrams on uml-diagrams.org. Retrieved Dec 7, 2012 、分類子のインスタンスの表記法を提供しています。 Object Management Group (2015)UML specification 2.5, Section 9.8.4 on notation of InstanceSpecification, March 2015

オブジェクト図とクラス図は密接に関連しておりMarcus Fontoura, Wolfgang Pree & Bernhard Rumpe (2002) The UML profile for framework architectures. p.19 、ほぼ同じ表記法を使用しています。 Kassem A. Saleh (2009) Software Engineering. p.47どちらの図も、システムの静的構造を視覚化することを目的としています。クラス図がクラスを表現するのに対して、オブジェクト図はクラス（オブジェクト）のインスタンスを表現します。 Bianca Scholten (2007) The Road to Integration: A Guide to Applying the ISA-95 Standard in Manufacturing. p.155オブジェクト図はクラス図よりも具体的です。オブジェクト図は、クラスの実例を提供したり、クラス図のテストケースとして使われたりします。モデルのうち、現在関心のある側面のみが、オブジェクト図に表示されます。

 オブジェクト図のトピック 

 インスタンス仕様 
オブジェクト図の各オブジェクトとリンクは、 InstanceSpecificationで表されます。これにより、オブジェクトの分類子（抽象クラスや具象クラスなど）とインスタンス名、およびスロットを使用した属性やその他の構造的特徴を表示できます。各スロットは単一の属性または機能に対応し、そのエンティティの値を含めることができます。

インスタンス仕様の名前は、オプションでインスタンス名、「：」区切り文字、およびオプションでコンマで区切られた1つ以上の分類子名を示します。スロットの内容は、もしあれば、名前の下の別の属性コンパートメントに含まれています。リンクは実線で示され、関連付けのインスタンスを表します。

 オブジェクト図の例 
右|サムネイル|400x400ピクセル|n = 2、f（n-2）= 0、およびf（n-1）= 1の場合、f（n）= 0 + 1 = 1となる。
フィボナッチ数列の生成をモデル化する方法を例として考える。

右側の最初のUMLオブジェクト図では、インスタンス仕様の左端のインスタンスはv1という名前で、分類子としてIndependentVariableを持ち、 FibonacciSystem内でNMinus2というロールを果たし、値0のval属性用のスロットを持っています。 2番目のオブジェクトはv2という名前で、クラスIndependentVariableであり、 NMinus1というロールを果たし、 val = 1です。 DependentVariableオブジェクトはv3という名前で、 Nのロールを果たします。最上位のインスタンスは、匿名インスタンスだが、分類子としてFibonacciFunctionがあり、インスタンス名、ロール、およびスロットがある場合がありますが、ここには示されていません。この図には、線で示されている3つの名前付きリンクも含まれています。リンクはインスタンス間の関連を示しています。
右|サムネイル|300x300ピクセル|最初の反復後、n = 3、f（n-2）= 1、およびf（n-1）= 1の場合、f（n）= 1 + 1 = 2となる。
2番目の図では、少し後の時点を示し、 IndependentVariableオブジェクトとDependentVariableオブジェクトは同じですが、 val属性に対するスロットの値が異なっています。ロール名はここには表示されていません。
右|サムネイル|280x280ピクセル|さらに数回繰り返した後、n = 7、f（n-2）= 5、f（n-1）= 8の場合、f（n）= 5 + 8 = 13となる。
最後のオブジェクト図は、さらに後のスナップショットを示し、同じ3つのオブジェクトが含まれています。それらのスロットは異なる値を持っています。インスタンス名とロール名はここには表示されていません。

 使用法 
UMLモデリングツールを使用している場合は、通常、クラス図などの他の種類の図を使用してオブジェクト図を描画します。オブジェクトインスタンスは、インスタンス仕様または単にインスタンスと呼ばれる場合があります。インスタンス間のリンクは、一般的に、リンクと呼ばれます。集計記号や構成記号（ひし形）などの他のUMLエンティティもオブジェクト図に表示される場合があります。

 参考文献 

 外部リンク 

 公式のUML2.0仕様を含むUMLに関する一般情報。特にInstanceSpecificationのセクションを参照してください。
 オブジェクト図の表現力、実世界からのイラスト
 モーダルオブジェクト図、existential/universalモードとポジティブ/ネガティブモードを持つオブジェクト図の拡張。

Category:統一モデリング言語ダイアグラム