UML metamodelis

UML elementai

Visi UML fundamentalūs modeliavimo konceptai yra apibrėžti kaip elementai UML specifikacijoje (Object Management Group (2003)). Viskas, nuo konkrečių kalbos konstrukcijų, tokių kaip klasė iki abstrakčių konceptų, tokių kaip panaudojimo atvejai, yra minima kaip elementai. Tegu, mes norime aprašyti klasę Car (automobilis), kuris turi ryšius pavaizduotus 1 pav.. Klasė Car yra kaip specializacija klasės Vehicle ir yra susijusi su klase Tire. Kiekvienam klasės Car objektui ryšyje dalyvauja keturios Tire.
Kiekviena klase 1 pav. laikoma UML elementu. Specializacijos/generalizacijos sąryšys (angl. Specialization/generalization) tarp Vehicle ir Car, ir ryšys tarp Car ir Tire yra taip pat laikomi elementais. Netgi galai, kuriais ryšiai prijungiami prie klasių yra laikomi atskirais elementais. Visi šie elementai yra dalis UML semantinio modelio. 2 pav. vaizduoja elementus iš UML semantinio modelio, kurie yra naudojami aprašyti pateiktą pavyzdinį projektą. UML semantinis modelis yra standartizacijos pastangų rezultatas, kad formaliai apibrėžti objektų analizės ir kūrimo (OA&D) modelių semantiką. UML semantinio modelio ribose konceptai tokie kaip objektai ir klasės turi tikslias reikšmes. Kiekvieno elemento tipo tiksli semantika yra apibrėžta UML specifikacija.

UML elementai vaizduojami metamodelyje

Šio modelio sudedamosios yra UML elementai, kurie gali būti naudojami aprašyti projektus tokius kaip 1pav..
Kiekvienas UML elementas yra vaizduojamas 2 pav. kaip objektas. Yra keli elementų tipai; vienas elemento tipas kiekvienam atskiram modeliuojamam konceptui. Elementai aprašantys pavyzdinį projektą turi tipus, kad pavaizduoti klasę, apibendrinimus, ryšius ir ryšių galus. Tik tam tikras elementų išdėstymas turi prasmę. Pavyzdžiui, ryšio (angl. Association) elementas, kuris turėtų susijungimą su apibendrinimo (angl. Generalization) elementu, būtų beprasmiškas. Tačiau, ryšio objektas 2 pav., kuris turi susijungimą su objektu ryšio galas (angl. Association End), sėkmingai vaizduoja sąryšio, tarp cars ir tires, semantiką pavyzdiniame projekte. Elemento objektai gali turėti skirtingus atributus priklausomai nuo jų tipų. Pavyzdžiui, ryšio galo elementai turi atributus, kurie vaizduoja daugybę ryšio klasifikatorių.
UML semantinis modelis leidžia mums vaizduoti kiekvieną UML elementą kaip objektą. Jis apibrėžia kokius atributus gali turėti elemento objektas ir kokie sąryšiai gali egzistuoti tarp elemento objektų. Programinės įrangos projektas pavaizduotas unifikuota modeliavimo kalba aprašo programinės sistemos modelį. UML semantinis modelis yra naudojamas vaizduoti programinės sistemos aprašymą. Todėl UML semantika yra modelis skirtas aprašyti modelius. Todėl UML semantinis modelis yra dažnai minimas kaip UML metamodelis. Metamodelis yra kalba skirta aprašyti modelius. 3 pav. vaizduoja dalį UML metamodelio naudojamo 2 pav., kad pavaizduoti projektą 1 pav.. Pilnas UML semantinis modelis yra aprašytas detaliai OMG Unified Modeling Language Specification specifikacijoje (Object Management Group (2003)), UML Semantika skyriuje. Čia aprašyta meta modelio semantika yra CASE įrankio lygio. 3 pav. Element, ModelElement, Namespace, GeneralizableElement ir t. t. yra visi UML metamodelio klasėmis. Tokios klasės yra dažnai minimos kaip meta klasės. Bet koks projektas išreikštas UML gali būti išreikštas šių klasių pavyzdžiais, jų savybėmis ir ryšiais tarp jų.