Upload
noleta
View
74
Download
0
Embed Size (px)
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
Citation preview
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į