Dankwoord - martes
Dankwoord - martes
Dankwoord - martes
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.