Klasių diagrama

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigacija, paiešką

Klasių diagrama yra vienas iš UML diagramų tipų. Tai statinės struktūros diagrama, vaizduojanti klasių rinkinį ir sąsajas, kartu su ryšiais, esančiais tarp klasių ir sąsajų.[1]

Klasių diagrama, nusakanti adapterio projektavimo pavyzdį

Elementai[redaguoti | redaguoti vikitekstą]

Klasė[redaguoti | redaguoti vikitekstą]

Klasę vaizduoja turimos sistemos objektas. Klasė aprašo turimo objekto funkcionalumą. Be funkcijų klasės taip pat turi objektų savybes saugančius atributus.

Sąsaja[redaguoti | redaguoti vikitekstą]

Sąsaja (angl. interface) yra klasės variantas. Sąsaja skirtingai nei klasė suteikia tik sistemos veiklos funkcionalumo apibrėžimą, ji neturi atributų.

Paketas [redaguoti | redaguoti vikitekstą]

Paketas (angl. package) leidžia į grupes surinkti klases ir/arba sąsajas, kurios yra iš panašios arba susijusios. Šių projektavimo elementų sugrupavimas pakete pagerina klasių diagramų, o ypač sudėtingų klasių diagramų, skaitomumą.

Ryšiai[redaguoti | redaguoti vikitekstą]

Ryšiai tarp klasių UML diagramose žymimi linijomis su sutartiniais ženklais jų galuose bei užrašais. Šie ženklai apibūdina santykį tarp klasių.

Generalizacija[redaguoti | redaguoti vikitekstą]

  • Paveldėjimas (sąryšis tarp specializuoto ir bendro tipo)
  • Realizacija (sąryšis tarp klasės ir interfeiso/sąsajos, kurią jis realizuoja)

Paveldėjimas[redaguoti | redaguoti vikitekstą]

Paveldėjimas/apibendrinimas (angl. Inheritance/Generalization) yra pagrindinė sąryšio rūšis, naudojama pakartotinai klasių diagramoje panaudojamiems elementams apibrėžti. Žemesnės (vaiko) klasės „paveldi“ bendrą funkcionalumą, nurodytą aukštesnėje (tėvo) klasėje.

Klasių diagrama rodo realizavimo ryšį tarp aukštesnės klasės "asmuo" ir dviejų poklasių "studentas" ir "profesorius"

Realizacija[redaguoti | redaguoti vikitekstą]

Realizavimas (angl. Realization) nurodo ryšį tarp klasių, kuomet vienas objektas (interfeisas (sąsaja) arba abstrakti klasė) apibrėžia funkcionalumų rinkinį kaip vienetą, o kitas objektas (klasė) „realizuoja“ arba įgyvendina šiuos abstrakčius funkcionalumus paskelbtus tėvo klasėje.

  • Realizacija nuo paveldėjimo skiriasi tuo, kad aprašyti abstraktūs metodai ne paveldimi, o turi būti realizuoti;
  • Klasė realizuoja operacijas aprašytus interfeise (sąsajoje);
  • Taikoma ir abstrakčioms klasėms.

Asociacija[redaguoti | redaguoti vikitekstą]

Asociacija (angl. Association) žymimas ryšys tarp dviejų klasių tarpusavyje sujungtų bet kokiu ryšiu. Pavyzdžiui asociacija „žmogus prenumeruoja žurnalą“ gali būti pavaizduota kaip studento ir universiteto klasės sujungtos asociacijos ryšiu.

Klasių diagramos asociacijos ryšio tarp dviejų klasių pavyzdys.

Asociacijų tipai[redaguoti | redaguoti vikitekstą]

  • Kompozicija
  • Agregacija
  • Priklausomybė
UML-asociaciju-tipai.png

Kartotinumas[redaguoti | redaguoti vikitekstą]

Kartotinumas (angl. multiplicity) parodo skaitinį ryšį tarp klasių objektų. Skaitinis ryšis įrašomas greta klasės, tam gali būti naudojami skaitmenys bei žvaigždutės.

0..1 Nulis arba vienas objektas
1 Vienas objektas
0..* Nulis arba daugiau objektų
1..* Vienas arba daugiau objektų
UML-asociacijos-savybes.png

Kryptingoji asociacija[redaguoti | redaguoti vikitekstą]

Kryptingoji asociacija (angl. Directed Association) rodo, kuri klasių kreipimosi kryptį.

Kompozicija[redaguoti | redaguoti vikitekstą]

Kompozicija (angl. Composition)  yra agregavimo sąryšio atmaina, kuri žymi, kad klases jungia tvirtas gyvavimo ciklas.

Kompozicija yra stipri asociaciacijos forma (pilnaviduris rombas)

  • Komponentai turi tik vieną savininką;
  • Komponentai negali egzistuoti be savininko, "is entirely made of";
  • Komponentai "gyvena" ir "miršta" kartu su šeimininku.

Agregacija[redaguoti | redaguoti vikitekstą]

Kaip ryšio tipas, agregavimas turi tas pačias savybes kaip ir asociacija. Tačiau agregavimas negali sieti daugiau kaip dvi klases. Reikia pažymėti, kad realizuojant agregavimo ir asociacijų ryšius skirtumo beveik nėra.

Agregacija (tuščiaviduris rombas)

  • Gali suformuoti "is part of" asociaciją, bet nebūtinai yra esminiai jai;
  • Gali egzistuoti nepriklausomai nuo visumos.
Klasių diagrama rodo kompoziciją tarp dviejų klasių kairėje ir agregavimą tarp dviejų klasių dešinėje

Taigi:

Kompozicija parodo, kad klasės dalyvaujančios kompozicijoje, negali viena be kitos funkcionuoti (universitetas - skyrius).

Agregacija parodo, kad tam tikrais laiko momentais (bet nevisada) vienos klasės objektas(-ai) tampa kitos klasės objekto(-ų) dalimi (skyrius - profesorius).

Vaizdavimas[redaguoti | redaguoti vikitekstą]

Rodyklės tipas nurodo kokio tipo yra tėvinė klasė.

  • Interfeisas (sąsaja) : punktyrinė linija + tuščiaviduris trikampis
  • Abstrakti klasė : ištisinė linija + tuščiaviduris trikampis
  • Klasė : ištisinė linija + užpildytas trikampis
UML-paveldejimas.png

Braižymo įrankiai[redaguoti | redaguoti vikitekstą]

  • http://www.yworks.com/products/yed/
  • http://umbrello.kde.org/
  • http://www.umlet.com/

Šaltiniai[redaguoti | redaguoti vikitekstą]

  1. http://www.studijuok.lt/article/25/praktinis_uml.htm

Vikiteka