Model til tekst transformasjoner med MOFScript

Slides:



Advertisements
Liknende presentasjoner
Webbasert administrasjonssystem for fondsforvaltere Martin Lie 20. april 2006.
Advertisements

Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Avhengigheter og installering
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
#include Ligner litt på import i java. Setter inn hele fila stdio.h i programteksten. Definerer en del io funksjoner slik at signaturen er kjent. I dette.
Apache Maven 2.
Databasehåndtering med MySQL
© Lars-Erik Kindblad.  Et platformuavhengig verktøy for å automatisere build prosesser.  Støttes og drives av Apache Software Foundation.  Kommer ferdig.
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
C# for javaprogrammerere
1 Øvingsforelesning 7 Kai Olav Ellefsen. 2 I dag… Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010.
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
SQL The questing beast Sir Thomas Mallory. Codds krav 5.Krav om omfattende språk for datahåndtering Det må finnes et relasjonelt språk som støtter datadefinisjon,
Datamodellering og databaser Else Lervik, oktober 2012 Forelesning 11, uke 44 Å programmere databasetjeneren – JavaDB.
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
In 135 Datamodellering og databaser Introduksjon, Enkeltentiteten, Informasjon Ola Bø.
INF150 Programmering mandag 11.9
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
SQLHiA DAT 2800 Databaser I Prosedyrer / Triggere.
JAVASCRIPT I NETTLESEREN. Objekter i nettleseren Objekter som er innebygd i språket Egendefinerte objekter Nettleser objekter HTML objekter.
Flash og ActionScript - Nye muligheter Jostein Nordengen.
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Kartlegging og dokumentasjon
Skjema/Forms HTML II IT og læring 2/20 november 2001.
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
Dynamiske nettsider PHP Del 4 – Eksterne datakilder.
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
Databasen II Sesjoner, stored procedures, error handling.
Med hånda i kakeboksen. Oblig 4, cookies, sesjoner, stored procedures, error handling.
Databasen III Nodekoblinger og tags. Mer om proptype Spesifikasjonen for egenskaper. Verdikolonner: value, number, url, datetime, lang, ref. Kan egenskaper.
Oblig 2: The Candy-community. Om XML, XSLT, Sablotron og HTML.
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Løsningsforslag til MOFScript oppgave. Metamodellen.
Juridisk nettviser Dokumentasjon av konvertering.
1 INF5110 – 23. april, 2013 Noen oppgaver til kap. 8 Dette er en bedre utgave av oppgavene, lagt ut 24. april Nå fredag (26/4): Det blir ikke undervisning.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
Eksamen INF Et løsningsforslag. Oppgave 1 Oppgave 1) (30% - 60 minutter, COMET) Ta utgangspunkt i den vedlagte problembeskrivelsen, og.
Trondheim Lytte- og Læresenter. Sammendrag Prosjektet ble iverksatt fordi Trondheim Lytte- og Læresenter så behovet i å ha et elektronisk kundearkiv i.
Modellering og diagrammer Jesper Tørresø DAB1 E september 2007.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Upload av bildefiler Utdrag fra ImageIn Ved Kirsten Klæbo Tirsdag 25/11-03.
Modeltransformasjoner med ATL. Atlas Transformation Language (ATL) Et transformasjonsspråk for model til model transformasjoner Et delvis deklarativt.
XML og JDOM Helge Furuseth XML  XML = Extensible Markup Language Basert på SGML – Standard Generalized Markup Language  HTML =
ICT Siste gruppetime INF mai ICT Transformasjoner En transformasjon krever to metamodeller en kilde-modell (source) en mål-modell (target)
Bruktfilm.com Hovedprosjekt 11E Linn Stamnes 3DDT.
Prosjektoversikt Javamat Høgskolen i Sør-Trøndelag Dennis G. Landsem.
Kapittel 5 Vilkårssetningar og løkker. 5.1 Boolske uttrykk George Boole ( ), britisk matematikar Utvikla teori om logikk ved bruk av symbol i.
Kap. 25 – Simpler Software Development for Niche Companies How Information Technology Is Conquering the World: Workplace, Private Life, and.
Ambisjoner og arbeidsmåter 24. september2013.   Uformell samtale og samhandling  Formell samtale og samhandling  Faglitteratur  Forelesninger  Skriving.
RefWorks Web-basert program for referansehåndtering, sitering i manuskripter og skriving av litteraturlister.
FUNKSJONSBESKRIVELSE En detaljert forklaring for kunden hvordan en funksjon er tiltenkt å virke Viktig for å sette forventningsstyring, begrensninger og.
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
Funksjonell programmering på web
Importere design mal E-Site step-by-step.
IN1000-seminar høsten 2017 Henrik H. Løvold
Slide 2:. Forretningsmodellen forklart på engelsk og norsk
Brother’s Keeper Anne Grete Mensen.
PL/SQL تعريف المتغيرات
Slide 2:. Forretningsmodellen forklart på engelsk og norsk
Slide 2:. Forretningsmodellen forklart på engelsk og norsk
Slide 2:. Forretningsmodellen forklart på engelsk og norsk
Behind the scene Anders Hattestad ,
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
Utskrift av presentasjonen:

Model til tekst transformasjoner med MOFScript

MOFScript Brukes for å generere tekst fra modeller (f.eks. kode, dokumentasjon) Delvis imperativt og delvis deklarativt Regelebasert språk Plugin til eclipse

Bruk av MOFScript For å skrive et MOFScript program lager man en fil som har extensionen ’.m2t’. En vil da få MOFScript funksjonaliteten tilgjengelig. Metamodeller som skal benyttes legges i mappa ’eclipse\plugins\org.sintef.mofscript.editor_1.1.11\repository\metamodels’.

Bruk av MOFScript Output directory for transformasjonen settes ved å høyreklikke på MOFScript fila, velge Properties, og deretter sette en path i Select Root Output Directory propertiet under MOFScript. Input modellen (den modellen det skal genereres tekst fra velges første gang transformasjonen kjøres)

Eksempel: Generere SQL kode fra relational modellen vi genererte forige øvingstime

Metamodellen

Inputmodellen

relational2sql.m2t texttransformation relationalModel2sql (in relational : "http:///relational.ecore"){ property fileExtension = '.sql' relational.DBModel::main(){ stdout.println( 'starting transformation ' ) self.mapDBModel() }

relational2sql.m2t relational.DBModel::mapDBModel(){ file(self.name + fileExtension) '\nCREATE DATABASE ' self.name ';' self.tables -> forEach( table:relational.Table ){ table.mapTable() }

relational2sql.m2t relational.Table::mapTable(){ '\n\nCREATE TABLE ' self.name '(' self.columns -> forEach ( col:relational.Column ){ col.mapColumn() if( !self.columns.last() == col ){ ',' } '\n);'

relational2sql.m2t relational.Column::mapColumn(){ '\n\t' self.name ' ' self.type.mapType() if( self.keyOf != null ){ ' PIMARY KEY NOT NULL' }

relational2sql.m2t relational.Type::mapType(){ if(self.name.equalsIgnoreCase("INTEGER")){ 'INT' }else if( self.name.equalsIgnoreCase("STRING")){ 'VARCHAR(255)' }

Resultatet CREATE DATABASE ScoolSystem; CREATE TABLE Student( StudentId INT PIMARY KEY NOT NULL, name VARCHAR(255), age INT ); CREATE TABLE Course( courseName VARCHAR(255), courseLocationID INT, CourseId INT PIMARY KEY NOT NULL CREATE TABLE CourseLocation( CourseLocationId INT PIMARY KEY NOT NULL, buildingName VARCHAR(255), roomNr INT CREATE TABLE emailAdresses( emailAdresses VARCHAR(255) CREATE TABLE Student_courses( coursesId INT PIMARY KEY NOT NULL

Tekst vs Model CREATE DATABASE ScoolSystem; CREATE TABLE Student( StudentId INT PIMARY KEY NOT NULL, name VARCHAR(255), age INT ); CREATE TABLE Course( courseName VARCHAR(255), courseLocationID INT, CourseId INT PIMARY KEY NOT NULL CREATE TABLE CourseLocation( CourseLocationId INT PIMARY KEY NOT NULL, buildingName VARCHAR(255), roomNr INT CREATE TABLE emailAdresses( emailAdresses VARCHAR(255) CREATE TABLE Student_courses( coursesId INT PIMARY KEY NOT NULL