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.

Hoofdstuk 2<br />

State-of-the-art<br />

De Object Constraint Language (OCL) [1] is een notatietaal voor analyse en ontwerp van<br />

software systemen. Het is een aanvulling op de industrie standaard UML waarbij ontwikkelaars<br />

beperkingen over modellen kunnen schrijven. Vandaag de dag vereisen veel software projecten<br />

complexe formele regels die in het businessmodel moeten worden uitgedrukt. OCL lost dit<br />

probleem op. OCL is eenvoudig genoeg om door business analisten gebruikt te worden maar<br />

ook formeel genoeg om door tools geïnterpreteerd en gemanipuleerd te worden.<br />

In dit hoofdstuk geven we een overzicht van de huidige stand van tools die OCL expressies<br />

naar JAVA vertalen. Hier gaan we eerst een aantal evaluatiecriteria voorstellen. Dan zullen<br />

we een aantal tools evalueren aan de hand van de voorgestelde criteria. Vervolgens zullen we<br />

deze tools naast mekaar zetten.<br />

2.1 Evaluatiecriteria<br />

In deze sectie gaan we een structuur voorstellen om tools te kunnen evalueren. Deze structuur<br />

is niet alleen gebaseerd op constructies die in de OCL taal aanwezig zijn maar ook op andere<br />

factoren: bijvoorbeeld de code die gegenereerd wordt na de vertaling van de OCL expressies<br />

naar een doel taal. In deze thesis wordt JAVA gebruikt als doeltaal voor de vertaling.<br />

In deze thesis onderzoeken we alleen maar een deel van de eigenschappen van OCL. We<br />

gaan voornamelijk in op klasse-invarianten, pre- en postcondities. Ook onderzoeken we de<br />

ondersteuning van meer ingewikkelde sleutelwoorden zoals @pre en result. Ten laatste breiden<br />

we onze criteria uit met manieren om de voldoening van constraints na te gaan. Daarom zijn<br />

onze criteria ook beperkt tot deze deelverzameling.<br />

In de context van OCL kunnen we meer informatie aan een model toevoegen aan de hand van<br />

invarianten. Deze invarianten kunnen op verschillende model elementen inwerken.<br />

2.1.1 Invarianten<br />

In specicaties is zo dat we vaak met invarianten te maken hebben. Klasse-invarianten garanderen<br />

ons dat objecten altijd een geldige toestand hebben. We zullen klasse-invarianten<br />

in meer detail in subsectie 3.1.1 bespreken. Daarom is de ondersteuning van invarianten door<br />

tools een basisvereiste.<br />

7

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

Saved successfully!

Ooh no, something went wrong!