de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

UMLオブジェクト図:システムのスナップショットの記録

そのUMLオブジェクト図は、構造モデリングツールのグループ内においてユニークで重要な役割を果たしている:それはシステムの具体的なインスタンスレベルのビューを提供する。一方、クラス図(設計図)は抽象的な可能性を示す——存在しうるオブジェクトの種類とそれらの潜在的な関係を示す。存在しうる存在しうるオブジェクトとそれらの潜在的な関係——一方、オブジェクト図は特定の瞬間に実際に存在するオブジェクトを示す。実際に存在する特定の瞬間に存在するものであり、その現在のデータ値と確立された接続を含む。

クラス図をケーキのレシピと考えてください。それは材料と手順を詳細に示します。一方、オブジェクト図は今日実際に焼かれた特定のケーキの写真であり、そのサイズ、フォンダンの色、テーブル上の実際の配置を示します。

さらに詳しく知る:クラス図とオブジェクト図の違い——インスタンスを使用するタイミング .

Object diagram of University Course Enrollment System

クラス図との関係

オブジェクト図は根本的にクラス図のインスタンスレベルのバージョンである。オブジェクト図内のすべての要素は、クラス図内の対応するクラスによって定義された構造に従わなければならない。

  1. オブジェクトインスタンス: 図中のオブジェクトは、特定のクラスのインスタンスである。

  2. リンク: 2つのオブジェクト間のリンクは、それらの対応するクラスの間に定義された特定の関連のインスタンスである。

The Relationship to Class Diagrams

この具体的な可視化は、抽象的で理論的な設計を検証する上で不可欠である。もしクラス図が誤って設計されている場合、オブジェクト図を使って現実的なシナリオをモデル化しようとすると、その欠陥がすぐに明らかになることが多い。

オブジェクト図の主要な要素

1. オブジェクトインスタンス

オブジェクトインスタンスは主な要素であり、矩形として表される。表記法は、クラスと明確に区別できるように特定のフォーマットに従う。

オブジェクト名 : クラス名
  • オブジェクト名(オプション): インスタンスに与えられた特定の名前(例:”myOrder, userA)。名前は下線が引かれています。

  • ClassName:オブジェクトがインスタンス化されるクラスの名前。

  • コロン区切り:コロン(:)はインスタンス名とクラス名を区切ります。

  • 下線:インスタンス名とクラス名の両方とも下線を引く必要がありますこれはクラス定義ではなくオブジェクトインスタンスを表すことを示すためです。(例:userB : Userまたは: Order)

2. 属性値

クラス図とは異なり、これは名前の属性を示すのではなく、オブジェクト図はその特定のインスタンスの現在の値属性の現在の値を示します。これが図を「スナップショット」と呼ぶ理由です。

属性は矩形の2番目のコンパートメントに、以下の構文を使って記載されます:

attributeName = value
  • 例:名前がmyCar : Vehicle は属性値 を持つ可能性がある color = "red"speed = 65.

3. リンク

A リンク は のインスタンスである 関連 (関係)をクラス図で定義したものである。リンクは、2つのオブジェクト矩形を結ぶ単純で実線の線として描かれる。

リンクは、ある特定のオブジェクトインスタンスが現在、別の特定のオブジェクトインスタンスとどのように接続されているか、または参照しているかを示す。多重性制約(例:$1..*$ または $0..1$)は、スナップショット内のこれらのリンクの存在によって検証される。

  • 例: クラス図に と の関連が示されている場合、CustomerOrder、オブジェクト図ではインスタンス と インスタンス の間に具体的なリンクが示される。cust1 : Customer とインスタンス order52 : Order.

オブジェクト図を使う理由とタイミング

オブジェクト図は、主に分析および設計段階で以下の2つの目的のために使用される:

  1. シナリオの可視化と検証: 複雑な構成やエッジケースを可視化するのに非常に優れたツールである。特定のオブジェクトとその値を配置することで、チームは設計が、複数の住所を持つ顧客や現在空のショッピングカートなどのシナリオを適切に処理しているかを検証できる。

  2. 複雑な構造の提示: クラス構造が集約やコンポジションのような高度な概念を使用する場合、オブジェクト図を用いて、結果として得られる階層構造やライフタイム依存関係の具体的な例を示すことができる。

  3. テストとデバッグ: スナップショットを定義することで、特定のテストケースを実行する前後におけるシステムの期待される状態として機能し、複雑なテストデータの明確な伝達を可能にする。

オブジェクト図は抽象的なクラス構造を具体的で検証可能なシナリオに変換し、設計の正確性を確保し、実装例を明確に伝えるための貴重なツールとなる。

UMLとAI可視化についてもっと知りたいですか?私たちのUMLリソースハブ.