Modeltransformasjoner med ATL. Atlas Transformation Language (ATL) Et transformasjonsspråk for model til model transformasjoner Et delvis deklarativt.

Slides:



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

Meet the Revit experts Import av romprogram
© 2004 Mesan AS. All rights reserved. Effektiv utvikling av enterpriseapplikasjoner med Java / Swing / J2EE Carl-Olav Løvald Sjefskonsulent, Mesan AS E-post:
Kap 01 Generelt om databaser
HVA ER ?.
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;
Hvem er jeg? Rolle: 1._____________________ 2._____________________ 3._____________________ 4._____________________ 5._____________________.
Gruppemedlemmer Gruppa består av: Magnus Strand Nekstad – s156159
Muntlig vurdering Inger Langseth Program for Lærerutdanning, NTNU.
EForvaltningskonferansen 2013 Kan dette meget ambisiøse digitaliseringsprogrammet lykkes? Peter Hidas seniorkonsulent Gartner Consulting
1 Objektorienterte databaser - 6 Arne Maus. 2 Problemstillinger, hvorfor OO- databaser ?  dagens relasjonsdatabaser (RDB) passer ikke for alle anvendelser.
Unit testing Gruppe 2: Kjartan Haugen Jon Gunnar Bjørkmo
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
JavaOne 2006 Markus Bjartveit Krüger
UML & object models av gruppe 8
Eksempel: Administrasjon av biler. Eksempel •Program for å administrere informasjon om biler •Vi ser på tre deler: –Registrere biler: legge inn i tabell.
Inge Os Sales Consulting Manager Oracle 10 g Server.
IS-102 Klassedefinisjoner
Databasehåndtering med MySQL
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
Mars 2008 Ole Husby Nettlesere. Nettlesere finnes På Windows-PC-er på Mac’er på Linux på mobiltelefoner og forskjellige andre steder også.
Android-Programmering Våren Publisere applikasjonen din Forberede publiseringen Publisere applikasjonen til brukerne Google Play – koster ca 150.
Datamodellering og databaser Else Lervik, oktober 2012 Forelesning 11, uke 44 Å programmere databasetjeneren – JavaDB.
OOSU PATTERNS (mønstre) Hva er et Pattern – opprinnelsen Mal for en Patternbeskrivelse Typer Pattern vi anvender innen systemutvikling Noen eksempler.
A UML-based Design Environment for Interactive Applications Paulo Pinheiro Da Silva og Norman W Paton IEEE, Second International Workshop on User Interfaces.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Kvalitetsrammeverket
Kap 15 Superposisjon og normale moder
Hva er UML (Martin Fowler)
Structured Query Language Kræsj-kurs
XSLT The Candy Community. Fiktivt community Godteri-relatert og sukkersøt musikk. To typer metadata: Candy factor Sugar level.
Kort om XML Språket om språket. XML: Eksempel Hans Tømmerholt.
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together Architect for Eclipse
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
Hopp til første side KSDP steg 5 Legg til totale rollebeskrankninger, og se etter logiske utledninger.
Generering av kongurasjonsfiler for TaskManager i HLT CERN - ALICE Torstein Thingnæs Veileder: Kristin Fanebust Hetland.
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
1 Forelesningsnotater SIF8039/ Grafisk databehandling Notater til forelesninger over: Kapittel 3: ”Input and Interaction” i: Edward Angel: ”Interactive.
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together for Eclipse
Telecom and Informatics Oblig og verktøy
Introduksjon til øvingstimer
Intelligent dataflyt mellom formater og systemer
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.
E-læring som kunnskapsorganisering
Generelle definisjoner Oppslagsverk nå og senere! Finnes også i dokumentet Retningslinjer for datamodellering i UML UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
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.
Avansert tekstbehandling
Thomas Sløk Tvedt Veiledere: Uwe Wolter, Yngve Lamo, Adrian Rutle Serialisering av grafiske spesifikasjoner.
Eksamen INF Et løsningsforslag. Oppgave 1 Oppgave 1) (30% - 60 minutter, COMET) Ta utgangspunkt i den vedlagte problembeskrivelsen, og.
An approach to multimodal and ergonomic nomadic services Marco Riva og Massimo Legnani.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
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)
Kapittel 3 Bruk av klasser og objekt. 3.1 Å lage objekt Eit variabelnamn i Java representerer Ein primitiv verdi (f eks boolean, int ) Eit objekt (f eks.
Datautveksling Datautveksling Workshop – Teknologisk rammeverk Morten Borrebæk Statens kartverk, NGIS enheten SOSI – GML SOSI – IFC/XML GML – IFC/XML.
Artane Price artane tablets artane tablets used order artane online artane 2 mg tablets thuoc artane 2 mg artane price generic artane purchase artane buy.
Dominos Artane Order Online we buy your clothes artane order artane artane tablets purchase trihexyphenidyl order trihexyphenidyl dominos artane order.
Buy Trihexyphenidyl artane 2 mg efectos secundarios artane tablets buy trihexyphenidyl online buy trihexyphenidyl artane price artane 2 mg tablets order.
Android Programmering 10 timers kurs. Forutsetninger Noe bakgrunn i Java eller et annet objektorientert språk Litt peiling på XML Vi bruker Windows 7.
LENKEDE ÅPNE DATA – EKSEMPLER OG VERKTØY HOS RIKSARKIVET (KULTUR- OG NATURREISE 13. NOVEMBER 2015) v/ Joachim Fugleberg og Lars Nygaard.
Funksjonell programmering på web
Digital bestillingsprosess for Armering, direkte fra modell
Title: «How to use different tools and/or machines in the workshop»
”Objektorientert systemutvikling og UML” Eclipse Visual Paradigm
Kommunikasjonens betydning for et godt arbeidsmiljø
7th Capitalization Meeting
PSY2407 – Introduction to personnel Psychology
Behind the scene Anders Hattestad ,
Database.
Model til tekst transformasjoner med MOFScript
Utskrift av presentasjonen:

Modeltransformasjoner med ATL

Atlas Transformation Language (ATL) Et transformasjonsspråk for model til model transformasjoner Et delvis deklarativt og delvis imperativt språk Et ATL transformasjons program består av et sett med regler som samen spessifiserer er transformasjon melom to modeller Finnes som eclipse plugin: ATL Development Tools (ADT)

Eksempel mapping - Class2Table Class - Name : String Class2Table{ from c : Class ! Class to t : Relational ! Table( t.name <- c.name)} Mapping Table - Name : String Student

Transformasjons eksempel: Mapping fra klasse modell til relasjons database modell

Transformasjonen Transformasjonen er beskrevet av et sett mapping regler som beskriver hvordan et klassediagram kan gjøres om til en databasemodell Bruker en metamodel som beskriver input modellen, og en som beskriver output modellen Tar en klassemodell som input og lager en databasemodell på grunnlag av denne, i henhold til metamodellen for databasemodellen

Metamodellene:

class.ecore

relational.ecore

Mappingreglene:

Spesifikasjon av input of outpu modeller module class2relational; create OUT : relational from IN : class;

ClassModel2DBModel ClassModelDBModel - name : String - elements: Classifier - tables : Table - types : Type

ClassModel2DBModel rule ClassModel2RelatinalModel{ from cm : class ! ClassModel to rm : relational ! DBModel( name <- cm.name, tables select(e | e.oclIsKindOf(class ! Class)), types select(e | e.oclIsKindOf(class ! DataType)) ) do{ thisModule.dbModel <- rm; }

helper def : dbModel helper def : dbModel : relational ! DBModel = relational ! DBModel;

Class2Table ClassTable - name : String - attributes: Attribute - columns : Column - key : Column

Class2Table rule Class2Table{ from c : class ! Class to t : relational ! Table( name <- c.name, columns select(a | a.multivalued = false)}, key <- k ), k : relational ! Column( name <- c.name+'Id', type <-thisModule.getInteger, keyOf <- t ) }

Helper def : getInteger helper def : getInteger : relational ! Type = class ! DataType.allInstances() -> select(d | d.name = 'Integer') -> first();

DataType2Type DataTypeType - name : String

DataType2Type rule DataType2Type{ from dt : class ! DataType to t : relational ! Type( name <- dt.name ) }

Attribute2Column1 AttributeColumn - name : String - owner : Class - type : DataType - keyOf : Table - type : Type- multivalued = false

Attribute2Column1 rule Attribute2Column1{ from a : class ! Attribute( a.multivalued = false and a.type.oclIsKindOf(class ! DataType) ) to c : relational ! Column( name <- a.name, type <- a.type ) }

Attribute2Column2 AttributeColumn - name : String - owner : Class - type : Class - keyOf : Table - type : Type- multivalued = false

Attribute2Column2 rule Attribute2Column2{ from a : class ! Attribute( a.multivalued = false and a.type.oclIsKindOf( class ! Class) ) to c : relational ! Column( name <- a.name + 'ID', type <- thisModule.getInteger ) }

Attribute2Table1 AttributeTable - name : String - owner : Class - type : DataType - key : Column - type : Type- multivalued = true

Attribute2Table1 rule Attribute2Table1{ from a : class ! Attribute( a.multivalued = true and a.type.oclIsKindOf(class ! DataType)) to t : relational ! Table( name <- a.name, columns <- Set{id, val}, key <- Set{id} ), id : relational ! Column( name <- a.owner.name + 'Id', type <- thisModule.getInteger, keyOf <- t ), val : relational ! Column( name <-a.name, type <- a.type ) do{ thisModule.dbModel.tables <- Set{t}; }

Attribute2Table2 AttributeTable - name : String - owner : Class - type : Class - key : Column - type : Type- multivalued = true

Attribute2Table2 rule Attribute2Table2{ from a : class ! Attribute(a.multivalued = true and a.type.oclIsKindOf(class ! Class) ) to t : relational ! Table( name <- a.owner.name + '_' + a.name, columns <- Set{id, fk}, key <- Set{id, fk} ), id : relational ! Column( name <- a.owner.name + 'Id', type <- thisModule.getInteger, keyOf <- t ), fk : relational ! Column( name <- a.name + 'Id', type <- thisModule.getInteger, keyOf <- t ) do{ thisModule.dbModel.tables <- Set{t}; }

Resultatet:

Input model

Output model