UML klasių metamodelis

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).

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.

Ryšių tarp klasių metamodelis 
Pagrindiniai ryšiai tarp klasių yra:
 asociacija,
 generalizacija,
 priklausomybė.
Statinių ryšių tarp klasių metamodelis pateiktas 4 pav.

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į.

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.

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ų.

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

UML

en:Unified Modeling Language#Overview