480 likes | 713 Views
Modelēšana un rīku būve (specseminārs). Elīna Kalniņa, Agris Šostaks 2013. Šodien. Saimnieciskie jautājumi (Kas, Kur, Kad, Kā ???) Ievads modelēšanas rīku būvē Kas ir modelēšana, modeļi, modelēšanas valodas Kas ir Domēn Specifiskas Valodas (DSL – Domain Specific Languages)
E N D
Modelēšana un rīku būve(specseminārs) Elīna Kalniņa, Agris Šostaks 2013
Šodien • Saimnieciskie jautājumi (Kas, Kur, Kad, Kā ???) • Ievads modelēšanas rīku būvē • Kas ir modelēšana, modeļi, modelēšanas valodas • Kas ir Domēn Specifiskas Valodas (DSL – Domain Specific Languages) • Rīku būves platformu apskats • Demo
Saimnieciskie I • Kas? • LU DF docente, LU MII vadošā pētniece Elīna Kalniņa • LU DF docents, LU MII vadošais pētnieks Agris Šostaks • LU DF bakalaura programmas studenti
SaimnieciskieII • Kad? • Trešdienās, 16:30 • Kur? • Raiņa 29-404 • Kā sazināties? • E-pasts: Agris.Sostaks@lumii.lv • E-pasts: Elina.Kalnina@lumii.lv • Skype: @agrissh ?
Saimnieciskie III • Ko darīsim? • Pasniedzēji izstāstīs metamodelēšanas, modeļbāzētās izstrādes pamatus un parādīs vairākas rīku būves platformas. • Studenti izvēlēsies kādu rīku būves platformu un uzbūvēs rīku: • Pasniedzēja ieteiktai modelēšanas valodai • Pašu izvēlētai modelēšanas valodai • Studenti referēs par pasniedzēja izvēlētu tēmu VAI
Saimnieciskie IV • Par ko dos kredītpunktus? • Semināru apmeklējumu un aktīvu piedalīšanos • Patstāvīgu modelēšanas rīka izstrādi un atrādīšanu seminārā
Kas ir modelēšana? • “Modeling in its broadest sense is the cost−effective use of something in place of something elsefor some purpose. It allows us to use something that is simpler, safer, or cheaper than reality instead of reality for some purpose. A model represents reality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality.”/Jeff Rothenberg/
Kāpēc modelēt? • Lai saprastu pasauli • Lai simulētu, t.i., paredzētu notikumus • Lai palīdzētu uzbūvēt sarežģītas lietas • arī lai tās vēlāk varētu saprast • arī lai vēlāk simulētu, t.i., pārbaudītu vai kaut kas derīgs iznāks
Kas ir modelis? • “A model is a simplification of a system built with an intended goal in mind. The model should be able to answer questions in place of the actual system.”/Jean Bézivin/
Modeļa piemērs “Sistēma” Modelis
Vēl divi modeļu piemēri “Sistēma” Vēlētāju aktivitāte Modelis 1 Modelis 2
Modeļi programmatūras izstrādē? • Lai uzbūvētu/saprastu sarežģītu programmatūras sistēmu, arī tiek būvēti modeļi, kas apraksta sistēmas dažādus aspektus dažādās detalizācijas pakāpēs • Sistēmas prasību specifikācija • Informācijas plūsmas modelis • Sistēmas konceptuālais modelis • Biznesa procesu modelis • Sistēmas projektējuma modelis • Datu modelis • Lietotāja saskarnes modelis • Sistēmas uzvedības modelis • ... • Programmatūras kods
Modelēšanas valodas • Modelēšanas valodas nepieciešamas, lai pierakstītu modeļus un lai citi šos modeļus varētu saprast. • Piemēri: • ER diagrammas • Čena sintakse • “Vārnu kāju” sintakse • ... • Datu plūsmu diagrammas (DPD) • UML • klašu diagramma • aktivitāšu diagramma • secības diagramma • stāvokļu diagramma • komponenšu diagramma • lietojumu diagramma • BPMN (apraksta biznesa procesus) • SysML • SQL (arī to var uzskatīt par modelēšanas valodu!) • ... • Modelēšanas valodas var būt gan grafiskas, gan tekstuālas! Modelis nav tikai bildīte! Svarīgs ir MĒRĶIS, ar kādu modelis ir veidots!
Modelēšanas valodu piemēri • Lietojumu diagramma • Aktivitāšu diagramma • Komponenšu diagramma • Secības diagramma • Klašu diagramma • Biznesa procesu modelis
Modelēšanas rīki • Modelēšanas rīki palīdz pierakstīt un izveidot modeļus, kuri nepieciešami izstrādes gaitā. Parasti tie ir paredzēti veidot modeļus kādā noteiktā valodā(s). • Var lietot zīmēšanas rīkus (t.i. rīkus, kas ļauj ievadīt patvaļīgu tekstu vai zīmējumu), piemēram, PowerPoint, LibreOffice, Visio, utml. ... • Ar šādiem rīkiem var uzzīmēt jebko – viegli uzzīmēt savu modeli savā valodā! Kas vēl to sapratīs? • Šādos rīkos ir ierobežotas iespējas pārbaudīt izveidotā modeļa korektību. Kā noķert kļūdas?
Modelēšanas rīku raksturiezīmes • Ļauj veidot modeļus tikai noteiktā modelēšanas valodā(s) • Veic sintakses pareizības pārbaudes • Veic modeļu validāciju • Veic papildus modeļu apstrādi • Veic modeļu pārveidojumus (transformācijas) • Ģenerē programmatūras koda fragmentus • Veic simulāciju (ja tiek modelēti, piem., biznesa procesi)
Domēna specifiskas valodas • Specifiskos problēmu apgabalos tiek lietotas specializētas modelēšanas valodas - domēna specifiskas valodas (DSL – Domain Specific Language), kuras ir paredzētas kādas konkrētas uzdevumu grupas veikšanai.
DSL valodas • Orientēta uz konkrētu problēmu apgabalu • Lietotāji var operēt ar pazīstamiem jēdzieniem • Var būt gan grafiskas, gan tekstuālas • Programmēšanas, definēšanas, aprakstīšanas valoda
DSL īpašības • Lai DSL būt praktiska jēga jābūvē kompilators • No DSL modeļiem var iegūt: • Kodu, kas integrējams platformā • Izpildāmu aplikāciju, • Testa piemērus, • Dokumentāciju, • ....
Tekstuālu DSL piemēri • SQL • HTML • UNIX shell scripts • Rīkos Maple un Mathematica lietotās valodas • BNF • ....
SQL SELECT a1.Name, a1.Sales, SUM(a2.Sales) Running_Total FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.sales or (a1.Sales=a2.Sales and a1.Name = a2.Name) GROUP BY a1.Name, a1.Sales ORDER BY a1.Sales DESC, a1.Name DESC;
HTML <html> <body> <p> Each table starts with a table tag. </p> <h4>One column:</h4> <table border="1"> <tr><td>100</td><td>200</td></tr> <tr><td>300</td><td>400</td></tr> <tr><td>500</td><td>600</td></tr> </table> </body> </html>
Grafisku DSL piemēri • MOLA • WebUML • OpenMusic • Microsoft Visual Programming Language • CODE • DRAKON • webMethods Flow • Labview • ....
OpenMusic http://recherche.ircam.fr/equipes/repmus/OpenMusic/
Microsoft Visual Programming Language http://msdn2.microsoft.com/en-us/library/bb483088.aspx
CODE http://www.cs.utexas.edu/users/code/code2.2a3-screenshot.gif
FLOW http://www1.webmethods.com/images/products/screenshots/wm_ESP_BI_2.jpg
DSL atbalsta rīki • Domēna specifisku valodu atbalsta rīku izstrādāšana ir darbietilpīgs process. • DSL rīku izstrādes procesu var uzlabot, izmantojot universālas, metamodeļu bāzētas rīku izstrādes platformas. • Ar šo pieeju vienkāršus DSL rīkus var izveidot ļoti ātri • DSL rīku būves platformas: • Microsoft DSL Tools • MetaEdit+ • Eclipses GMF platforma • GRAF • ...
DSL rīku būves platformas loma Lietotājs Domēna eksperts Programma 1 valodā MOLA Izpildāma transformācija Valoda MOLA MOLAs rīks Eksperts Programma 2 valodāMOLA Izpildāma transformācija DSL1 DSL 1 rīks Rīku būves platforma … … Programma 3 valodā MOLA Izpildāma transformācija DSL X DSL X rīks
Kā šīs platformas darbojas? • Tiek definēts domēna modelis • Tiek definēts prezentācijas modelis • Tiek definētas statisks attēlojums starp prezentācijas un domēna modeļiem • Ģenerējam DSL rīku
Ieguvumi • Programmēšana izmantojot domēna nevis programmēšanas valodu jēdzienus • Mazākas izmaksas • Lielāka produktivitāte • Labāka kvalitāte • Elastīgums – var nomainīt ģeneratoru • Īsāks apmācības laiks – mazākas prasības pret apmācāmajiem • Var mēģināt ieskaidrot klientam, ko modeļi nozīmē