Download presentation
Presentation is loading. Please wait.
1
Modelēšana un rīku būve (specseminārs)
Agris Šostaks, Elīna Kalniņa 2012
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 docents, LU MII vadošais pētnieks Agris Šostaks LU DF pasniedzēja, LU MII pētniece Elīna Kalniņa LU DF bakalaura programmas studenti
4
Saimnieciskie II ? Kad? Kur? Kā sazināties? Trešdienās, 16:30
Raiņa Kā sazināties? E-pasts: Skype: agrissh E-pasts (rezerves): ?
5
Saimnieciskie III Ko darīsim?
Pasniedzēji izstāstīs metamodelēšanas 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
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 else for 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? “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/
10
Modeļa piemērs “Sistēma” Modelis
11
Vēl divi modeļu piemēri
“Sistēma” Vēlētāju aktivitāte Modelis 1 Modelis 2
12
Modeļa piemērs – Parīzes metro 1
13
Modeļa piemērs – Parīzes metro 2
14
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
15
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!
16
Modelēšanas valodu piemēri
Lietojumu diagramma Aktivitāšu diagramma Komponenšu diagramma Secības diagramma Klašu diagramma Biznesa procesu modelis
17
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?
18
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)
19
Rīku būve
20
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.
21
DSL aplikāciju būvei telefoniem Nokia, Symbian/S60
22
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 SQL – tekstuāls DSL, visiem skaidrs, kas tas ir MOLA – grafisks DSL UML – DSL programmatūras izstrādei WebUML – valoda HTML aplikāciju izstrādei balstīta uz UML diagrammām (UML paplašinājums) Strads farmework valodas – Javas klašu kopa web aplikāciju izstrādei. Zīmē bildes kā lapas saistās, sadarbojās. Grafiski DSL bieži ir grafiskas programmēšanas valodas. Wikipedia pie Visual programming languages ir piemēri. Piemēri visdažādākajās sfērās – iebūvētā programmatūra, inžinieru aplikācijas – lidmašīnu būve utt., mūzika, ... TODO: Ievākt papildus informāciju un parādīt kādu grafisku interesantu sīkāk.
23
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, ....
24
Tekstuālu DSL piemēri SQL HTML UNIX shell scripts
Rīkos Maple un Mathematica lietotās valodas BNF ....
25
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;
26
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>
27
Grafisku DSL piemēri MOLA WebUML OpenMusic
Microsoft Visual Programming Language CODE DRAKON webMethods Flow Labview .... TODO: Ievākt papildus informāciju OpenMusic is an object-oriented visual programming environment for musical composition based on Common Lisp. It may also be used as an all-purpose visual interface to Lisp Programming. Microsoft Visual Programming Language, dataflow language for Robotics programming that is a component of Microsoft Robotics Studio CODE is a visual programming language and system for parallel programming, letting users compose sequential programs into parallel ones. The parallel program is a directed graph, where data flows on arcs linking the nodes representing the sequential programs. The sequential programs may be written in any language, and CODE outputs parallel programs for a variety of architectures, as its model is architecture independent. webMethods Flow (known as "flow code" or simply "flow") is a graphical programming language[1] that runs within the webMethods Integration Server. It was designed to simplify tedious, difficult to maintain or error prone aspects of integration/B2B activities.[2] DRAKON (Russian: ДРАКОН — acronym for "Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность", friendly Russian algorithmic language that guarantees clarity) is a visual algorithmic language developed for the Buran space project. Its development, started in 1986, was directed by Vladimir Parondzhanov. The goal was to replace specialised languages PROL2 (ПРОЛ2), DIPOL (ДИПОЛЬ) and LAKS (ЛАКС) used in the Buran project with one universal language. The work was finished in 1998 (5 years after the Buran project was officially closed), when an automated CASE programming system called "Grafit-Floks" was developed. After that it was used in Sea Launch and other space projects. DRAKON rules for creating diagrams are cognitively optimised for easy comprehension, making it a tool for intelligence augmentation.
28
OpenMusic
29
MOLA
30
Microsoft Visual Programming Language
Robotu būvei
31
CODE
32
FLOW
33
DSL aplikāciju būvei telefoniem Nokia, Symbian/S60
34
User-Interface Designer
35
User-Interface Designer
36
WaKe DSML
37
Izstrādes modelis
38
Implementācija
39
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 ...
40
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 DSL 1 DSL 1 rīks Rīku būves platforma Ja tiek izstrādātas vairākas līdzīgas sistēmas, programmatūras nodrošinājumi, varētu vēlēties aplikāciju, kur inženieris nodefinē ar ko šīs sistēmas atšķiras vai kā konkrētā sistēma izskatās un uzģenerēt konkrēto sistēmu. Šai gadījumā parādās DSL izveides nepieciešama. DSL valodas izstrāde kādam konkrētam mērķim pati par sevi ir nopietns uzdevums. Kad izveidota DSL valoda vēl ir nepieciešams rīks. Tradicionālā programmēšanas valodā rīka izstrāde netriviāla. Lietojot tradicionālās programmēšanas valodas tas būtu dārgi. To atmaksātos darīt tikai ļoti specifiskiem uzdevumiem – lidmāšīnu būvē, kosmosa kuģu būvē utt. Ja mums ir laba DSL rīku būves platforma tas kļūst vienkāršāk un pieejamāk. … … Programma 3 valodā MOLA Izpildāma transformācija DSL X DSL X rīks
41
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 Metamodelis – patiesībā ir terminoloģijas putra, jo dažādos rīkos tos sauc dažādi aiz komerciāliem un reklāmas nolūkiem. Piem. MS DSL to sauc par modeļiem. Bet ja skatās no MOF viedokļa, tad tas ir metmaodelis. Un teorētiskos pētījumos parasti lieto MOF pieeju, tāpēc es pieturēšos pie šis terminoloģiju. Prezentācijas metamodelis bieži nav saskaņā ar MOF. Programmēšanas valodas atkarīgas no rīka. MS DSLTools – C# GMF - Java MetaEdit+ - ????
42
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ē Improved productivity: Shorter time to market Faster customer feedback loops Lower development costs Allow later changes New customer segments can be addresed Reduced needs for autsorcing Quality: Participation with customers and Domain Experts Support for Early validation
43
Izmaksas
44
Demo
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.