Klasa opisuje typ, obiekt jest konkretną instancją#
Klasa (class) opisuje wspólną strukturę i zachowanie obiektów, które do niej należą. Określa, jakie cechy i operacje mogą mieć jej instancje. Obiekt (object) to konkretny egzemplarz klasy w określonym stanie. Klasa odpowiada na pytanie „jakie są zamówienia?”, a obiekt — „jak wygląda to konkretne zamówienie teraz?”.
Na diagramie klas nazwa klasy zwykle znajduje się w prostokącie i może być uzupełniona przedziałami atrybutów oraz operacji. Na diagramie obiektów prostokąt opisuje instancję; jego nazwa jest podkreślona, atrybuty mogą mieć przypisane konkretne wartości. Notacja zamowienie17: Zamowienie oznacza nazwany obiekt zamowienie17, którego typem jest klasa Zamowienie.
Klasa wymienia cechy dopuszczone przez model, a obiekt pokazuje wartości przypisane w jednym przykładowym stanie. Obiekt nie jest „małą klasą” ani alternatywnym zapisem definicji typu. Diagram obiektów może również pokazywać łącza między konkretnymi instancjami, odpowiadające asocjacjom z modelu klas.
Atrybut, slot i wartość#
Atrybut klasy nazywa właściwość instancji i może określać jej typ, widoczność, wartość domyślną lub inne cechy. W obiekcie wartość atrybutu jest reprezentowana przez slot. W przykładzie atrybut status ma w obiekcie wartość wysłane; to jedna konkretna wartość, a nie definicja dopuszczalnych statusów dla wszystkich zamówień.
Wartość obiektu nie musi być literałem tekstowym. Może należeć do typu prostego, wyliczenia, innego obiektu albo kolekcji — zależnie od modelu. Brak widocznej wartości nie musi znaczyć, że atrybut nie istnieje; diagram może pomijać sloty, które nie są istotne dla jego celu. Gdy wartości mają znaczenie dla przykładu, pokazuj je jawnie i zachowuj zgodność z typem oraz ograniczeniami klasy.
Obiekt a klasa w różnych diagramach#
Diagram klas przedstawia typy i relacje na poziomie definicji: klasy, interfejsy, atrybuty, operacje i asocjacje. Diagram obiektów przedstawia wybrane instancje oraz łącza między nimi w określonym przykładzie lub stanie. Jest diagramem struktury statycznej w danym ujęciu, ale może dokumentować migawkę sytuacji w czasie.
Diagram obiektów nie zastępuje diagramu sekwencji ani diagramu stanów. Nie opisuje kolejności komunikatów ani całego cyklu życia. Może natomiast pomóc sprawdzić, czy model klas dopuszcza wymagany przykład danych, albo wyjaśnić złożone powiązania instancji.
Nazwy i notacja instancji#
W typowej notacji UML nazwa instancji jest podkreślona. Często zapisuje się ją jako nazwaObiektu : NazwaKlasy; część przed dwukropkiem może być pominięta, gdy instancja jest anonimowa, a w szczególnym przypadku można pominąć typ. Jeśli diagram wykorzystuje składnię narzędzia, upewnij się, że renderowany zapis nadal jasno komunikuje, co jest nazwą instancji, a co klasą.
W modelu obiekt może mieć wartości slotów, a relacje między obiektami przedstawia się jako łącza. Łącze jest instancją asocjacji. Jego końce muszą zgadzać się z typami obiektów i ograniczeniami asocjacji; liczność modelu klas może ograniczać, ile takich łączy występuje w danej migawce.
Kiedy pokazać obiekty#
Diagram obiektów jest użyteczny, gdy abstrakcyjny diagram klas trudno zrozumieć bez konkretnego przykładu. Może przedstawić przykładową konfigurację, stan początkowy testu, nietypowy przypadek brzegowy albo dowód, że relacje pozwalają opisać ważny scenariusz.
Nie pokazuj wszystkich instancji dużego systemu. Wybierz te, które ilustrują regułę. Jeśli wartości są chwilowe, opisz kontekst migawki — na przykład „po opłaceniu zamówienia” — aby czytelnik nie uznał stanu przykładowego za niezmienną regułę klasy.
Typowe pomyłki#
- Klasa utożsamiona z obiektem. Klasa opisuje typ; obiekt jest jego instancją.
- Wartość obiektu uznana za wartość domyślną klasy. Przypisanie w jednym obiekcie nie określa ustawienia wszystkich instancji.
- Brak nazwy instancji odczytany jako brak obiektu. Instancja może być anonimowa; typ może pozostać widoczny.
- Diagram obiektów potraktowany jak przebieg w czasie. Pokazuje strukturę wybranego stanu, a nie kolejność zdarzeń.
- Niezgodność slotu z atrybutem. Wartość powinna odpowiadać typowi i ograniczeniom modelu.
- Każda instancja umieszczona na diagramie. Pokazuj reprezentatywny przypadek i wartości potrzebne do wyjaśnienia.
Podsumowanie#
Klasa definiuje cechy i zachowanie wspólne dla instancji, a obiekt pokazuje konkretny egzemplarz w określonym stanie. Diagram obiektów przedstawia instancje, wartości slotów i łącza; pomaga zobrazować przykładową migawkę bez zastępowania diagramu klas ani diagramów opisujących zachowanie.