Archyno
UMLDiagramy struktury

UML diagramy objektů

Diagram tříd zmrazený v jediném okamžiku, se skutečnými hodnotami místo typů. Nejlevnější způsob, jak zjistit, jestli model, který jste právě nakreslili, opravdu funguje.

6 min čteníUML 2.5.123 z 35

Krátká odpověď

  • Diagram tříd říká, co je možné; diagram objektů říká, co platí v jednom okamžiku, se skutečnými hodnotami místo typů.
  • Podtržení označuje instanci. Název se čte instance : Třída a kterákoli polovina může vypadnout - samotná dvojtečka dá anonymní.
  • Slot je atribut nesoucí konkrétní hodnotu. Sloty jsou to, co má diagram objektů místo typovaných deklarací atributů.
  • Nakreslete ho, když násobnost nebo asociace na sebe vypadá podezřele. Pokud nedokážete nakreslit platný příklad, diagram tříd je špatně.
UML diagram objektů. Instance acme třídy Merchant je propojená s instancí p1 třídy Payment, která je složená z instance m1 třídy Money držící 49.90 EUR a propojená s instancí r1 třídy Refund ve výši 10.00. Každý název instance je podtržený a každý slot drží konkrétní hodnotu.
Tentýž platební model jako diagram tříd, v jednom okamžiku. Podtržené názvy a konkrétní hodnoty jsou celým rozdílem.

01Co ukazuje#

Diagram objektů je snímek. Zatímco diagram třídříká „platba má částku a nula nebo více vrácení“, diagram objektů říká „tahleplatba je právě teď na 49.90 EUR a má jedno vrácení ve výši 10.00“.

Používá tytéž tvary jako diagram tříd se dvěma změnami, a ty dvě změny jsou celou notací:

  • Jmenný pás zní nazevInstance: NazevTridy a je podtržený. Kterákoli část se dá vynechat - samotné p1, nebo : Payment pro anonymní instanci - ale podtržení nikdy. Právě ono dělá z boxu objekt místo třídy.
  • Z atributů se stanou sloty s konkrétními hodnotami: currency = EUR, ne currency: Currency.

02Co se mění oproti diagramu tříd#

PrvekNotaceCo znamená
Instancepodtržený jmenný pásp1: Payment, : Payment, nebo p1. Podtržení je povinné.
Slotnazev = hodnotaAtribut se skutečnou hodnotou, ne s deklarovaným typem.
Propojeníobyčejná čáraJedna instance asociace. Nese název role, pokud je to užitečné, ale nikdy ne násobnost.
Žádné operacevynechanéInstance nemají vlastní operace - má je třída. Třetí oddíl se prostě nepoužívá.

03K čemu to je#

Diagramy objektů jsou nejméně kresleným UML diagramem a jedním z nejužitečnějších na strávenou minutu, protože jsou testem modelu tříd.

Vezměte diagram tříd, kterým si je někdo jistý, a zkuste vyplnit jednu realistickou instanci každého boxu. Spolehlivě se stanou tři věci. Ukáže se, že násobnost je špatně - 1, která měla být 0..1, odhalená ve chvíli, kdy tam nemáte co dát. Objeví se chybějící vztah, protože dva objekty, které se evidentně musí navzájem odkazovat, mezi sebou nemají čáru. A atribut, který jako typ vypadal v pořádku, se ukáže bez rozumné hodnoty, což obvykle znamená, že patří na jinou třídu.

Trvá to asi deset minut a najde problémy, které přežijí měsíce diskuse na abstraktní úrovni. Je to tentýž důvod, proč napsání jednoho testovacího případu najde návrhové problémy, které čtení návrhu nenajde.

Druhým použitím je vysvětlování. Rekurzivní nebo na sebe odkazující struktura - strom, graf, kompozit - se opravdu těžko chápe z diagramu tříd, kde je to jeden box s čárou smyčkující zpět na sebe. Nakreslená jako pět konkrétních objektů s propojeními mezi nimi je zřejmá okamžitě.

04Kdy takový nakreslit#

Sáhněte po něm, když

  • Ověřování diagramu tříd, ze kterého se chystáte stavět
  • Vysvětlení rekurzivní nebo na sebe odkazující struktury, kterou diagram tříd zatemňuje
  • Zdokumentování konkrétního záludného případu - objednávka s rozdělenou platbou a dvěma vráceními
  • Příprava testovacích dat: diagram objektů je obrázkem vašich seed dat

Sáhněte po něčem jiném, když

  • Jako náhrada diagramu tříd - ukazuje jeden případ, ne pravidla
  • Struktura je plochá a zřejmá
  • Potřebovali byste jich šest, aby pokryly zajímavé případy; raději opravte model tříd
  • Otázka je o chování v čase - použijte sekvenční diagram

Po jednom řádku na každé

  1. 01Diagram objektů je jeden okamžik diagramu tříd, se skutečnými hodnotami.
  2. 02Notací je podtržený jmenný pás; název instance i název třídy jsou volitelné, podtržení ne.
  3. 03Sloty drží hodnoty (currency = EUR), ne typy.
  4. 04Propojení nikdy nenesou násobnost - snímek ukazuje, co je, ne co by mohlo být.
  5. 05Nejlepším použitím je desetiminutový test modelu tříd, ze kterého se chystáte stavět.

05Časté dotazy#

Jaký je rozdíl mezi diagramem objektů a diagramem tříd?

Diagram tříd ukazuje typy a to, co je možné. Diagram objektů ukazuje jednu sadu skutečných instancí v jednom okamžiku, se skutečnými hodnotami. Každý diagram objektů je příkladem nějakého diagramu tříd, a právě proto je to nejlevnější způsob, jak ověřit, jestli ten diagram tříd funguje.

Proč jsou názvy v diagramu objektů podtržené?

Podtržení je v UML značka instance. Přihrádka s názvem se čte jako název instance, dvojtečka, název třídy, podtrženě, a kterákoli polovina se může vynechat: dvojtečka Objednávka je anonymní instance a samotný název je taková, jejíž typ je zřejmý z kontextu.

Co je slot v UML?

Atribut instance nesoucí konkrétní hodnotu, psaný jako atribut rovná se hodnota. Sloty jsou to, co má diagram objektů místo typovaných deklarací atributů, které nese diagram tříd.

Kdy se vyplatí nakreslit diagram objektů?

Když má diagram tříd násobnosti nebo asociaci na sebe, kterou si nejste jistí. Naplnit ho třemi či čtyřmi skutečnými instancemi obvykle spor urovná za minutu, a když nedokážete nakreslit platný příklad, diagram tříd je špatně.

V této sérii

Související články

Všechny články