Archyno
UMLDiagramy štruktúry

UML diagramy objektov

Diagram tried zmrazený v jedinom okamihu, so skutočnými hodnotami namiesto typov. Najlacnejší spôsob, ako zistiť, či model, ktorý ste práve nakreslili, naozaj funguje.

6 min čítaniaUML 2.5.123 z 35

Krátka odpoveď

  • Diagram tried hovorí, čo je možné; diagram objektov hovorí, čo platí v jednom okamihu, so skutočnými hodnotami namiesto typov.
  • Podčiarknutie označuje inštanciu. Názov sa číta inštancia : Trieda a ktorákoľvek polovica môže vypadnúť - samotná dvojbodka dá anonymnú.
  • Slot je atribút nesúci konkrétnu hodnotu. Sloty sú to, čo má diagram objektov namiesto typovaných deklarácií atribútov.
  • Nakreslite ho, keď násobnosť alebo asociácia na seba vyzerá podozrivo. Ak nedokážete nakresliť platný príklad, diagram tried je zlý.
UML diagram objektov. Inštancia acme triedy Merchant je prepojená s inštanciou p1 triedy Payment, ktorá je zložená z inštancie m1 triedy Money držiacej 49.90 EUR a prepojená s inštanciou r1 triedy Refund vo výške 10.00. Každý názov inštancie je podčiarknutý a každý slot drží konkrétnu hodnotu.
Ten istý platobný model ako diagram tried, v jednom okamihu. Podčiarknuté názvy a konkrétne hodnoty sú celým rozdielom.

01Čo ukazuje#

Diagram objektov je snímka. Kým diagram triedhovorí „platba má sumu a nula alebo viac vrátení“, diagram objektov hovorí „táto platba je práve teraz na 49.90 EUR a má jedno vrátenie vo výške 10.00“.

Používa tie isté tvary ako diagram tried s dvoma zmenami, a tie dve zmeny sú celou notáciou:

  • Menný pás znie nazovInstancie: NazovTriedy a je podčiarknutý. Ktorákoľvek časť sa dá vynechať - samotné p1, alebo : Payment pre anonymnú inštanciu - ale podčiarknutie nikdy. Práve ono robí z boxu objekt namiesto triedy.
  • Z atribútov sa stanú sloty s konkrétnymi hodnotami: currency = EUR, nie currency: Currency.

02Čo sa mení oproti diagramu tried#

PrvokNotáciaČo znamená
Inštanciapodčiarknutý menný pásp1: Payment, : Payment, alebo p1. Podčiarknutie je povinné.
Slotnazov = hodnotaAtribút so skutočnou hodnotou, nie s deklarovaným typom.
Prepojenieobyčajná čiaraJedna inštancia asociácie. Nesie názov role, ak je to užitočné, ale nikdy nie násobnosť.
Žiadne operácievynechanéInštancie nemajú vlastné operácie - má ich trieda. Tretí oddiel sa jednoducho nepoužíva.

03Načo to je#

Diagramy objektov sú najmenej kresleným UML diagramom a jedným z najužitočnejších na strávenú minútu, lebo sú testom modelu tried.

Vezmite diagram tried, ktorým si je niekto istý, a skúste vyplniť jednu realistickú inštanciu každého boxu. Spoľahlivo sa stanú tri veci. Ukáže sa, že násobnosť je zlá - 1, ktorá mala byť 0..1, odhalená vo chvíli, keď tam nemáte čo dať. Objaví sa chýbajúci vzťah, lebo dva objekty, ktoré sa evidentne musia navzájom odkazovať, medzi sebou nemajú čiaru. A atribút, ktorý ako typ vyzeral v poriadku, sa ukáže bez rozumnej hodnoty, čo obvykle znamená, že patrí na inú triedu.

Trvá to asi desať minút a nájde problémy, ktoré prežijú mesiace diskusie na abstraktnej úrovni. Je to ten istý dôvod, prečo napísanie jedného testovacieho prípadu nájde návrhové problémy, ktoré čítanie návrhu nenájde.

Druhým použitím je vysvetľovanie. Rekurzívna alebo na seba odkazujúca štruktúra - strom, graf, kompozit - sa naozaj ťažko chápe z diagramu tried, kde je to jeden box s čiarou slučkujúcou späť na seba. Nakreslená ako päť konkrétnych objektov s prepojeniami medzi nimi je zrejmá okamžite.

04Kedy taký nakresliť#

Siahnite po ňom, keď

  • Overovanie diagramu tried, z ktorého sa chystáte stavať
  • Vysvetlenie rekurzívnej alebo na seba odkazujúcej štruktúry, ktorú diagram tried zatemňuje
  • Zdokumentovanie konkrétneho zákerného prípadu - objednávka s rozdelenou platbou a dvoma vráteniami
  • Príprava testovacích dát: diagram objektov je obrázkom vašich seed dát

Siahnite po niečom inom, keď

  • Ako náhrada diagramu tried - ukazuje jeden prípad, nie pravidlá
  • Štruktúra je plochá a zrejmá
  • Potrebovali by ste ich šesť, aby pokryli zaujímavé prípady; radšej opravte model tried
  • Otázka je o správaní v čase - použite sekvenčný diagram

Po jednom riadku na každé

  1. 01Diagram objektov je jeden okamih diagramu tried, so skutočnými hodnotami.
  2. 02Notáciou je podčiarknutý menný pás; názov inštancie aj názov triedy sú voliteľné, podčiarknutie nie.
  3. 03Sloty držia hodnoty (currency = EUR), nie typy.
  4. 04Prepojenia nikdy nenesú násobnosť - snímka ukazuje, čo je, nie čo by mohlo byť.
  5. 05Najlepším použitím je desaťminútový test modelu tried, z ktorého sa chystáte stavať.

05Časté otázky#

Aký je rozdiel medzi diagramom objektov a diagramom tried?

Diagram tried ukazuje typy a to, čo je možné. Diagram objektov ukazuje jednu sadu skutočných inštancií v jednom okamihu, so skutočnými hodnotami. Každý diagram objektov je príkladom nejakého diagramu tried, a práve preto je to najlacnejší spôsob, ako overiť, či ten diagram tried funguje.

Prečo sú názvy v diagrame objektov podčiarknuté?

Podčiarknutie je v UML značka inštancie. Priehradka s názvom sa číta ako názov inštancie, dvojbodka, názov triedy, podčiarknuté, a ktorákoľvek polovica sa môže vynechať: dvojbodka Objednávka je anonymná inštancia a samotný názov je taká, ktorej typ je zrejmý z kontextu.

Čo je slot v UML?

Atribút inštancie nesúci konkrétnu hodnotu, písaný ako atribút rovná sa hodnota. Sloty sú to, čo má diagram objektov namiesto typovaných deklarácií atribútov, ktoré nesie diagram tried.

Kedy sa oplatí nakresliť diagram objektov?

Keď má diagram tried násobnosti alebo asociáciu na seba, ktorou si nie ste istí. Naplniť ho tromi či štyrmi skutočnými inštanciami zvyčajne spor urovná za minútu, a ak nedokážete nakresliť platný príklad, diagram tried je zlý.

V tejto sérii

Súvisiace články

Všetky články