Archyno
UMLPrehľad notácie

Symboly UML diagramu tried

Každá šípka, kosoštvorec a prerušovaná čiara, ktorú diagram tried môže niesť, nakreslená vedľa svojho významu - stránka, ktorú si necháte otvorenú pri kontrole značky.

11 min čítaniaUML 2.5.17 z 35

Krátka odpoveď

  • Zdobený koniec čiary je ten, ktorý nesie význam: trojuholník ukazuje na rodiča, kosoštvorec sedí na vlastniacom celku a otvorená šípka mieri na to, čo sa používa.
  • Plná čiara s dutým trojuholníkom je generalizácia, prerušovaná je realizácia. Prvá dedí štruktúru aj správanie, druhá len sľubuje operácie.
  • Násobnosť popisuje triedu, pri ktorej je napísaná - 0..* pri Order teda znamená veľa objednávok, nie veľa zákazníkov.
  • Na škatuliach: kurzíva znamená abstraktné, lomené zátvorky kľúčové slovo alebo stereotyp, úvodná lomka odvodený atribút a zložené zátvorky obmedzenie, ktoré má podľa modelu platiť.

01Šesť vzťahov#

PrvokNotáciaČo znamená
AsociáciaTieto dve triedy o sebe vedia. Predvolená voľba a správna odpoveď oveľa častejšie než tie pod ňou.
GeneralizáciaPrázdny trojuholník pri rodičovi. Potomok je druhom rodiča a môže zastúpiť všade tam, kde sa čaká rodič.
RealizáciaPrerušovaná čiara, prázdny trojuholník pri rozhraní. Trieda poskytuje to, čo rozhranie deklaruje, bez dedenia stavu.
KompozíciaVyplnený kosoštvorec pri celku. Časť patrí práve jednému celku a maže sa spolu s ním.
AgregáciaPrázdny kosoštvorec pri celku. Časť môže byť zdieľaná a celok prežije. Iný formálny význam nenesie.
ZávislosťPrerušovaná otvorená šípka. Jedna trieda používa druhú bez toho, aby na ňu držala referenciu - parameter, návratový typ, statické volanie.
UML diagram tried ukazujúci naraz každý druh vzťahu. Order generalizuje z AbstractOrder, realizuje rozhranie Printable, je zložený z OrderLine, agreguje Tag, je asociovaný s Customer a závisí od PriceService.
Každý druh vzťahu, ktorý diagram tried unesie, na jednom obrázku, aby sa čiary dali priamo porovnať.

Pravidlo, vďaka ktorému sa to zapamätá, znie: zdobený koniec je ten, na ktorom záleží - trojuholník ukazuje na všeobecnejší klasifikátor, kosoštvorec sedí na vlastniacom celku a otvorená šípka ukazuje na to, čo sa používa. Ak si zapamätáte, ktorý koniec nesie značku, význam si zvyčajne odvodíte.

02Samotné boxy#

Polovica značiek na diagrame tried je na čiarach a druhá polovica na boxoch, a práve tú druhú ľudia preskakujú. Obdĺžnik s menom je trieda; všetko nižšie mení, čím ten obdĺžnik tvrdí, že je, a čitateľ, ktorý ten rozdiel nepozná, prečíta rozhranie ako triedu a čuduje sa, prečo nemá atribúty.

PrvokNotáciaČo znamená
TriedaOrderObyčajný obdĺžnik so vzpriameným menom. Predvolená voľba a jediná z týchto, ktorá nepotrebuje žiadne označenie.
Abstraktná triedaAbstractOrderMeno kurzívou. Nedá sa inštanciovať - existuje na to, aby sa z nej generalizovalo. Tam, kde kurzíva neprežije - a na tabuli neprežije nikdy - sa píše {abstract} pod meno.
Rozhranie«interface» PrintableZmluva s operáciami a bez stavu. Triedy sa k nemu dostávajú realizáciou - prerušovanou čiarou s prázdnym trojuholníkom - nikdy generalizáciou.
Enumerácia«enumeration» StatusPevná množina literálov, vypísaných po jednom na riadok v priehradke pod menom: DRAFT, PLACED, SHIPPED. Bez značiek viditeľnosti - literály sú vždy verejné.
Dátový typ«dataType» MoneyHodnota bez identity: dve inštancie s rovnakými číslami sú tá istá vec. «primitive» je tá istá myšlienka pre vstavané typy.
Aktívna trieda‖ Scheduler ‖Dvojité zvislé čiary po bokoch. Objekt vlastní vlastné vlákno riadenia namiesto toho, aby čakal na zavolanie - proces, démon, konzument fronty.

Formy boxov. Všetko okrem prvej je kľúčové slovo alebo zmena rezu písma, a práve preto sa dajú tak ľahko prečítať bez povšimnutia.

Rozhranie má aj druhú, menšiu notáciu, ktorá nestojí žiadny box: lízatko - krúžok na paličke - nakreslené na klasifikátore, ktorý ho poskytuje, a k nemu patriaca objímka, otvorený polkruh, na tom, ktorý ho potrebuje. Zatlačte ich do seba a máte guľôčku s objímkou, z ktorej sú postavené diagramy komponentov. Hovorí presne to, čo prerušovaný trojuholník, na desatine miesta, a je to správna voľba v okamihu, keď má diagram viac než zhruba tri rozhrania.

03Vnútri boxu: viditeľnosť, typy a násobnosť#

Box triedy je pás s menom a pod ním až dve priehradky: atribúty, potom operácie. Obe sú nepovinné a box, ktorý je len meno, je úplne legálny - a na diagrame o vzťahoch je zvyčajne tou správnou voľbou.

PrvokNotáciaČo znamená
Verejný+ name: StringViditeľný pre všetko. To, čím členy rozhrania vždy sú.
Privátny- id: UUIDViditeľný len vnútri triedy. Na väčšine návrhových diagramov predvolený.
Chránený# state: StatusViditeľný pre triedu a jej podtypy.
Balíkový~ cache: MapViditeľný vnútri vlastniaceho balíka. V praxi zriedkavý.
StatickýpodčiarknutéPatrí klasifikátoru, nie inštancii.
AbstraktnýkurzívaTrieda alebo operácia nemá implementáciu. Tam, kde by kurzíva neprežila tabuľu, sa často píše «abstract».

Násobnosť sa píše na konci vzťahu a syntax je malá: 1 práve jeden, 0..1 nepovinný, * alebo 0..* ľubovoľný počet vrátane nuly, 1..* aspoň jeden a 2..5 skutočný rozsah. Chýbajúca násobnosť znamená neurčené, nie jeden - a preto je nechať ju prázdnu medzerou, nie predvoľbou.

Operácia sa píše + place(customer: Customer, at: Instant): Order - viditeľnosť, meno, parametre s typmi a za dvojbodkou návratový typ. Dve ozdoby sa objavujú dosť často na to, aby ste ich poznali: parameter môže niesť smer, ako v out receipt: Receipt, a atribút môže niesť predvolenú hodnotu, ako v - status: Status = DRAFT. Ani jedno nie je povinné a doménový model býva lepší bez oboch.

04Konce čiary: šípky, roly a kvalifikátory#

Vzťah nesie význam na oboch koncoch a takmer všetko, čo sa na diagrame tried pri revízii ukáže ako zlé, je na konci, nie v strede. Čiara hovorí, že dve triedy sú spojené; konce hovoria, kto sa vie dostať ku komu, koľkých, v akom poradí a pod akým menom.

PrvokNotáciaČo znamená
NavigovateľnosťOtvorená šípka na jednom konci: tento koniec je dosiahnuteľný z druhého a o ceste späť sa netvrdí nič. Order drží Customer; či si zákazník vie vypísať svoje objednávky, je samostatná otázka.
NenavigovateľnéMalý krížik na konci. Výslovne nedosiahnuteľné tým smerom - čo je oveľa silnejšie tvrdenie než nechať koniec holý, a oplatí sa ho urobiť na tom jednom či dvoch miestach modelu, kde ide o skutočné návrhové rozhodnutie.
Meno roly+ placedByAko sa tento koniec volá z druhej strany. Nevyhnutné v okamihu, keď sa trieda vzťahuje sama k sebe - manager a reports na dvoch koncoch medzi Employee a Employee - a užitočné vždy, keď samotný názov triedy nepovie, načo tá referencia je.
Násobnosť0..*Koľko objektov sedí na tomto konci na jeden na druhom. Čítajte ju smerom ku koncu, na ktorom je napísaná: 1 pri Customer a 0..* pri Order znamená jeden zákazník, ľubovoľný počet objednávok.
Reťazec vlastností{ordered}V zložených zátvorkách vedľa násobnosti. {ordered} znamená, že poradie je súčasťou významu, {unique}, že duplikáty nemôžu nastať - spolu sú rozdielom medzi zoznamom, množinou a multimnožinou.
Kvalifikátor[ isbn ]Malý box na zdrojovom konci držiaci kľúč. Mení 0..* na 0..1: knižnica má veľa kníh, ale knižnica kvalifikovaná ISBN má najviac jednu.
Asociačná trieda- - - EnrolmentTrieda pripojená prerušovanou čiarou k stredu asociácie, ktorá drží atribúty patriace dvojici, nie ktorejkoľvek strane - známka, dátum zápisu, cena v čase objednávky.
N-árna asociáciaPrázdny kosoštvorec v strede a tri či viac čiar z neho. Legálne, zriedkavé a takmer vždy zrozumiteľnejšie prekreslené ako trieda s tromi asociáciami - čo z toho aj tak urobí databáza.

Všetko, čo sa dá napísať na koniec čiary. Násobnosť čítajte smerom ku koncu, na ktorom sedí - práve táto konvencia spôsobí viac zle prečítaných diagramov než šípky.

05Poznámky, obmedzenia a odvodené členy#

Posledná skupina značiek je tá, ktorá nesie pravidlá, čo kresba z boxov a čiar sama vyjadriť nevie. Diagram tried je štruktúra a polovica toho, čo vie doménový expert, je podmienka na tej štruktúre - súčet, ktorý nikdy nesmie byť záporný, dvojica vzťahov, z ktorých smie byť vyplnený práve jeden.

PrvokNotáciaČo znamená
Poznámka⎒ komentárObdĺžnik s ohnutým rohom, pripojený obyčajnou prerušovanou čiarou k tomu, o čom je. Voľný text: predpoklad, otvorená otázka, odkaz na ticket, z ktorého trieda vznikla.
Obmedzenie{total >= 0}Zložené zátvorky, kdekoľvek obmedzenie platí - vnútri poznámky, vedľa atribútu, na konci asociácie. Tvrdenie, o ktorom model hovorí, že platí vždy, v akomkoľvek jazyku, ktorý sa číta jasne; OCL, ak sa model bude kontrolovať strojovo, a bežný jazyk, ak sa bude čítať.
Odvodený/ age: IntegerÚvodné lomítko. Hodnota sa počíta z iných namiesto toho, aby sa ukladala - čo je presne tá informácia, ktorú potrebuje generátor schémy aj recenzent kódu, a presne tá, ktorú ľudia vynechávajú.
Len na čítanie{readOnly}Nastavené pri vytvorení a potom už nikdy. Na konci asociácie je to rozdiel medzi referenciou, ktorú smiete prepnúť, a tou, ktorú nesmiete.
Xor{xor}Napísané na prerušovanej čiare medzi dvomi asociáciami: pre ktorýkoľvek objekt smie byť vyplnená práve jedna z nich. Faktúra ide osobe alebo firme, nikdy obom.
Množina generalizácií{complete, disjoint}Vedľa skupiny generalizácií zdieľajúcich jedného rodiča. complete znamená, že podtypy pokrývajú každý prípad, disjoint, že nič nemôže byť dvomi z nich naraz. Tie štyri kombinácie sú štyri naozaj rôzne modely.

Jedna konvencia mimo tejto tabuľky stojí za poznanie, lebo vyzerá ako diagram tried a nie je ním: podčiarknuté meno v tvare order1: Order je inštancia a diagram z takých je diagram objektov - tá istá notácia ukazujúca jeden okamih namiesto každého možného. Podčiarknutie vnútri boxu triedy znamená niečo úplne iné a je to statická značka z tabuľky priehradiek vyššie.

06Lomené zátvorky a zvyšok#

Text v lomených zátvorkách - «interface», «enumeration», «entity» - je stereotyp: rozšírenie štandardného slovníka, ktoré hovorí, akým druhom veci tento klasifikátor je nad rámec toho, že je „trieda“. Zopár ich definuje samotné UML; zvyšok pochádza z profilu, čo je mechanizmus, ako si vymyslieť vlastné bez toho, aby ste opustili jazyk.

Lomené zátvorky robia dve rôzne veci a špecifikácia ich rozlišuje, hoci na papieri ich nerozlíši nič. «interface» a «enumeration»kľúčové slová: sú súčasťou UML, majú pevný význam a sú legálne v každom nástroji. «aggregate root» či «pii» stereotypy: váš vlastný slovník, definovaný v profile, zmysluplný len pre čitateľa, ktorému niekto povedal, čo znamenajú. Oboje sa oplatí používať. Oplatí sa vedieť, ktoré z nich ste práve napísali, lebo ten druhý druh potrebuje na diagrame legendu a prvý nie.

Stereotyp môže niesť aj označené hodnoty - {owner = payments-team, retention = 7y} pod stereotypovanou triedou - a takto model začne držať metadáta, ktoré predtým zle držala tabuľka. To je mechanizmus, ktorý profil existuje definovať.

Po jednom riadku na každé

  1. 01Zdobený koniec je ten, na ktorom záleží: trojuholník pri rodičovi, kosoštvorec pri celku, šípka pri používanom.
  2. 02Prázdny trojuholník je generalizácia, prerušovaný prázdny trojuholník realizácia - plná čiara dedí, prerušovaná len sľubuje.
  3. 03Vyplnený kosoštvorec znamená zmazanie spolu s celkom; prázdny zdieľanie a prežitie.
  4. 04Násobnosť popisuje triedu, ktorej sa dotýka, takže ju čítajte smerom ku koncu, na ktorom sedí.
  5. 05Prázdna násobnosť znamená neurčené, nie jeden - je to medzera v diagrame.
  6. 06Úvodné lomítko je odvodené, zložené zátvorky sú obmedzenie a podčiarknuté meno je inštancia, nie trieda.
  7. 07Lomené zátvorky označujú buď kľúčové slovo UML, alebo váš vlastný stereotyp; vysvetlenie na diagrame potrebuje len ten druhý.

Ak to všetko chcete vidieť na skutočných modeloch, prečítajte si rozpracované príklady; ak vás zaujímajú dôvody za značkami namiesto značiek samotných, tak článok o diagrame tried.

07Časté otázky#

Čo znamenajú šípky v UML diagrame tried?

Dutý trojuholník je generalizácia a prerušovaný realizácia; plný kosoštvorec je kompozícia a dutý agregácia; plná čiara je asociácia a prerušovaná otvorená šípka závislosť. Hlava je v každom prípade na všeobecnejšom alebo vlastniacom konci.

Aký je rozdiel medzi plným a dutým kosoštvorcom?

Plný kosoštvorec je kompozícia, teda časť sa maže spolu s celkom a patrí práve jednému celku. Dutý kosoštvorec je agregácia, teda časť môže byť zdieľaná a celok prežije. Agregácia v UML 2.5.1 nenesie okrem tohto čítania žiadnu formálnu sémantiku.

Čo znamenajú plus, mínus a mriežka pred atribútom?

Sú to značky viditeľnosti: plus je verejné, mínus súkromné, mriežka chránené a vlnovka balíkové. Patria na návrhový diagram, kde je predmetom štruktúra kódu, a na doménovom modeli sa zvyčajne vynechávajú, pretože o biznise nehovoria nič.

Čo znamená lomka pred názvom atribútu?

Úvodná lomka označuje atribút ako odvodený: jeho hodnota sa počíta z iných atribútov alebo asociácií, namiesto toho aby sa ukladala. Zápis /vek na triede Osoba, ktorá už drží dátum narodenia, je to, čo generátoru schémy povie, aby nevytváral stĺpec, a revízorovi, aby nehľadal kód, ktorý ho udržiava v súlade.

Aký je rozdiel medzi kľúčovým slovom UML a stereotypom?

Obe sa píšu do lomených úvodzoviek a nie sú to tie isté veci. Kľúčové slovo ako interface alebo enumeration je súčasťou samotného UML a znamená to isté v každom nástroji. Stereotyp ako aggregate root je váš vlastný slovník definovaný v profile a čitateľovi, ktorému to nikto nepovedal, nehovorí nič - takže na diagrame potrebuje legendu, ktorú kľúčové slovo nepotrebuje.

V tejto sérii

Súvisiace články

Všetky články