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.
36 HOOFDSTUK 3. METHODOLOGIE<br />
Listing 23 Sjabloon voor OCL @pre expressie<br />
void operation(int attribute2){<br />
int old_attr = this.getAttribute();<br />
// ...<br />
// <br />
// ...<br />
assert checkPostP1Operation(old_attr,attribute2);<br />
}<br />
public boolean checkPostP1Operation(int old_attr, int i){<br />
return this.getAttribute() == old_attr + i;<br />
}<br />
Indien we tijdelijke objecten willen bijhouden gebruiken we dan een kopie-constructor. Kopieconstructors<br />
moeten dan in de klasse waarin de betrokken operatie behoort gedenieerd worden.<br />
Vervolgens mogen we de sjabloon van daarvoor toepassen. De JAVA code tonen we<br />
hieronder:<br />
Listing 24 @pre object<br />
void operation(Object object2){<br />
Object old_obj = new Object(obj);<br />
// ...<br />
// <br />
// ...<br />
assert checkPostP1Operation(old_obj,object2);<br />
}<br />
public boolean checkPostP1Operation(Object old_obj, Object object2){<br />
return this.getObject().getProperty() ==<br />
old_obj.getProperty() + object2.getProperty();<br />
}<br />
3.2.8.2 Het sleutelwoord result<br />
Het sleutelwoord result geeft de terugwaarde van een operatie terug indien er een is. Bijgevolg<br />
is het type van result bepaald door het terugtype van de operatie. Dit sleutelwoord wordt<br />
gebruikt bij postcondities van operaties.<br />
Listing 25 Een voorbeeld van het OCL result sleutelwoord<br />
context Class :: operation(attribute2 : Integer):Integer<br />
post p2: result = attribute2*1000<br />
De resulterende JAVA code is: