In UML-Modellen sind Objekte Modellelemente, die Exemplare einer Klasse oder mehrerer Klassen darstellen. Sie können Ihrem Modell Objekte hinzufügen, die konkrete und gedachte (prototypische) Exemplare darstellen. Ein konkretes Exemplar stellt eine tatsächlich existierende Person oder Sache dar. Beispielsweise stellt ein konkretes Exemplar einer Klasse 'Customer' (Kunde) einen tatsächlich vorhandenen Kunden dar. Ein Prototypexemplar 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 konkretes Exemplar 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 |
---|---|
Status | Der Status ist der Zustand, in dem sich ein Objekt befinden kann. Der Status eines Objekts wird durch eine Gruppe von Attributen implementiert, die sich normalerweise im Zeitverlauf ändert. |
Verhalten | Das Verhalten legt fest, wie ein Objekt auf Anforderungen 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 Exemplaren einer Klasse zu unterscheiden, wenn jedes Exemplar denselben Status 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 | Ein benanntes Exemplar (cart100) der Klasse 'cart' (Warenkorb) deckt in einer Interaktion den Aufgabenbereich 'storage' (Speicherung) ab |
object:class | cart100:cart | Ein benanntes Exemplar (cart100) der Klasse 'Cart' |
/role:class | /storage:cart | Ein anonymes Exemplar 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 ein Exemplar, das keiner Klasse zugeordnet ist. |
object | cart100 | Ein Objekt namens 'cart100'. Dieses Objekt ist entweder ein Exemplar, das den Namen der Klasse verdeckt, oder ein Exemplar, das keiner Klasse zugeordnet ist. |
/role | /storage | Ein anonymes Exemplar deckt den Aufgabenbereich 'storage' ab. Dieses Objekt ist entweder ein Exemplar, das die Namen von Objekt und Klasse verdeckt, oder ein Exemplar, das weder einem Objekt noch einer Klasse zugeordnet ist. |
:class | :cart | Anonymes Exemplar 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. |
Mehrfachexemplar | Eine Sammlung von Objekten oder mehreren Exemplaren derselben Klasse. Mehrfachexemplare werden häufig verwendet, um zu zeigen, dass eine Gruppe von Objekten mit einer einzigen Nachricht (Stimulus) interagiert. |