1 / 47

Modelēšana un rīku būve (specseminārs)

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)

lynton
Download Presentation

Modelēšana un rīku būve (specseminārs)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modelēšana un rīku būve(specseminārs) Elīna Kalniņa, Agris Šostaks 2013

  2. Š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

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

  4. 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 ?

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

  6. 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ā

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

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

  9. Kas ir modelis?

  10. 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/

  11. Modeļa piemērs “Sistēma” Modelis

  12. Vēl divi modeļu piemēri “Sistēma” Vēlētāju aktivitāte Modelis 1 Modelis 2

  13. Modeļa piemērs – Parīzes metro 1

  14. Modeļa piemērs – Parīzes metro 2

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

  16. 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!

  17. Modelēšanas valodu piemēri • Lietojumu diagramma • Aktivitāšu diagramma • Komponenšu diagramma • Secības diagramma • Klašu diagramma • Biznesa procesu modelis

  18. 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?

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

  20. Rīku būve

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

  22. DSL aplikāciju būvei telefoniemNokia, Symbian/S60

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

  24. 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, • ....

  25. Tekstuālu DSL piemēri • SQL • HTML • UNIX shell scripts • Rīkos Maple un Mathematica lietotās valodas • BNF • ....

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

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

  28. Grafisku DSL piemēri • MOLA • WebUML • OpenMusic • Microsoft Visual Programming Language • CODE • DRAKON • webMethods Flow • Labview • ....

  29. OpenMusic http://recherche.ircam.fr/equipes/repmus/OpenMusic/

  30. MOLA

  31. Microsoft Visual Programming Language http://msdn2.microsoft.com/en-us/library/bb483088.aspx

  32. CODE http://www.cs.utexas.edu/users/code/code2.2a3-screenshot.gif

  33. FLOW http://www1.webmethods.com/images/products/screenshots/wm_ESP_BI_2.jpg

  34. DSL aplikāciju būvei telefoniemNokia, Symbian/S60

  35. User-Interface Designer

  36. User-Interface Designer

  37. WaKe DSML

  38. Izstrādes modelis

  39. Implementācija

  40. 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 • ...

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

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

  43. 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ē

  44. Izmaksas

  45. Demo

More Related