2013 m. rugsėjo 18 d., trečiadienis

MDA architektūros esminis elementas



MDA architektūros esminis elementas - programinės sistemos ir probleminės srities modeliavimas. Tačiau modeliavimas MDA iš esmės nesiskirtu nuo kitų, kodo generavimu pagystų, programų kūrimo metodikų, jeigu perėjimai nuo PIM prie PSM modelių nebūtų vykdomi automatizuotai. Tokiu būdu, norint pasinaudoti visais MDA pranašumais - reikia realizuoti įrankius kurie vykdytų PIM - PIM ir PIM - PSM transformacijas. 2.1 skyriuje panagrinėsime kokią reikšmę modelių transformacijų realizavimui turi metamodeliavimas. 2.2 skyriuje apžvelgsime transformavimo strategijas. Pasirinktos transformacijos strategijos realizavimui, 2.4 skyriuje, bus palygintos ir parinktos eksperimentinės realizacijos aplinkos.

2.1  Metamodeliavimo reikšmė modelių transformacijoms
OMG konsorciumas sukūręs vieningą modeliavimo kalbą UML pateikė nauja standartą objektinės programinės įrangos modeliavimui ir projektavimui. Modelis yra sistemos ar jos dalies aprašymas formalia modeliavimo kalba [3, 16p.]. Tačiau, kad modelis būtų formalus jis taip pat turi būti apibrėžtas formaliai. Formaliems kalbų aprašymams naudojamos formalios kalbos vadinamos metakalbomis. Pavyzdžiui Pascal kalbos gramatiką galima aprašyti BNF kalbos priemonėmis. Tokiems formaliems metaduomenų ir modeliavimo kalbų aprašymams kurti OMG konsorciumas sukūrė MOF (Meta Object Facility) kalbą [6, 1-15p.]. Formalių modeliavimo kalbų aprašymų specifikavimas vadinamas metamodeliavimu. MOF kalba turėjo didelę įtaką esminių MDA principų kūrimui. MOF kalba[1] ypatinga tuo, kad ji yra save aprašanti, t.y. MOF kalba galima aprašyti ne tik kitų kalbų metamodelius, bet ir jos pačios modelį. MOF - tai ne tik gali būti naudojama naujų modeliavimo kalbų specifikavimui, bet ir universalus metaduomenų aprašymo ir saugojimo standartas [1, 2-2 ir 2-3p.]. MOF kalba atitinka OMG keturių lygmenų metadomenų architektūros aukščiausiąjį lygmenį (žr. 3 pav.).



3 pav. -- Keturi OMG metaduomenų architektūros lygmenys
Kiekvienas OMG metaduomenų architektūros lygmuo atitinka tam tikrą modelių abstrakcijos

lygį (žr. 2 lent.).
2 lent. -- Keturi metaduomenų architektūros lygmenys
Abstraktumo lygmuo
Aprašymas
M3
Metametamodeliai, kurių elementai susieti statiniais ryšiais. MOF modelio lygmuo.
M2
Metamodeliai, kurių elementai - tai M3 lygmens modelio elementų egzemplioriai (instances) ir M2 lygmens metaklasės. Šitas lygmuo atitinka UML kalbos gramatiką - UML metamodelį.
M1
Modeliai, kuriu elementai - M2 lygmens modelio egzemplioriai. Tai UML modelių lygmuo.
M0
Modelių panaudojimas. Šito lygmens elementai yra M1 lygmens elementų egzemplioriai, pvz. M1 lygmenyje - apibrėžiama klasė Customer, tai M0 lygmenyje klasės egzemplioriai bus Customer tipo objektai.

Literatūroje [3, 90p.] minimos dvi priežastys dėl kurių metamodeliavimimas labai svarbus modelių transformavimui ir MDA:
1.      Tai modeliavimo kalbų specifikavimo priemonė MDA architektūroje. Metakalbos pagrindu apibrėžę modeliavimo kalbos metamodelį galime specifikuoti PIM ar PSM kalbą.
2.      Transformacijų taisyklės (rules) aprašo kokie pradinio modelio elementai turi būti transformuoti į atitinkamus tikslinio modelio elementus.
4 pav. demonstruoja kaip metamodeliavimas siejamas su PIM - PSM modelių transformacijomis.


4 pav. -- Metamodeliavimo ir modelių transformacijų sąryšis

Pradiniame transformacijų realizavimo etape, naudojant metakalbą, mums tenka specifikuoti formalią PIM modeliavimo kalbą. Tai pasiekiama aprašant PIM metamodelį. PIM metamodelio pagrindu sukuriamas PIM modelio egzempliorius, kuris atitinka mūsų modeliuojamą programinę sistemą. Norint gauti tam tikrai programavimo platformai specifinį PSM modelį, mes taip pat turime specifikuoti PSM modelio formalizmą (formalism) aprašydami PSM metamodelį. Galutinis aplinkos kūrimo etapas - tai transformavimo įrankio realizavimas. Transformavimo įrankis, naudodamas transformacijos specifikaciją, transformuos mūsų PIM į PSM. Šiuo požiūriu transformacijų realizacija yra neatskiriama nuo metamodeliavimo. Tokiu būdu, norėdami realizuoti transformaciją, pradžioje turime apsibrėžti išeities PIM ir tikslo PSM modeliavimo kalbas.


Paminėtina, kad sąvokos „kalba", „metakalba" ir „metametakalba" yra reliatyvios, t.y. priklauso nuo nagrinėjamo abstrakcijos lygmens santykio su kitu lygmeniu, pvz. pagal 3 pav., jeigu kalbame apie UML - tai UML šiuo metu vadinama „kalba", UML kalbos metamodelis - aprašytas „metakalba" MOF, o MOF metamodelis aprašytas -„metametakalba", kuri irgi yra MOF.

Komentarų nėra:

Rašyti komentarą