22.11.2013 Views

Dankwoord - martes

Dankwoord - martes

Dankwoord - martes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2. BESCHRIJVING VAN DE METHODOLOGIE 33<br />

Listing 17 Sjabloon OCL if-then-else expressie<br />

return (< translation of boolean OCL expression >) ?<br />

: ;<br />

3.2.5 Vertaling van OCL let expressies<br />

In OCL let expressies zijn er lokale variabelen gedenieerd. De implementatie van de let<br />

expressie in JAVA gebeurt op dezelfde wijze. In de sjabloon voor de let expressie worden<br />

deze lokale variabelen ook gedenieerd. Er moet wel aandacht aan de scope van de lokale<br />

variabelen besteed worden. De typen van deze variabelen in de OCL let expressie moeten op<br />

de juiste JAVA typen afgebeeld worden. Dat is het variabel gedeelte voor de let sjabloon. In<br />

de JAVA code is dat te zien met bold-italic lettertypen.<br />

Listing 18 Een voorbeeld van een OCL let expressie<br />

let<br />

tmp1 : Integer = self.attribute1,<br />

tmp2: String = self.attribute2<br />

in<br />

if self.attr3 then<br />

tmp1 >= 18<br />

else tmp1 < 18<br />

endif<br />

De bovenstaande OCL let-expressie illustreert hoe de vertaling naar JAVA gebeurt. Er<br />

kunnen ook nog collectieiteratoren in het 'let' of 'in' deel van de let expressie voorkomen.<br />

In dit geval worden hulpmethoden voor deze collecties gegenereerd.<br />

Listing 19 Sjabloon voor OCL let expressie<br />

boolean result = false;<br />

int tmp1 = this.getAttribute1() ;<br />

String tmp2 = this.get Attribute2() ;<br />

result = (this.getA ttr3() ? tmp1 >= 18 : tmp1 < 18;<br />

return result;<br />

3.2.6 Vertaling van klasse-invarianten<br />

Elke invariant wordt vertaald in een publieke booleaanse methode. Bij de naam van deze<br />

booleaanse methoden wordt de naam van de invariant geconcateneerd. Op deze manier is er<br />

een garantie voor consistentie tussen de verschillende gegenereerde invarianten. De publieke<br />

visibiliteit van de methode zorgt voor dat instantiaties van de klasse waarin deze methode<br />

gedenieerd is een toegang tot deze methode krijgen. Hieronder tonen we een sjabloon van<br />

een methode voor een klasse-invariant die een vast en een variabel gedeelte heeft.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!