Archyno
UMLDiagramy štruktúry

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.
UML diagram tried knižnice. LibraryItem je abstraktná trieda s title a id; Book aj DVD ju generalizujú. Member je v asociácii s Loan, jeden k nula alebo viac, a Loan je v asociácii s práve jedným LibraryItem.
Knižnica. Abstraktný základ nesie to, čo má každá položka; podtypy nesú to, čo majú len ony.

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#

UML diagram tried nákupného košíka. Basket je zložený z jedného alebo viacerých BasketLine a každý BasketLine je v asociácii s práve jedným Product. Basket je v asociácii s jedným rozhraním PricingRule, ktoré realizujú PercentageOff aj BuyOneGetOne.
Košík. Plný kosoštvorec hovorí, že položka neprežije košík, na ktorom je.

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é

  1. 01Dedičnosť kreslite vtedy, keď niečo v modeli drží rodičovský typ bez ohľadu na to, ktorý podtyp má.
  2. 02Kompozíciu použite, keď sa časť maže s celkom, a inak obyčajnú asociáciu.
  3. 03Rozhranie s jednou realizáciou je trieda s krokmi navyše; dve z neho spravia bod rozšírenia.
  4. 04Násobnosti sú rozhodnutia na diagrame. Prázdne znamenajú, že diagram nie je hotový.
  5. 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

Súvisiace články

Všetky články