Dankwoord - martes
Dankwoord - martes
Dankwoord - martes
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.1. HAT 47<br />
Figuur 4.1: Architectuur van de Agile MDA Tool<br />
Figuur 4.1 geeft een overzicht van de architectuur van dit Agile MDA tool. De modeltransformatie<br />
en codegeneratie gebeurt aan de hand van de UML proelen. Deze proelen<br />
moeten eerst in de UML editor ingeladen worden. Binnen zo'n proel speciceert men een<br />
representatie van een UML model en hoe het model getransformeerd moet worden.<br />
De interactive prole editor biedt een interface om UML proelen te denieren en bewerken.<br />
Deze laat ons toe om zowel modelelementen binnen een domein te denieren als om<br />
beperkingen en codegeneratoren over dit domein te speciceren.<br />
De run-time OCL constraints die in het model zitten mogen ook geëvalueerd worden. Men<br />
moet gewoon voor elke OCL constraint op het UML model de functie GenerateCode() oproepen<br />
die drie argumenten meekrijgt. De eerste is een stringwaarde die de operatie bevat<br />
om een generator op te roepen, de tweede is het tekstbestand waarin de gegeneerde code geschreven<br />
zal worden en de derde is een stringwaarde die gebruikersgedenieerde inhoud bevat<br />
(bijvoorbeeld contextinformatie). We mogen verschillende generatoren voor dezelfde run-time<br />
OCL expressie meegeven indien dat nodig is. Deze operatie transformeert de run-time OCL<br />
expressie naar een expressieboom. De elementen in deze boom zijn OCL modelelementen<br />
die aan het OCL metamodel corresponderen. Dit metamodel denieert verschillende soorten<br />
van OCL expressiemeta-elementen: literalen, if-expressie, let-expressie, enz. Een deel van het<br />
OCL metamodel is te zien in Figuur 4.2. De meegegeven generator aan de GenerateCode()<br />
operatie gaat vervolgens schrijvers voor elk OCL modelelement oproepen. Deze schrijvers<br />
zullen eigenlijk de code voor onze applicatie produceren voor de gegeven OCL expressies.<br />
In volgende sectie zullen we de vertaling van run-time OCL expressie naar JAVA bespreken<br />
met behulp van het HAT tool van E2S.