UML モデルでオブジェクトは、1 つまたは複数のクラスのインスタンスを表すモデル要素を意味します。オブジェクトをモデルに追加して、具体的かつ原型のインスタンスを表します。具体的なインスタンスとは、現実世界の実際の人または物を表します。例えば、カスタマー・クラスの具体的なインスタンスは、実際のカスタマーを表します。カスタマー・クラスの原型インスタンスには、標準的なカスタマーを表すデータが含まれます。
クラスは概念や物体を抽象化したものであるのに対し、オブジェクトは具体的に実在するものを表します。オブジェクトは、明確な境界を持ち、アプリケーション内で意味を持ちます。オブジェクトには、次の表にリストされた特性があります。
特性 | 説明 |
---|---|
状態 | 状態は、オブジェクトが存在可能な条件です。オブジェクトの状態は、属性のセットによって実装され、通常は一定期間に変化します。 |
振る舞い | 振る舞いは、他のオブジェクトからの要求に対するオブジェクトの反応を決定します。振る舞いは、操作のセットによって実装されます。 |
アイデンティティー | オブジェクトのアイデンティティーは、オブジェクトを固有のものにします。各インスタンスの状態が同じ場合、オブジェクトの固有のアイデンティティーを使用して、クラスの複数のインスタンスを区別できます。 |
各オブジェクトは、固有の名前を持つ必要があります。完全なオブジェクト名は、オブジェクト名、ロール名、クラス名の 3 つの部分から構成されます。オブジェクトに名前を付ける際は、この 3 つの部分をどのようにでも組み合わせることができます。次の表に、オンライン・ショッピング・システムのオブジェクト名のバリエーションをいくつか示します。
構文 | 例 | 説明 |
---|---|---|
オブジェクト/ロール:クラス | cart100/storage:cart | Cart クラスの名前付きインスタンス (cart100) は、相互作用中にストレージのロールを実行します。 |
オブジェクト:クラス | cart100:cart | Cart クラスの名前付きインスタンス (cart100) |
/ロール:クラス | /storage:cart | 相互作用時ストレージのロールを実行する Cart クラスの匿名インスタンス。 |
オブジェクト/ロール | cart/storage | ストレージ・ロールを実行するオブジェクトの名前付きカート。このオブジェクトは、クラスの名前が非表示のオブジェクトか、またはクラスと無関係のインスタンスです。 |
オブジェクト | cart100 | cart100 という名前のオブジェクト。このオブジェクトは、クラスの名前が非表示のインスタンスか、またはクラスと無関係のインスタンスです。 |
/ロール | /storage | 匿名インスタンスによってストレージのロールを実行します。このオブジェクトは、オブジェクトおよびクラスの名前が非表示のインスタンスか、またはオブジェクトまたはクラスと無関係のインスタンスです。 |
:クラス | :cart | customer クラスの匿名インスタンス。 |
次の表に、オブジェクトの 3 つのタイプをリストします。
オブジェクトのタイプ | 説明 |
---|---|
アクティブ | アクティブなオブジェクトは、制御のスレッドを所有し、制御アクティビティーを開始できます。プロセスおよびタスクはアクティブなオブジェクトのタイプです。 |
パッシブ | パッシブなオブジェクトはデータを所有しますが、制御を開始できません。 |
複数インスタンス | 複数インスタンスは、オブジェクトの集合または同じクラスの複数のインスタンスです。一般に複数インスタンスは、オブジェクトのセットが単一のメッセージ (または刺激 (stimulus)) と相互作用することを示すために使用されます。 |