MDA įrankiai

Post on 18-Jan-2016

70 views 0 download

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

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.

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

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.

MDA architektūra

MOF – Meta-Object FacilityCWM – Common WarehouseModel

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.

MDA ir tradicinis programų vystymo ciklas

MDA ir tradicinis programų vystymo ciklas

MDA ir tradicinis programų vystymo ciklas

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

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

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.

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

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;– ...

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.

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

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

PSM modelis

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.

QVT standartas modelių transformavimui (PIM/PSM)

Kas yra kodas?

...

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

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

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.

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.

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;

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

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

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

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

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

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.

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.

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

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

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.

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.

Pabaiga

Toliau priedas apie tai, kaip gali būti vertinami programinės įrangos projektavimo į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.

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

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

Projektavimo įrankių vertinimo kriterijai

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

Programos patikimumas; Spausdinimo palaikymas; Platformos;

Projektavimo įrankių vertinimo kriterijai

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

Projektavimo įrankių vertinimo kriterijai

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

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

Projektavimo įrankių vertinimo kriterijai

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

Projektavimo įrankių vertinimo kriterijai

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

Projektavimo įrankių vertinimo kriterijai

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

Projektavimo šablonų (design patterns) palaikymas;

Kaina.

Ačiū už dėmesį