22.11.2013 Views

Dankwoord - martes

Dankwoord - martes

Dankwoord - martes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

18 HOOFDSTUK 3. METHODOLOGIE<br />

Een contract beschrijft de diensten die door een object aangeboden worden. Voor elke dienst<br />

speciceert het contract:<br />

• Onder welke voorwaarden de dienst zal aangeboden worden.<br />

• De specicatie van het resultaat van de aangeboden dienst gegeven dat alle voorwaarden<br />

voldaan zijn.<br />

Elk object kan een aantal operaties uitvoeren. Deze operaties zijn te vinden in de interface<br />

van het object zelf. Voor elke van deze operaties kan een contract geëxpliciteerd worden.<br />

De rechten van het object komen met precondities overeen en de verplichten van het object<br />

corresponderen met de postcondities.<br />

Indien minstens een van beide partijen de voorwaarden van het contract niet respecteren, is<br />

het contract geschonden. Als dat gebeurt dan is het duidelijk wie aan de voorwaarden van<br />

het contract niet voldeed. Ofwel heeft de klant de aangeboden diensten niet correct gebruikt,<br />

ofwel heeft de leverancier de aangeboden dienst niet correct uitgevoerd. De programmeertaal<br />

EIFFEL [19] is de enige taal die een implementatie van DBC voorziet. DBC kan gebruikt<br />

worden binnen de context van object-georiënteerde ontwikkeling.<br />

In volgende sectie zullen we bespreken wat klasse-invarianten, pre- en postcondities zijn.<br />

3.1.1 Klasse-invarianten<br />

Klasse-invariant - is een booleaanse expressie die een conditie vaststelt. Deze conditie moet<br />

altijd voldaan zijn voor alle instanties waarvoor deze conditie gedenieerd is. Een invariant<br />

moet juist na de afhandeling van een constructor of na de afhandeling van elke publieke<br />

operatie waar zijn maar niet noodzakelijk tijdens het uitvoeren van de operatie. Anders<br />

gezegd, een klasse-invariant moet waar zijn op eender welke consistente toestand van een<br />

systeem. Indien het systeem bijvoorbeeld een operatie uitvoert dan is ons systeem niet in een<br />

consistente toestand en bijgevolg moet de invariant niet meer waar zijn. Uiteraard moet na<br />

de uitvoering van de operatie de invariant opnieuw waar zijn.<br />

3.1.2 Precondities en postcondities<br />

Pre- en postcondities zijn gebruikt om operaties te speciceren. Deze vervolledigen de interface<br />

van een operatie. Pre- en postcondities speciceren niet hoe het lichaam van een operatie<br />

geimplementeerd moet worden. Hieronder zijn deze concepten gedenieerd:<br />

Preconditie - is een booleaanse expressie die op het moment dat het uitvoeren van de operatie<br />

begint waar moet zijn.<br />

Postconditie - is een booleaanse expressie dat op het moment dat het uitvoeren van de operatie<br />

eindigt waar moet zijn.<br />

Met andere woorden pre- en postcondities moeten alleen op bepaalde tijdstippen (respectievelijk<br />

voor en na het uitvoeren van operaties) waar zijn in tegenstelling tot invarianten die<br />

altijd waar moeten zijn.

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

Saved successfully!

Ooh no, something went wrong!