IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

5. diel - UML - Class diagram

V minulej lekcii, UML - Doménový model , sme si vytvorili doménový model a tak sme si vlastne ukázali základné notáciu tried v UML a tiež základné vzťahy, ktoré medzi sebou triedy môžu mať. Doménový model bol zjednodušenou verziou modelu triedneho (Class diagramu). Dnes si ukážeme nejaké ďalšie väzby a vytvoríme si triedne diagram.

Class diagram

Diagram tried je diagram implementácie. To je rozdiel oproti doménovému modelu, ktorý bol skôr náčrt systému. Class diagram je už naostro, musí byť úplný, keď ho programátor prepíše do kódu, kód musí fungovať. Budeme tu mať teda všetky triedy, ktoré aplikácia bude obsahovať. Triedy budú mať všetky atribúty a tiež metódy. Diagram je platformovo závislý, teda špecifický pre určitý programovací jazyk. Okrem iného to znamená, že sa v identifikátoroch už nevyskytuje diakritika, atribúty majú dátové typy špecifické pre daný jazyk a podobne.

Význam diagramu

Class diagram je návod pre programátora, ten by už nemal s naším diagramom riešiť žiadne zásadné otázky ani problémy, jeho práca by mala byť (možno bohužiaľ :) ) Rutinné. Návrh systému majú na starosti skúsení programátori a analytici. Vďaka návrhu sa potom samotné programovanie môže odovzdať aj menej skúseným programátorom, ktorí sú mnohokrát lacnejšie. Diagram tried je dobré vytvoriť však aj v prípade, že systém píšeme len pre seba, donúti nás to najprv premýšľať v kontexte celého systému a až potom programovať. Nestane sa nám, že napíšeme polku systému a potom zistíme, že to takto nebude fungovať. Zložitejšie informačné systémy už nemožno vytvárať bez návrhu a aj práca v tíme sa bez kvalitného návrhu nezaobíde. Diagram nám do budúcnosti poslúži aj ako dokumentácia.

Ukážme si ešte raz grafickú notáciu triedy v UML, tentoraz už kompletná:

Trieda v UML diagrame - UML

V prvej časti obdĺžnika je opäť názov triedy, tentoraz už bez diakritiky.

V druhej časti sú prítomné atribúty s dátovými typmi. Pred každým atribútom je uvedený modifikátor prístupu. Máme 4 možnosti:

  • - (mínus) - Privátne atribút (private).
  • + (Plus) - Verejný atribút (public).
  • # (Hash kríž) - Protected atribút (protected).
  • ~ (Tilda) - Atribút viditeľný v rámci balíka (package).

Význam prvých 3 určite poznáme z objektovo orientovaného programovania, package atribút je atribút viditeľný v rámci celého balíka tried (teda menného priestoru).

Medzi názov atribútu a dátový typ píšeme dvojbodku.

Metódy v poslednom obdĺžnika sú zapisované podobne. Je možné špecifikovať ešte niekoľko symbolov, ale to sa v praxi príliš nepoužíva a preto sa tým nebudeme zaoberať.

Vzťahy

Oproti doménovému modelu tu môžeme použiť ešte ďalšie 2 vzťahy.

Realizácie (Realization)

Vzťah realizácia je medzi interface a triedou, ktorá tento interface implementuje. Trieda reprezentujúci Interac má tzv. Stereotyp. Ten sa píše medzi 2 a 2 špicaté zátvorky. Už sme sa s ním stretli u väzby <<include>> v Use Case diagrame. Stereotyp umožňuje zmeniť význam určitého prvku v diagrame, teraz meníme triedu na interface. Trieda implementujúce interface je k interface pripojená väzbou podobnou dedičnosti, iba je čiara vykreslená ako prerušovaná.

Realizácia interface v UML diagrame - UML

Asociačná trieda (Association class)

Asociačná trieda je trieda, ktorá sprostredkováva vzťah medzi 2ma entitami. Výhodou je to, že môže vzťahu dodať nejaké atribúty. Často sa uvádza príklad tried Osoba a zájazdy, kedy asociačné trieda Ucast priraďuje osobu za zájazd a dodáva čas príchodu a odchodu. Ďalším príkladom je potrebné Osoba a Hotel, kedy v hoteli nie je pevne stanovený čas ubytovanie a objednáva si ho konkrétna osoba. Podobná trieda by mohla ešte napr. Byť medzi zamestnancom a firmou, kde by definovala plat zamestnanca. Ďalším využitím môže byť možnosť takto vytvoriť väzbu M: N, podobne, ako to funguje u databáz. Asociačná trieda by teda držala kolekciu referencií. Použitie asociačná triedy môže byť trochu zavádzajúce a ak si nie ste istí, tak sa ju radšej vyhnite.

Asociačná trieda v UML diagrame - UML

Príklad Class diagramu

Prejdime k príkladu a vytvorme si Class diagram ITnetwork. Budeme samozrejme vychádzať z predošlého doménového modelu.

Vopred upozorňujem, že príklad je veľmi zjednodušený, návrh nie je ideálny a nectí MVC architektúru, ako je u webových aplikácií zvykom.

Príklad class diagramu, diagramu tried v UML - UML

Vidíme, že oproti doménovému modelu tu máme úplne novú triedu System. Tá drží inštancie aktuálneho článku a aktuálneho užívateľa. Ďalej drží kolekcia článkov, členov a sekcií. Doménový model iba mapoval dôležité entity z hľadiska business zadania a teda ani nepremýšľal nad tým, ako systém bude vnútri fungovať. Počet tried sa teda prakticky vždy s prechodom od doménového modelu k Class diagramu zvýši.

Inštancie systému sa vytvára s každým HTTP požiadavkou, ako nám hovorí poznámku k triede naľavo. Za povšimnutie stojí tiež Výučbový typ StavClanku, ktorý je tu zakreslený ako trieda a Výučbový typ je z neho vytvorený pomocou stereotypu << enumerable >>. Zvyšok sme si už popísali, takže si diagram prezrite. Ako je to pri všetkých diagramov, je to jeden možný spôsob, ako systém navrhnúť, možnosťou je nespočetne a aj tých správnych je veľa.

Nabudúce, v lekcii UML - State Machine diagram , sa zameriame na opis tried a ukážeme si ešte komplexnejší praktický príklad Class Diagramu.


 

Predchádzajúci článok
UML - Doménový model
Všetky články v sekcii
UML
Preskočiť článok
(neodporúčame)
UML - State Machine diagram
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
6 hlasov
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity