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.

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

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

Saved successfully!

Ooh no, something went wrong!