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#
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Asociácia | Tieto dve triedy o sebe vedia. Predvolená voľba a správna odpoveď oveľa častejšie než tie pod ňou. | |
| Generalizácia | Prázdny trojuholník pri rodičovi. Potomok je druhom rodiča a môže zastúpiť všade tam, kde sa čaká rodič. | |
| Realizácia | Prerušovaná čiara, prázdny trojuholník pri rozhraní. Trieda poskytuje to, čo rozhranie deklaruje, bez dedenia stavu. | |
| Kompozícia | Vyplnený kosoštvorec pri celku. Časť patrí práve jednému celku a maže sa spolu s ním. | |
| Agregácia | Prá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. |
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.
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Trieda | Order | Obyčajný obdĺžnik so vzpriameným menom. Predvolená voľba a jediná z týchto, ktorá nepotrebuje žiadne označenie. |
| Abstraktná trieda | AbstractOrder | Meno 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» Printable | Zmluva 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» Status | Pevná 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» Money | Hodnota 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.
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Verejný | + name: String | Viditeľný pre všetko. To, čím členy rozhrania vždy sú. |
| Privátny | - id: UUID | Viditeľný len vnútri triedy. Na väčšine návrhových diagramov predvolený. |
| Chránený | # state: Status | Viditeľný pre triedu a jej podtypy. |
| Balíkový | ~ cache: Map | Viditeľný vnútri vlastniaceho balíka. V praxi zriedkavý. |
| Statický | podčiarknuté | Patrí klasifikátoru, nie inštancii. |
| Abstraktný | kurzíva | Trieda 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.
| Prvok | Notá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 | + placedBy | Ako 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 | - - - Enrolment | Trieda 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ácia | ◇ | Prá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.
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Poznámka | ⎒ komentár | Obdĺž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» sú 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» sú 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é
- 01Zdobený koniec je ten, na ktorom záleží: trojuholník pri rodičovi, kosoštvorec pri celku, šípka pri používanom.
- 02Prázdny trojuholník je generalizácia, prerušovaný prázdny trojuholník realizácia - plná čiara dedí, prerušovaná len sľubuje.
- 03Vyplnený kosoštvorec znamená zmazanie spolu s celkom; prázdny zdieľanie a prežitie.
- 04Násobnosť popisuje triedu, ktorej sa dotýka, takže ju čítajte smerom ku koncu, na ktorom sedí.
- 05Prázdna násobnosť znamená neurčené, nie jeden - je to medzera v diagrame.
- 06Úvodné lomítko je odvodené, zložené zátvorky sú obmedzenie a podčiarknuté meno je inštancia, nie trieda.
- 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
- 01Čo je UML?
- 02Symboly UML
- 03Výber diagramu
- 04Diagramy tried
- 05Príklady diagramov tried
- 06Ako nakresliť diagram tried
- 07Symboly diagramu tried
- 08Sekvenčné diagramy
- 09Príklady sekvenčných diagramov
- 10Ako nakresliť sekvenčný diagram
- 11Diagramy prípadov použitia
- 12Príklady prípadov použitia
- 13Diagramy aktivít
- 14Príklady aktivít
- 15Stavové diagramy
- 16Príklady stavových diagramov
- 17Diagramy komponentov
- 18Príklady komponentov
- 19Kreslenie diagramu komponentov
- 20Symboly komponentov
- 21Diagramy nasadenia
- 22Príklady nasadenia
- 23Diagramy objektov
- 24Diagramy balíkov
- 25Diagramy zloženej štruktúry
- 26Komunikačné diagramy
- 27Sekvenčný vs komunikačný
- 28Časové diagramy
- 29Diagramy prehľadu interakcií
- 30Diagramy profilov
- 31UML pomocou AI
- 32Príklad e-shopu
- 33Príklad banky
- 34Príklad mikroslužieb
- 35Príklad AWS
Súvisiace články
Diagramy štruktúry
Diagramy štruktúry
Diagramy štruktúry
Prehľad notácie
Prehľad notácie
Diagramy správania