22.11.2013 Views

Dankwoord - martes

Dankwoord - martes

Dankwoord - martes

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.2. BESCHRIJVING VAN DE METHODOLOGIE 35<br />

Listing 22 Sjabloon voor pre- en postcondities<br />

public boolean checkPreNameOfPreconditionNameOfOperation(){<br />

return ;<br />

}<br />

public boolean checkPostNameOfPostconditionNameOfOperation(){<br />

return ;<br />

}<br />

operation(){<br />

assert checkPreNameOfPreconditionNameOfOperation();<br />

//<br />

// body of the operation<br />

//<br />

assert checkPostNameOfPostconditionNameOfOperation();<br />

//return statement if not void type<br />

}<br />

Klasse-invarianten zijn niet expliciet in operaties opgenomen maar ze moeten toch nagegaan<br />

worden na het uitvoeren van publieke methoden en constructoren. We hebben nog niet getoond<br />

hoe we dat zullen doen. In sectie 3.3 en 3.4 zullen we dat grondig bespreken.<br />

3.2.8 Vertaling van meer geavanceerde constructies<br />

3.2.8.1 Vertaling van het sleutelwoord @pre<br />

Het sleutelwoord @pre representeert de waarde van een attribuut of associatie op het begin<br />

van de uitvoering van een operatie. Dit sleutelwoord moet na de naam van het betrokken<br />

attribuut of associatie vermeld worden. Vermits hier duidelijk te zien is dat we met variabelen<br />

over tijd te maken hebben, moeten tijdelijke variabelen in de vertaalde code voorzien worden.<br />

Een voorbeeld is de volgende OCL postconditie in de context van een operatie operation die<br />

tot de klasse Class behoort.<br />

context Class :: operation(attribute2 : Integer)<br />

post p1:<br />

attribute = attribute@pre + attribute2<br />

Bij de vertaling naar JAVA moeten we een tijdelijke variabele denieren die de waarde van het<br />

attribuut attribute bijhoudt. We zullen deze variabele old_attribute noemen. Old_attribute<br />

moet een kloon of kopie zijn maar geen kopie van de referentie want de gerefereerde waarde<br />

zal tijdens het uitvoeren van de operatie veranderen.

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

Saved successfully!

Ooh no, something went wrong!