MDA įrankiai

50
MDA įrankiai

description

MDA įrankiai. Įvadas. MDA – Model Driven Architecture (modeliu paremta architektūra). Tai architektūra, kuri palaiko MDE (Model Driven Engineering). “Architektūra” čia turima omenyje daugiau viso MDA karkaso architektūra, o ne kuriamos sistemos architektūra. - PowerPoint PPT Presentation

Transcript of MDA įrankiai

Page 1: MDA  įrankiai

MDA įrankiai

Page 2: MDA  įrankiai

Įvadas

MDA – Model Driven Architecture (modeliu paremta architektūra). Tai architektūra, kuri palaiko MDE (Model Driven Engineering).

“Architektūra” čia turima omenyje daugiau viso MDA karkaso architektūra, o ne kuriamos sistemos architektūra.

MDA, kaip ir MDE ar MDD (Model Driven Development) yra OMG (Object Management Group) iniciatyva.

Page 3: MDA  įrankiai

Tradicinių MDE metodų trūkumai

Net ir naudojant sistemų kūrimą naudojant modelius (UML, OMT ir kitus) kaip pirminius šaltinius (MDE principas), sistemos kūrimas yra lėtas:– Kuriamų sistemų realizacijos, kurios yra

apibrėžiamos modeliuose (pvz. UML ir kt.) paprastai atliekamos rankiniu būdu;

– Besikeičiantys reikalavimai lėtai perkeliami į sistemos modelį bei kodą.

Page 4: MDA  įrankiai

MDA privalumai

MDA iniciatyva žada žymiai pagreitinti programų kūrimą (sutrumpinant “Time To Market” etapą), programos kodą gaunant iš sistemos modelio atliekant transformacijas.

Naudojant MDA bus galima:– Žymiai pagerinti programinės įrangos kūrimo greitį;– Padidinti programinės įrangos kokybę;– Sumažinti rankinio darbo kiekį;– Sumažinti prisirišimą prie konkrečių technologijų

(Java, .NET, ASP ir pan.)– Greitai reaguoti į reikalavimų pakeitimus.

Page 5: MDA  įrankiai

MDA architektūra

MOF – Meta-Object FacilityCWM – Common WarehouseModel

Page 6: MDA  įrankiai

MOF

M3 sluoksnis yra meta-meta modelis, t.y. tas kuriuo galima aprašyti kitus meta-modelius (pvz. UML)

M2 sluoksnio modelis aprašo M1 sluoksnio elementus (t.y. UML elementus);

M1 sluoksnyje aprašomi elementai remiantis M2 sluoksnio modeliu (pvz. tam tikros programos UML modelis);

M0 yra duomenų sluoksnis realaus pasaulio objektų aprašymui.

Page 7: MDA  įrankiai

MDA ir tradicinis programų vystymo ciklas

Page 8: MDA  įrankiai

MDA ir tradicinis programų vystymo ciklas

Page 9: MDA  įrankiai

MDA ir tradicinis programų vystymo ciklas

Page 10: MDA  įrankiai

MDA transformacijos

Sistemų analitikas sudaro veiklos modelį, kuris naudojamas sukuriant PIM modelį.

Architektas sudaro aukšto lygio programinės įrangos modelį, nepriklausantį nuo platformos (vadinamas PIM – Platform Independent Model).

Vėliau jis yra transformuojamas į PSM (platform specific model) arba specifinį platformos modelį

Specifinis platformai modelis transformuojamas į programinės įrangos kodą.

Page 11: MDA  įrankiai

MDA transformacijos

Paprastai tai tiesioginės inžinerijos procesas, nors MDA įgalina ir atvirkštinę inžineriją visuose lygiuose (žr. kitą skaidrę).

Atlikus visas transformacijas turėtume gauti jau veikiančią programinę įrangą.

Page 12: MDA  įrankiai

MDA ryšiai tarp modelių

Naudojantis MDA principu, programinės įrangos architektas sudarytų PIM modelį ir jį tarkim transformuoti į PSM modelius, kurie yra SQL duomenų bazė, J2EE enterprise beans komponentai ir JSP vartotojo sąsaja. Vėliau PSM būtų atitinkamai transformuot i DDL, Java kodą ir JSP ir HTML dokumentus.

Page 13: MDA  įrankiai

Kas yra CIM?

CIM – Computation Independent Model. Modelis aprašantis veiklos (verslo) logiką:– OSM (Organisation Structure Metamodel);– BPMN (Business Process Modeling Notation);– BPDM (Business Process Definition Metamodel);– ...

Page 14: MDA  įrankiai

Kas yra PIM?

Tai nuo specifinės platformos atsietas sistemos analitinis modelis (Platform independent model):– Panaudos atvejų (use case) diagramos;– Veiklos (activity) diagramos;– Klasių (class) diagramos;– ...

Page 15: MDA  įrankiai

PIM modelis

Platform Independent Model yra tas modelis, kurį vienintelė turėtų sudaryti programinės įrangos architektas ir iš kurio transformacijų pagalbą būtų generuojami PSM modeliai. PIM Modelis pagal MDA galėtų būti išreikštas bet kokiu modeliu, dažniausiai yra išreiškiamas UML modeliu. Paveikslėlyje pateiktas dažnai pasitaikančios informacinės sistemos PIM modelis išreikštas UML modeliu.

Page 16: MDA  įrankiai

Kaip iš CIM konvertuoti į PIM?

??? CIM traktuojamas tik kaip gairė sukuriant

PIM modelį (rankiniu būdu); UML netinkamas CIM modeliavimui; Kol kas nėra* jokio formalaus būdo

transformacijoms atlikti.

* Bandymų atlikta tikrai nemažai ir pasiekta tam tikrų rezultatų.

Page 17: MDA  įrankiai

Kas yra PSM?

Tai atitinkamai platformai (Platform Specific Model) skirtas analitinis modelis, gaunamas iš PIM:– Dažniausiai realizuojama taikant UML profilius

(šablonus), kur UML elementams ir stereotipams aprašomi platformai būdingi atitikmenys;

– Kol kas sunkiai sekasi sudaryti vienareikšmius perėjimus tarp PIM ir PSM

Page 18: MDA  įrankiai

PSM modelis

Page 19: MDA  įrankiai

Kaip iš PIM konvertuoti į PSM

??? Rankiniu būdu (sukuriant PSM pagal PIM, galbūt

dalinai taikant šablonus); Automatinės transformacijos panaudojant

profilius (šablonus); Konvertavimui naudojamas transformacijos

modelis (PDM – Platform Definition Model). Transformacijos modelis aprašo kaip PIM esybės ir jų ryšiai atvaizduojami atatinkamame PSM modelyje.

Page 20: MDA  įrankiai

QVT standartas modelių transformavimui (PIM/PSM)

Page 21: MDA  įrankiai

Kas yra kodas?

...

Page 22: MDA  įrankiai

Kaip konvertuoti iš PSM į kodą

??? Naudojamas kodo generatorius, kuris

sukuria kodą panaudodamas: PSM (dažnai paima jį tiesiog iš XMI); Specifinės (target) platformos modelį; Srities modelį.

Page 23: MDA  įrankiai

Kaip modeliuoti programos realizaciją (implementation) ?

??? Galbūt – naudojant naują fUML (foundation UML) standartą? Galbūt - naudojant xUML (eXecutable UML); xUML yra viena iš UML šeimos kalbų, kuri gali apibrėžti

modelio dinamiką ir kurios pagalba galima modeliuoti kompiliuojamas programas;

Tam naudojama Action language kalba. Keletas realizacijų: Object Action Language(OAL), Shlaer-Mellor Action Language(SMALL), Action Specification Language(ASL), That Action Language(TALL), Starr's Concise Relational Action Language(SCRALL) // vienintelė grafinė

kalba

Page 24: MDA  įrankiai

MDA įrankiai

Kūrimo įrankiai – pradinių modelių sukūrimui ir tolesniam koregavimui;

Analizės įrankiai – modelių pilnumui, teisingumui analizuoti, skaičiuoti įvairias metrikas;

Transformavimo įrankiai – transformacijoms tarp modelių ir programinio kodo realizavimui.

Testavimo įrankiai – testuoti modeliams (čia model-based testavimas);

Imitavimo (simulation) įrankiai – sistemos vykdymo imitavimui; Meta-duomenų valdymo įrankiai (ryšių užtikrinimui tarp

skirtingų modelių); Atvirkštinės inžinerijos įrankiai.

Page 25: MDA  įrankiai

MDA problemos

“Idealistiška” iniciatyva – norima aplenkti programavimo etapą, o atvirkštinė kodo inžinerija nepageidaujama. Tai paskatino “Pragmatic MDA” gimimą, kuri labiau apjungia tradicinius vystymo metodus su MDA standartais.

Nepilni standartai – kai kurie nėra pilnai sukurti, kiti dar nepatvirtinti kaip standartai.

Specializuotų įgūdžių poreikis (tokius specialistus mažai kas ruošia).

Pasitikėjimas OMG. Neaiški vertė. Dinamikai apibrėžti naudojama xUML action

language kalba, kuri yra didesnio abstrakcijos lygio lyginant su 3GL kalbomis. Ar tai leis greičiau kurti efektyvesnes, kokybiškes programas – klausimas.

Page 26: MDA  įrankiai

MDA įrankių charakteristikos

PIM palaikymas (ar galima kurti/redaguoti PIM modelius):– Galimybė sudaryti PIM modelį naudojant UML;– Galimybė sudaryti PIM modelį naudojant OMT;– Galimybė sudaryti PIM modelį naudojant OCL;

PSM palaikymas (ar galima kurti/redaguoti PIM modelius):– Galimybė gauti PSM modelį naudojant UML;– Galimybė gauti PSM modelį naudojant OMT;– Galimybė gauti PSM modelį naudojant OCL;

Page 27: MDA  įrankiai

MDA įrankių charakteristikos

Skirtingų PSM generavimas (ar galimos skirtingos PSM transformacijos iš to paties PIM’o)

Modelių integracija (ar galima dirbti su keliais modeliais, iš kurių gaunama programa);

Page 28: MDA  įrankiai

MDA įrankių charakteristikos

Programinės įrangos vystymas (ar teikiami įrankiai programos kodo tvarkymui ir pan.);

Ryšiai su kitais įrankiais (ar įrankis gali tiesiogiai komunikuoti su kitais įrankiais, importuoti/eksportuoti skirtingų įrankių modelius ir pan.);

Galimybė kurti savas transformacijas bei koreguoti egzistuojančias (built-in);

Page 29: MDA  įrankiai

MDA įrankių charakteristikos

Modelio sudėtingumo valdymas (čia – peržiūros režimo valdymas, galimybė nurodyti modelio datiliškumą vaizdavimui);

Analizės priemonės (priemonės modelių taisyklingumui, pilnumui patikrinti);

Išraiškingumas (įrankis teikia pakankamą žymėjimų aibę pilnai atvaizduoti PIM, PSM modeliams);

Šablonai (įrankis leidžia kurti elementų šablonus);

Page 30: MDA  įrankiai

MDA įrankių charakteristikos

Refactoring’o palaikymas (Pakeitimai PIM’e iškart verčiami į PSM’ą ir atvirkščiai);

Ryšiai tarp modelių (PIM<->PSM<->kodas išlaiko ryšius);

Trasavimas (čia – vykdomų transformacijų atsekamumas);

Programinės įrangos gyvavimo ciklo palaikymas (įrankis leidžia palaikyti programinės įrangos kūrimo ciklą (analizė, projektavimas, testavimas, diegimas, palaikymas);

Page 31: MDA  įrankiai

MDA įrankių charakteristikos

Standartų palaikymas (UML, XMI); Transformacijų kryptis:

– PIM -> PSM (galimybė vykdyti tiesioginę inžineriją gaunant specifinį modelį iš apibendrinto);

– PIM <- PSM (galimybė vykdyti tiesioginę inžineriją gaunant apibendrintą modelį iš specifinio);

– PSM -> kodas (galimybė tiesiogiai generuoti kodą iš specifinio modelio, tiesioginė inžinerija);

– PSM <- kodas (galimybė gauti specifinė modelį atlikus atvirkštinę programos kodo inžineriją, sinchronizavimo priemonės ir galimybės).

Page 32: MDA  įrankiai

MDA įrankių charakteristikos

Palaikomos transformacijų kalbos:– Naudojama specifinė įrankio kalba;– Transformacijos rašomos Java kalba;– Transformacijos rašomos C# kalba;– Transformacijos rašomos Basic kalba

Įrankio kaina.

Page 33: MDA  įrankiai

MDA įrankiai

AndroMDA– Atviro kodo (www.andromda.com)– Pritaikytas iš UML modelių generuoti J2EE projektus,

realizuotus Java programavimo kalba.– Palaikomos Hibernate, EJB, Struts, Spring ir WebServices

technologijos. Programinės įrangos generavimas:

– Sukuriamas PIM modelis naudojantis UML įrankiu (MagicDraw, Poseidon, Rational Rose).

– Sukurtas modelis eksportuojamas į XMI dokumentus. – Naudojantis ANT įrankiu iškviečiama AndroMDA programa, kuri

pagal parametrus ANT įrankio scenarijuose atlieka transformacijas į reikiamus komponentus.

Page 34: MDA  įrankiai

MDA įrankiai

Page 35: MDA  įrankiai

MDA įrankiai

Rational XDE MDA Toolkit – Rational XDE MDA Toolkit yra add-in

komponentas. XDE kaip modeliavimo įrankis yra tiesiog papildomas galimybėmis atlikti gudresnį kodo generavimą iš UML modelių. Vienas iš šio įrankio privalumų, kad viename įrankyje turime ir Modeliavimo įrankį, MDA transformacijų įrankį ir taip pat kodo redagavimo įrankį.

Page 36: MDA  įrankiai

MDA įrankiai

ArcStyler– Vienas labiausiai išvystytų šio tipo įrankių;– Leidžia kurti biznio, UML modelius bei realizacijos

kodą;– Integracija su MagicDraw;– Galimos “model-to-model”, “model-to-

infrastructure” transformacijos;– Automatinis atvirkštinės inžinerijos palaikymas (iš

programų);– Pilnas išplečiamumas (galimybė prisitaikyti kodą).

Page 37: MDA  įrankiai

MDA įrankiai

Page 38: MDA  įrankiai

MDA įrankiai

OpenMDX– Atvirojo kodo (http://www.openmdx.org/);– Pritaikytas iš UML modelių generuoti J2EE projektus,

realizuotus Java programavimo kalba;– Palaikomos CORBA, J2SE, J2EE ir .NET platformos ir

technologijos;– DB palaikymas: Firebird, PostgreSQL, Oracle, DB2, MsSQL – Palaiko populiarius UML modeliavimo įrankius (Rational

Rose, MagicDraw, Poseidon);– Galima kurti savas transformacijas.

Page 39: MDA  įrankiai

MDA įrankiai

Programinės įrangos generavimas naudojantis OpenMDX įrankiu yra toks: – Sukuriamas PIM modelis naudojantis UML įrankiu (MagicDraw, Poseidon, Rational Rose). – Sukurtas modelis eksportuojamas į XMI dokumentus arba išsaugomas Rational Rose .mdl

formate. – Naudojantis ANT įrankių iškviečiama OpenMDX programa, kuri pagal parametrus ANT įrankio

scenarijuose atlieka transformacijas į reikiamus J2EE, J2SE, .NET komponentus, vartotojo sąsaja, Java Beans, DB modelius.

Page 40: MDA  įrankiai

Pabaiga

Toliau priedas apie tai, kaip gali būti vertinami programinės įrangos projektavimo įrankiai.

Page 41: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

Saugyklos palaikymas:– yra/nėra ar platesnė skalė;– Failinė sist.;– DB;– Išplėtimo priemonės;– Naudojimo galimybės, specifinės savybės.

RT (Round Trip) inžinerija:– Pasirinkta skalė;– Realiu laiku;– Integruota;– Palaikomos kalbos.

Page 42: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

HTML dokumentacija; UML versijos palaikymas (1.3 .. 2.1); UML diagramų palaikymas; Sąsajos intuityvumas: Duomenų modelio integracija;

Eksportas į DDL, SQL; Tiesioginė sąsaja su DB; Sinchronizavimo galimybės (RT duomenų modeliui).

Page 43: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

Versijų kontrolė (visual source source safe, CSV, subversion, kita);

Navigacija modelyje; Scenarijų (skriptingo palaikymas):

– Galimybė naudoti specifinius scenarijus;– Galimybė naudoti išplėtimo priemones (API);– Palaikomos programavimo kalbos (bindings).

Page 44: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

Diagramų eksportavimas (XMI, HTML, kiti formatai);

Programos patikimumas; Spausdinimo palaikymas; Platformos;

Page 45: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

Integruotas redaktorius; Dinaminių savybių pasiėmimas (“grabinimas”)

Page 46: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

MDA palaikymas (programų generavimo ypatybės, transformacijos);

Metrikų integravimas į įrankį; Integracija su projekto valdymo įrankiais; XMI palaikymas

Page 47: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

UML profiliai– Veiklos procesų modeliavimas– Veiklos modeliavimas;– Duomenų modeliavimas;– Web modeliavimas

Page 48: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

Projekto gyvavimo ciklo palaikymas– Veiklos modeliavimas;– Reikalavimų valdymas;– Analizė ir projektavimas;– Testavimas;– Versijų kontrolė;– Projekto valdymas;– ...

Page 49: MDA  įrankiai

Projektavimo įrankių vertinimo kriterijai

Generuojamas kodas (tiesiogiai palaikomos, epr 3 šalių įrankius);

Projektavimo šablonų (design patterns) palaikymas;

Kaina.

Page 50: MDA  įrankiai

Ačiū už dėmesį