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.
10 HOOFDSTUK 2. STATE-OF-THE-ART<br />
2.2 Tools<br />
Er zijn al een aantal tools op de markt die ondersteuning en afhandeling van OCL expressies<br />
bieden. Hieronder geven we een overzicht van de tools waarmee we geëxperimenteerd hebben.<br />
We voegen ook extracten (skeletten) van code toe die door de tools gegenereerd waren. Sommige<br />
methodes kunnen leeg zijn maar dat is hier niet van belang want we willen de structuur<br />
van de gegenereerde code tonen.<br />
2.2.1 Octopus<br />
Octopus [13] is een tool dat het gebruik van OCL ondersteunt. Octopus staat voor OCL tool<br />
for Precise UML Specication. Het Octopus tool biedt twee belangrijke functionaliteiten. Ten<br />
eerste is in Octopus mogelijk om zowel de syntaxis van OCL expressies als de typen en het<br />
juiste gebruik van modelelementen na te gaan. Met modelelementen wordt hier attributen en<br />
associaties bedoeld. Ten tweede biedt Octopus de mogelijkheid om transformaties van UML<br />
modellen met de bijhorende OCL expressies (beperkingen die in OCL uitgedrukt zijn) naar<br />
JAVA uit te voeren.<br />
Dit tool biedt geen mogelijkheden om modellen te creëren. De modellen moeten eerst in andere<br />
modelleertools zoals bijvoorbeeld MagicDraw [22] gedenieerd worden en pas dan geïmporteerd<br />
worden. Dan kan men de specicatie uitgedrukt in OCL toevoegen. Vervolgens volstaat<br />
het om de codegenerator op te roepen. Het resultaat van de transformatie is een model in<br />
een platformafhankelijke taal. In dit tool is er geen mogelijkheid om de gegenereerde code te<br />
ne-tunen, namelijk om de structuur van de geproduceerde code (de elementen die het tool<br />
genereert) te veranderen.<br />
Id Criteria Opmerking Ondersteuning<br />
1 invarianten Ja<br />
2 pre-, postcondities allen precondities Ja<br />
3 attributen, inspectoren en mutatoren Ja<br />
associaties zijn gegenereerd<br />
4 collecties Voor ieder collectieiterator Ja<br />
een nieuwe methode<br />
5 @pre Neen<br />
6 result Neen<br />
7 assertion Alleen precondities zijn Ja<br />
door assert nagegaan<br />
8 slimme controle Neen<br />
klasse-invarianten<br />
Tabel 2.2: Evaluatie van Octopus<br />
De code die hier gegenereerd wordt, is volledig in de zin dat niet alleen de OCL expressie zijn<br />
vertaald naar JAVA maar er zijn ook constructoren, inspectoren en mutatoren gegenereerd.<br />
Met andere woorden verkrijgen we een volledig uitvoerbaar systeem. Het tool ondersteunt