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.

2.1. EVALUATIECRITERIA 9<br />

2.1.6 Assertion<br />

Hoewel deze criteria cruciaal zijn ontbreekt nog een deel van de puzzel. Is de transformatie<br />

uiteindelijk betrouwbaar? Wat gebeurt als een constraint geschonden is? Is er een exceptie<br />

gegooid? Dat zijn allemaal vragen die men kan stellen.<br />

Hiervoor gebruiken we de techniek van assertion [14]. In sommige programmeertalen is dat<br />

volledig ondersteunt of helemaal niet. Try-catch blokken zijn geen slechte manier van werken.<br />

Maar bij het uitvoeren van een systeem zal elke constraint nagegaan worden. Bij het installeren<br />

(deployment) leidt dat tot een vertraagd systeem. Daarom verkiezen we voor de assertion<br />

techniek die ons toelaat om de beslissing te nemen over het aan- en uitschakelen van de<br />

constraints op run-time. Een code die geen van deze twee technieken gebruikt beschouwen we<br />

als slechte code.<br />

2.1.7 Slimme controle van klasse-invarianten<br />

De criteria die we hanteren wat betreft de technieken voor het nagaan van voldoening van<br />

constraints hebben we hierboven beschreven. Eveneens van belang is de vraag of we telkens<br />

alle klasse-invarianten moeten nagaan na het uitvoeren van een publieke methode. Misschien<br />

is het wel beter om enkel de relevante klasse-invariaten te inspecteren. In hoofdstuk 3 gaan we<br />

een mogelijke intelligente methode voorstellen om na het uitvoeren van een publieke methode<br />

alleen maar relevante klasse-invarianten na te gaan.<br />

Alles wat we tot nu toe besproken hebben is samengevat in tabel 2.1. Deze tabel somt een<br />

aantal criteria op en geeft voor elke vereiste een beschrijving.<br />

Id Criteria Beschrijving<br />

1 invarianten Garanderen een geldige toestand van objecten<br />

2 pre-, postcondities Vervolledigen de specicatie door constraints<br />

op operaties toe te voegen<br />

3 attributen, Basismodelelementen in een OCL<br />

associaties<br />

expressie<br />

4 collectieiteratoren OCL collectieiteratoren hebben geen substituten in<br />

JAVA - hoe worden hulp operaties gegenereerd<br />

5 @pre Verbeteren de specicatie van postcondities<br />

door naar waarden op verschillende tijdstippen<br />

te refereren<br />

6 result Verbeteren de specicatie van postcondities(geeft<br />

de terugwaarde van operaties terug)<br />

7 assertion De manier van controle: zijn de constraints<br />

al dan niet geschonden<br />

8 Slimme controle van Zijn alle constraints nagegaan of maar deze<br />

klasse-invarianten die relevant zijn<br />

Tabel 2.1: Evaluatiecriteria voor transformatie van OCL expressies door een tool

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

Saved successfully!

Ooh no, something went wrong!