Príklady UML diagramov tried
Dve domény poriadne namodelované a zdôvodnenie každej čiary na nich - knižnica, ktorá potrebuje dedičnosť, a košík, ktorý potrebuje kompozíciu.
6 min čítaniaUML 2.5.15 z 35
Krátka odpoveď
- Dve domény pokryjú každý druh vzťahu, ktorý budete kresliť: knižnica, ktorá potrebuje dedičnosť, a košík, ktorý potrebuje kompozíciu.
- Diagram je pohľad na model, nie model. Pohľad, ktorý obsahuje každú triedu, neodpovedá na nič.
- Päť až dvanásť tried. Nad dvanásť sa vzťahy začnú krížiť a pozornosť ide na sledovanie čiar namiesto domény.
- Nakreslite triedy, o ktorých je aktuálna otázka, a zvyšných dvesto nechajte v modeli, kde ich nástroj stále nájde.
01Knižnica, kde si dedičnosť zaslúži miesto#
Diagram vyššie sa oplatí čítať vzťah po vzťahu. Book a DVD generalizujú LibraryItem, čo sa kreslí ako dutý trojuholník mieriaci na rodiča - a dôvod kresliť to takto, a nie ako dve nesúvisiace triedy so zduplikovanými atribútmi, je asociácia pod tým. Loan mieri na práve jeden LibraryItem, a keďže mieri na abstraktného rodiča, vie požičať ktorýkoľvek podtyp bez toho, aby vedel ktorý.
To je celý test dedičnosti v doménovom modeli: nie "pôsobia tie dve veci podobne", ale je niekde v modeli niečo, čo chce držať jednu alebo druhú bez toho, aby mu záležalo ktorú. Ak nie je, dve samostatné triedy sú menšia a poctivejšia odpoveď.
Všimnite si násobnosti na asociácii Member - Loan: 1 k 0..*. Člen bez výpožičiek je člen; výpožička bez člena je chyba. Tá asymetria je skutočným faktom o doméne a je uvedená na čiare, nie ponechaná na komentár. Článok o diagrame tried pokrýva, ako sa každý z tých symbolov kreslí.
02Košík, kde si miesto zaslúži kompozícia#
Tento neobsahuje žiadnu dedičnosť, a práve o to ide pri jeho ukázaní vedľa knižnice. Má namiesto toho kompozíciu a rozhranie, a každé je tam z dôvodu, na ktorý ten druhý diagram nemal využitie.
Plný kosoštvorec medzi Basket a BasketLine je tvrdenie: zmažte košík a položky idú s ním, lebo položka košíka je sama osebe bezvýznamná. Porovnajte to s obyčajnou asociáciou z BasketLine na Product, kde produkt položku zjavne prežije - ten istý tvar vzťahu, dve rozdielne životnosti, a notácia ich odlišuje.
PricingRule je bod rozšírenia. Sú nakreslené dve realizácie, lebo jedna realizácia nie je abstrakcia, je to trieda s krokom navyše - a vo chvíli, keď sú dve, je pridanie tretej akcie novou triedou, nie novou vetvou v existujúcej metóde.
03Ako ktorýkoľvek z nich prečítať za tridsať sekúnd#
Oba diagramy sa odvďačia za to isté poradie čítania, a nie je zľava doprava. Začnite násobnosťami, lebo tie sú rozhodnutiami: hovoria, čo systém pripúšťa, a najťažšie sa neskôr menia. Potom čítajte kosoštvorce, ktoré hovoria, čo sa maže s čím. Potom trojuholníky, ktoré hovoria, čo môže zastúpiť čo. Atribúty naposledy, a len tie, o ktorých pochybujete.
Diagram, ktorý toto čítanie prežije, sa oplatí si nechať. Ten, kde sú násobnosti prázdne, nie je hotový, nech vypisuje koľkokoľvek atribútov - a to je zďaleka najčastejší stav, v akom diagram tried nájdete.
Po jednom riadku na každé
- 01Dedičnosť kreslite vtedy, keď niečo v modeli drží rodičovský typ bez ohľadu na to, ktorý podtyp má.
- 02Kompozíciu použite, keď sa časť maže s celkom, a inak obyčajnú asociáciu.
- 03Rozhranie s jednou realizáciou je trieda s krokmi navyše; dve z neho spravia bod rozšírenia.
- 04Násobnosti sú rozhodnutia na diagrame. Prázdne znamenajú, že diagram nie je hotový.
- 05Päť až dvanásť tried na diagram. Pohľad, ktorý drží všetko, neodpovedá na nič.
Ďalej: ako nakresliť jeden od nuly a referencia symbolov na overenie značky, ktorou si nie ste istí.
04Časté otázky#
Aký je dobrý príklad UML diagramu tried?
Taký, ktorý sa dá prečítať jedným pohľadom a je zároveň dosť úplný na to, aby sa o ňom dalo diskutovať. Knižnica s abstraktnou triedou LibraryItem a dvomi podtypmi ukáže dedičnosť; košík zložený zo svojich položiek ukáže kompozíciu. Spolu pokryjú každý druh vzťahu, ktorý budete kresliť.
Má diagram tried zobraziť každú triedu systému?
Nie. Diagram je pohľad na model, nie samotný model, a pohľad, ktorý obsahuje všetko, neodpovedá na nič. Nakreslite triedy, o ktorých je aktuálna otázka, a zvyšných dvesto nechajte v modeli, kde ich nástroj stále nájde.
Koľko tried patrí na jeden diagram tried?
Päť až zhruba dvanásť. Pod päť zvyčajne ešte nie je povedané dosť na to, aby sa oplatilo kresliť; nad dvanásť sa vzťahy začnú krížiť a čitateľ míňa pozornosť na sledovanie čiar namiesto pochopenia domény.
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
Prehľad notácie
Základy
Základy
Diagramy správania