In UML-Modellen sind Objekte Modellelemente, die Instanzen einer Klasse oder mehrerer Klassen darstellen. Sie können Ihrem Modell Objekte hinzufügen, die konkrete und gedachte (prototypische) Instanzen darstellen. Eine konkrete Instanz stellt eine tatsächlich existierende Person oder Sache dar. Beispielsweise stellt eine konkrete Instanz einer Klasse 'Customer' (Kunde) einen tatsächlich vorhandenen Kunden dar. Eine Prototypinstanz einer Klasse 'Customer' enthält Daten, die einen (gedachten) typischen Kunden darstellen.
Eine Klasse repräsentiert eine Abstraktion von einem Konzept oder von einem physischen Gegenstand, während ein Objekt eine konkrete Entität darstellt. Ein Objekt hat eine klar definierte Grenze und ist in der Anwendung von Bedeutung. Objekte haben die in der folgenden Tabelle aufgelisteten Merkmale:
Merkmal | Beschreibung |
---|---|
Zustand | Der Zustand ist der Zustand, in dem sich ein Objekt befinden kann. Der Zustand eines Objekts wird durch eine Gruppe von Attributen implementiert, die sich normalerweise im Zeitverlauf ändert. |
Verhalten | Das Verhalten legt fest, wie ein Objekt auf Anfragen von anderen Objekten reagiert. Verhalten wird durch eine Gruppe von Operationen implementiert. |
Identität | Durch seine Identität wird ein Objekt eindeutig (unverwechselbar). Die eindeutige Identität eines Objekts ermöglicht Ihnen, zwischen mehreren Instanzen einer Klasse zu unterscheiden, wenn jede Instanz denselben Zustand hat. |
Jedes Objekt muss einen eindeutigen Namen haben. Ein vollständiger Objektname hat drei Bestandteile: Objektname, Aufgabenbereichsname und Klassenname. Der Name kann aus einer beliebigen Kombination dieser Bestandteile gebildet werden. Die folgende Tabelle zeigt verschiedene Varianten von Objektnamen eines Systems für Onlineeinkauf.
Syntax | Beispiel | Beschreibung |
---|---|---|
object/role:class | cart100/storage:cart | Eine benannte Instanz (cart100) der Klasse 'cart' (Warenkorb) deckt in einer Interaktion den Aufgabenbereich 'storage' (Speicherung) ab |
object:class | cart100:cart | Eine benannte Instanz (cart100) der Klasse 'Cart' |
/role:class | /storage:cart | Eine anonyme Instanz der Klasse 'cart' deckt in einer Interaktion den Aufgabenbereich 'storage' ab |
object/role | cart/storage | Ein Objekt namens 'cart' deckt den Aufgabenbereich 'storage' ab. Dieses Objekt ist entweder ein Objekt, das den Namen der Klasse verdeckt, oder eine Instanz, die keiner Klasse zugeordnet ist. |
object | cart100 | Ein Objekt namens 'cart100'. Dieses Objekt ist entweder eine Instanz, die den Namen der Klasse verdeckt, oder eine Instanz, die keiner Klasse zugeordnet ist. |
/role | /storage | Eine anonyme Instanz deckt den Aufgabenbereich 'storage' ab. Dieses Objekt ist entweder eine Instanz, die die Namen von Objekt und Klasse verdeckt, oder eine Instanz, die weder einem Objekt noch einer Klasse zugeordnet ist. |
:class | :cart | Anonyme Instanz der Klasse 'Customer'. |
Die folgende Tabelle listet die drei Objekttypen auf.
Objekttypen | Beschreibung |
---|---|
Aktiv | Ein aktives Objekt ist Eigner des Steuerungs-Threads uns es kann Steuerungsaktivitäten einleiten. Prozesse und Tasks sind aktive Objekttypen. |
Passiv | Ein passives Objekt enthält Daten, aber es leitet keine Steuerungsvorgänge ein. |
Mehrfachinstanz | Eine Sammlung von Objekten oder mehreren Instanzen derselben Klasse. Mehrfachinstanzen werden häufig verwendet, um zu zeigen, dass eine Gruppe von Objekten mit einer einzigen Nachricht (Stimulus) interagiert. |