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.
3.3. NAÏEVE AANPAK 39<br />
Listing 30 voorbeeld operatie met pre- en postcondities<br />
context ClassA :: operation1() : <br />
pre pre1: <br />
pre pre2: <br />
post post1: <br />
Voor elke pre- en postconditie zullen we een aparte booleaanse methode genereren. Daarna<br />
voegen we de pas gegenereerde pre- en postconditiemethoden in in de juiste plaatsen van onze<br />
operatie. Voor precondities is dat in het begin van de operatie. Voor postcondities is dat op<br />
het einde van deze operatie. Het invoegen van deze code gebeurt door de assert constructie<br />
die we in het begin van dit hoofdstuk besproken hebben.<br />
De naam van elke pre- en postconditiemethode is geconcateneerd met de naam van de preof<br />
postconditie die ze voorstellen en met de naam van de operatie waartoe ze behoren. Dat<br />
zorgt voor unieke namen van methoden en lost het probleem van name clashes op.<br />
De JAVA code ziet er als volgt uit:<br />
Listing 31 Sjabloon voor pre- en post-condities bij de naïeve aanpak<br />
operation1(){<br />
assert(checkAllInvariants());<br />
assert(checkPrePre1Operation1());<br />
assert(checkPrePre2Operation1()) ;<br />
//<br />
// body of operation<br />
//<br />
assert(checkPostPost1Operation1());<br />
assert(checkAllInvariants());<br />
}<br />
private boolean checkPrePre1Operation1(){<br />
return ;<br />
}<br />
private boolean checkPrePre2Operation1(){<br />
return ;<br />
}<br />
private boolean checkPostPost1Operation1(){<br />
return ;<br />
}<br />
We moeten ook niet vergeten dat bij operaties klasse-invarianten ook gecontroleerd moeten<br />
worden alhoewel ze niet opgenomen zijn in de operatie. De controle op invarianten moet<br />
voor en na de uitvoering van elke publieke methode en na de uitvoering van elke constructor<br />
gebeuren. Bijgevolg moeten we een assertie van alle invarianten toevoegen. Dat is te zien in<br />
de eerste en laatste regel van de JAVA vertaling voor de operation1() methode.