|  |  |
| --- | --- |
|    | **Šiam straipsniui ar jo daliai trūksta išnašų į šaltinius.**Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |

|  |  |
| --- | --- |
|    | **Šį puslapį ar jo dalį reikia sutvarkyti pagal Vikipedijos standartus.**Jei galite, sutvarkykite. |

**UML klasių diagramos metamodelis** – UML klasių diagramos, kurių klasės aprašo UML klasių diagramų savybes. Tai yra, metamodelyje naudojama UML notacija modeliuoti UML klasių diagramos konceptus ir ryšius.
UML klasių diagramos metamodelis apibūdina pagrindinius diagramos elementus, pavyzdžiui, kas yra UML klasė (Muller, 1997).

Klasių diagrama apibrėžia statinę sistemos struktūrą. Supaprastintas UML klasių diagramos metamodelis pateiktas 1 pav. Pagrindiniai diagramos elementai yra klasės ir asociacijos tarp jų. Klasė apibūdina objektų aibę, o asociacija apibūdina ryšių (*angl. link*) aibę. Objektai yra klasės egzemplioriai (Zhao, Siau, 2003).

1 pav. Supaprastintas UML klasių diagramos metamodelis

### Klasės elemento struktūra

Klasė yra vaizduojama stačiakampiu, padalintu į tris dalis. Pirmoje skiltyje yra rašomas klasės vardas, antrojoje atributai – savybės, apibūdinančios klasę ir trečiojoje dalyje pateikiamos operacijos – veiksmai, kurios galima taikyti klasės objektui.

2 pav. Klasės elemento struktūra
3 pav. Klasės pavyzdys

### Ryšių tarp klasių metamodelis

Pagrindiniai ryšiai tarp klasių yra:

* asociacija,
* generalizacija,
* priklausomybė.

Statinių ryšių tarp klasių metamodelis pateiktas 4 pav.

4 pav. Ryšių tarp klasių metamodelis
**Asociacija**

Asociacija specifikuoja dvipusį ryšį tarp klasių. Asociacijos pabaiga (*angl. end*) yra vadinama vaidmeniu (*angl. role*). Vaidmuo gali turėti vardą. 5 pav. pateiktas asociacijos vaidmenų pavyzdys: žmogus įmonėje užima darbuotojo vaidmenį, o įmonė vaidina darbdavio vaidmenį.

5 pav. Asociacijos vaidmenų pavyzdys
Asociacija turi mažiausiai 2 vaidmenis, kurie apibūdina, kokį vaidmenį užima klasė (žr. 5 pav.).

Kiekvienas asociacijos vaidmuo turi daugybiškumo reikšmę (*angl. multiplicity*), kuri parodo kiek vienos klasės objektų, gali būti susieta su kitos klasės objektais. 6 pav. pateiktas daugybiškumo naudojimo pavyzdys: žmogus gali turėti nulį ar daugiau sąskaitų (0..\*), o sąskaita turi priklausyti bent vienam žmogui.

6 pav. Daugybiškumo naudojimo pavyzdys
Keičiamumo (*angl. changeability*) reikšmė parodo, ar asociacijos vaidmenys nekinta.
Egzemplioriai gali būti rūšiuojami (*angl. ordering*), kai daugybiškumas daugiau nei 1.

  

**Generalizacija**

Generalizacija - ryšys, kuriame viena klasė yra kitos klasės konkretizacija.

Generalizuojamo elemento savybės (žr. 4 pav.):

* Abstraktus – reikšmė *Tiesa*, kad elementas negali būti realizuotas tiesiogiai.
* Tėvas (*angl. root*) – reikšmė *Tiesa*, kad elementas negali turėti po tipių.
* Vaikas (*angl. leaf*) - reikšmė *Tiesa*, kad elementas negali turėti virštipių.

  

7 pav. Generalizacijos pavyzdys
**Priklausomybė**

Priklausomybė – vienkryptis ryšys, nurodantis, kad vienas elementas naudoja kitą elementą (žr. 4. pav.)

Bibliografija
-------------

* Zhao L. Siau K. (2003). Meta-Model Based Information Mediation // Idea Group Inc. p. 8 – 9.
* Muller P.A. (1997). Instant UML // Wrox Press, p. 73–94