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

Slides:



Advertisements
Similar presentations
Ma.
Advertisements

El Alfabeto Con Vocabulario
Click on each of us to hear our sounds.
Las Vocales En Espanol.
Steve and the CPSC 311ers Singing a Song Steve Doesn’t Know In a Language Steve Doesn’t Know (Sounds Like a Metaphor for CPSC 311) Lyrics by Junoh Lee.
HIRAGANA by number of strokes Images from:
Līguma jēdziens, veidi, noslēgšana. Līgumu brīvība.
Tālmācības centra redzējums un pieredze par biznesu zināšanu sabiedrībā Komercdarbības kursā  Jānis Kapenieks, Atis Kapenieks  Tālmācības studiju centrs,
PHONICS Repeat each sound. Blend the sounds. Read each word.
ma mu mi mo me pe pi pa pu po si sa so.
SAM «Veicināt efektīvu energoresursu izmantošanu, enerģijas patēriņa samazināšanu un pāreju uz AER apstrādes rūpniecības nozarē» , Uzraudzības.
Sílabas con m,p,s tema 2. pe so ma si mu se.
MA. ME MI MO MU MÁ MÉ MÍ MÓ MŮ LA LE LI.
Education, base for future water companies needs and sustainability
Es esmu Krišjānis Liepiņš no biedrības “Bērnu Vides skola”.
Brokastis ar Amadeus Neatkarīgi un unikāli Līga Kovale gada 17
INFORMĀCIJAS SISTĒMU METODOLOĢIJAS (DSP404)
SECURITY SERVICES STATISTICS IN LATVIA
Bibliotēka 2.0 Teorija „Teorētiskā bāze maģistra darba izstrādei”
Grafiskie informācijas organizatori
Tija Zīriņa, Agrita Tauriņa, Anna Vulāne RPIVA BVPC
Programmatūras paštestēšana
Horvātijas pieredze Projekts: “Aktīvās metodes, kas uzlabo motivāciju un kvalitāti mācību vidē” Ulla Salomäki, EBC, Erasmus+ IST Kurss “Action Methods.
Jānis Zuters, Ratnieki Latvijas Universitāte Datorikas fakultāte
Līklīnijas kustība Ķermeņa līklīnijas kustības trajektorija var būt jebkuras formas līkne. Līknei var būt noslēgta vai nenoslēgta forma. Mag.phys. A.Krons.
Riebiņu vidusskolas skolotāja
– instruments komunikācijas prasmju uzlabošanai biznesam
Kopīpašums.
Darbības - sazarojuma operatori
NEKOMPETENCE VAI BEZDARBĪBA Neatkarīgā policistu arodbiedrība
ES tiesību pārākums un tiešā iedarbība.
Formālās specifikācijas
Valodas tehnoloģiju lietojums mašīntulkošanas risinājumos
G.Bārzdiņš, D.Goško, P.Paikens 24/11/2017
VPP „SOPHIS” 2.projekta „Uz ontoloģijām balstītas tīmekļa videi pielāgotas zināšanu inženierijas tehnoloģijas” LU Datorikas fakultātes 3.posma uzdevumi.
11/20/2018 5:11 PM Kreditoru prasījumu izvērtēšana maksātnespējas procesā. Problemātika un aktuālā tiesu prakse. Ivanda Avotiņa – sertif. maksātnespējas.
Eiropas Sociālā fonda projekts
Rīgas 25. vsk g. Vita Ozola Ģeogrāfija.
PVN numura pārbaude Guntis Strazds Rīga, 2004.gada 23.septembris
Emisijas faktori un smaku mērījumi
1.seminārs “Pētījuma stratēģija un problēmas identificēšana”
Ms Access Tabulas 2. daļa Andris Šteins, 2009.
Datorika Liepājas Universitātē (LiepU)
DMF Informātikas katedra
Dzeramā ūdens kvalitātes stabilitāte pilota mēroga ūdens apgādes sistēmā VPP Projekts Nr.4 – Tehnoloģijas drošai un uzticamai gudrajai pilsētai (GUDPILS)
TIENS CINKA KAPSULAS.
Intelekts un kreativitāte
Projekts “Eiropas pētījums par HIV matemātisko modelēšanu un HIV testēšanas aktivitāšu izmēģinājumiem riska grupās” HERMETIC – HIV European Research.
EFEKTĪGAS PREZENTĀCIJAS IZVEIDOŠANA
Atvērtā koda programmatūra
Programmēšanas valodu pamati
Eiro- zona Latvija ES ES valstis Perso- nības Kontū- ras
REACH 2018 Sagatavojiet reģistrācijas pieteikumu kā IUCLID dokumentāciju.
Globalizācija un attīstība
REACH 2018 Apvienojieties ar saviem līdzreģistrētājiem —
Ievads proteīnu kristalogrāfijā
Ievads proteīnu kristalogrāfijā
Eiropas nostādnes Open Access jautājumos un OpenAIRE
REACH 2018 Atrodiet savus līdzreģistrētājus un gatavojieties kopīgai reģistrācijai.
Latviešu valodas modelēšana automātiskai runas atpazīšanai
Programmēšanas valodu klasifikācija un lietojumsfēra
Attēlojuma līmenis (Presentation Layer)
vadītājs: Dr.habil.sc.comp., profesors J.Bārzdiņš
Projekts “Pašvaldību aktivitāšu īstenošana, lai nodrošinātu skolēnu pārvadāšanu un ar to saistītos atbalsta pasākumus” Sandra Cakule Valsts reģionālās.
Darbinieku nosūtīšanas tiesiskie un praktiskie aspekti.
Zinātniski metodiskie Analizatora uzbūves pamati:
Kompetenču pieeja mācību saturā
IEVADS MENTORDARBĪBĀ Eiropas Sociālā fonda projekts “Inovatīva un praksē balstīta pedagogu izglītības ieguve un mentoru profesionālā pilnveide” Nr.2010/0096/1DP/ /09/IPIA/VIAA/001.
Latvijai adaptētas nākotnes klimata projekcijas un klimata projekciju analīzes rīks – Klimata datu menedžeris (Climate Data Manager) Daiga Cepīte-Frišfelde.
DARBA AUTORS: ROBERTS B Ē RZI Ņ Š T Ē MA: PASAKAS PAR ZIEDIEM UN ANNA SAKSE.
Presentation transcript:

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

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

Saimnieciskie II ? Kad? Kur? Kā sazināties? Trešdienās, 16:30 Raiņa 29-404 Kā sazināties? E-pasts: Agris.Sostaks@lumii.lv Skype: agrissh E-pasts (rezerves): mola@lumii.lv ?

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

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

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ļa piemērs – Parīzes metro 1

Modeļa piemērs – Parīzes metro 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)

Rīku būve

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 aplikāciju būvei telefoniem Nokia, Symbian/S60

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.

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

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

MOLA

Microsoft Visual Programming Language Robotu būvei 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 aplikāciju būvei telefoniem Nokia, Symbian/S60

User-Interface Designer

User-Interface Designer

WaKe DSML

Izstrādes modelis

Implementācija

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

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+ - ????

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

Izmaksas

Demo