• No results found

Objectgerichte Modelleertechnieken 2006 2007

N/A
N/A
Protected

Academic year: 2021

Share "Objectgerichte Modelleertechnieken 2006 2007"

Copied!
4
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

1

Examen OO modelleertechnieken

Datum : 19 januari 2007 om 09u00 // Duur : 04u00

Locatie : E0.05

Dit is een gesloten boek examen. Boeken en nota's mogen niet gebruikt worden. Ook GSMs, PDA's en andere elektronische toestellen zijn verboden.

Wees zorgvuldig bij het uitwerken van de vragen. Voor het gebruik van verkeerde of onduidelijke notaties worden punten in mindering gebracht.

Slordige of onleesbare antwoorden worden niet beoordeeld.

Vraag 1 (4 punten)

Wat is multiple inheritance en wat zijn voor- en nadelen van multiple inheritance?

Vraag 2 (6 punten)

Leg uit hoe men associaties (inclusief de multipliciteit) kan realiseren in OO-programmeertalen. Bespreek verschillende alternatieven.

Vraag 3 (10 punten)

Leg het “visitor” patroon uit; wanneer kan dit patroon gebruikt worden. Geef ook het generieke klassendiagram en leg dit uit. Geef een voorbeeld van gebruik.

Vraag 4 (20 punten)

Maak een klasse diagram die de volgende situatie modelleert. Probeer zoveel mogelijk details te modelleren, ook redundante informatie dient gemodelleerd te worden en als dusdanig gekenmerkt te worden. Duid alle multipliciteiten aan, enkel de default attribuut multipliciteit mag je weglaten.

De situatie betreft een videotheek. De videotheek verhuurt films (zowel op videocassette als op DVD) en games. Games kunnen voor XBox, XBox 360, Playstation, Playstation 2 of Nintendo Wii zijn. De videocassettes kunnen in PAL of NTSC formaat zijn. DVDs kunnen uit verschillende regio's komen, bvb Regio 1, 2, ...

Voor elke film moet de titel, de regisseur en de belangrijkste acteurs bijgehouden worden. Films hebben een filmgenre, waaronder: actie, komedie, thriller, ... Dit genre wordt gebruikt om de films fysiek te klasseren. Bovendien wordt er ook bijgehouden of de film 16+ is of niet. De videotheek bezit meestal verschillende exemplaren van dezelfde film en bovendien kunnen deze op verschillende media staan (dus zowel videocassettes als DVDs). Voor elk exemplaar moet het duidelijk zijn of het uitgeleend is of niet en indien uitgeleend wanneer het exemplaar normaal gezien terug binnen gebracht dient te worden.

Het aantal dagen dat een film verhuurd kan worden is verschillend van film tot film. De prijs voor het huren van een DVD is op dit ogenblik 3 EUR en voor een videocassette 2 EUR. Ook het aantal dagen dat een exemplaar van een game kan gehuurd worden is afhankelijk van het game. De prijs is vast en bedraagt op dit ogenblik 3 EUR.

Bij het te laat indienen van een film of game wordt een boete van 5 EUR per dag en per item aangerekend.

Voor elke game wordt de naam, de leeftijdscategorie en het niveau van geweld bijgehouden. Alle videocassettes, DVDs en game boxes hebben een unieke identificatie.

De klanten van de videotheek worden geregistreerd (naam en adres worden opgeslagen). Zo kan men per klant bijhouden wat ze gehuurd hebben en wanneer de verschillende items terug gebracht moeten worden (dit kan automatisch berekend worden aan de hand van het aantal

(2)

2

dagen dat het item mag verhuurd worden). Merk op dat de items die een klant huurt op een welbepaald moment niet noodzakelijk allemaal op dezelfde dag dienen binnen gebracht te worden. Wanneer de klant een item terugbrengt kan aan de hand van de datum, de verhuurdatum en de gewenste terugbrengdatum de eventuele boete berekend worden. Alles wat betreft verhuring wordt bijgehouden zodat men steeds kan terug vinden wie wat gehuurd heeft. Vergeet niet dat dezelfde film of game meerdere malen door dezelfde klant kan worden gehuurd.

Vraag 5 (20 punten)

We willen de werking van een auto modelleren door middel van een toestandsmodel. Het betreft een auto met een automatische versnellingbak. De auto bestaat o.a. uit een motor, de accelerator, de rem, een cruise controle, en lichten. De werking van elk onderdeel is beschreven (zie verder op). Maak voor elk van deze onderdelen een toestandsdiagram om de werking ervan te modelleren.

De versnellingsbak

De auto beschikt over een automatische versnellingsbak. Er zijn 3 automatische versnellingen en een manuele Reverse (R) (achteruit). Verder zijn er de standen Neutral (N) en Park (P). Om de auto te kunnen starten moet de versnellingspook op de stand Park staan en om te rijden op de stand Drive (D). Wanneer de pook in Drive staat dan wordt er automatisch geschakeld tussen de 3 versnellingen (1ste, 2de en 3de) naar gelang de snelheid. De bestuurder heeft ook de

mogelijkheid om manueel de 1e of 2e versnelling te kiezen (standen 1 en 2). Om de versnellingsbak te bedienen is er een pook die kan verschoven worden naar de gewenste stand (zie bijgevoegde illustratie). Wanneer de pook in stand P staat moet men bovendien de rem indrukken om deze te kunnen verschuiven. De volgorde moet wel gerespecteerd worden, d.w.z. om van P naar D te gaan moet men via R en N. Wanneer de wagen stopt (door te remmen) komt hij automatisch in 1ste versnelling.

De motor

Om de motor te starten moet je de sleutel in het stopcontact steken en in wijzerzin draaien, waarbij de starter de motor start. Van zodra je hoort dat de motor draait laat je de sleutel los. De motor zal enkel starten indien de versnellingspook in stand 'Park' staat. Om de motor uit te zetten draai je de sleutel in tegenwijzerzin, dit kan enkel wanneer de versnellingspook in stand 'Park' of ‘Neutral’ staat.

De accelerator

Wanneer de bestuurder de gaspedaal induwt, wordt de accelerator geactiveerd en verhoogt de snelheid van de wagen. De snelheid van de wagen blijft toenemen zolang de gaspedaal ingedrukt blijft, wanneer de gaspedaal losgelaten wordt, wordt de accelerator gedeactiveerd tenzij de cruise controle ingeschakeld is. Dan wordt de accelerator automatisch geactiveerd en gedeactiveerd om de ingestelde snelheid te bewaren.

De rem

Remmen gebeurt door de rem in te drukken.

De cruise controle

Aan het stuur bevindt zich de cruise controle knop. Wanneer de gebruiker deze induwt blijft de wagen zijn huidige snelheid behouden en kan de bestuurder de gaspedaal los laten. Om de cruise controle te kunnen inschakelen moet de snelheid minstens 60km/u zijn. Als de cruise controle actief is, kan de snelheid telkens verhoogd worden met 10 km/u door nogmaals de cruise controle knop in te duwen. Wanneer men op de rem of de gaspedaal duwt wordt de cruise controle automatisch uitgeschakeld.

De lichten

De lichten schakelen automatisch in wanneer de motor aan is en het licht beneden een bepaald niveau is. Wanneer de motor uit is gaan de lichten (wanneer die aan waren) automatisch uit na 30 sec. Het is ook mogelijk om de lichten manueel aan te steken door het indrukken van de lichtschakelaar.

(3)

3

Vraag 6 (15 punten)

Stel een activiteitendiagram op voor het inschepen van een passagier voor een vlucht. Dit (vereenvoudigd) proces verloopt als volgt:

Eerst gebeurt het inchecken. Dit bestaat uit het verifiëren van de boeking. Indien deze niet OK is dan is het hier reeds afgelopen. Indien die wel OK is dan wordt er een zetel toegekend en als de passagier bagage heeft wordt die gelabeld en doorgestuurd en vervolgens worden de boorddocumenten aan de passagier overhandigd. Hiermee is het inchecken afgehandeld en volgt het security gedeelte. Tijdens het security gedeelte worden zowel de eventuele bagage als de passagier zelf gecontroleerd. Dit gebeurt onafhankelijk van elkaar. De bagage wordt gescand, indien de scan OK is wordt de bagage ingescheept. Indien de scan niet OK is dan wordt deze niet ingescheept. De passagier moet eerst naar de paspoort controle. Indien hier iets niet in orde is dan stopt het proces. Vervolgens komt de controle van de passagier en zijn handbagage. De handbagage wordt gescand en tegelijkertijd passeert de passagier de metaaldetector. Wanneer de scan van de handbagage niet bevredigend is volgt een handmatige check en worden eventuele niet toegelaten artikelen verwijderd. Wanneer de metaaldetector een signaal laat horen wordt de persoon gefouilleerd. Indien hierbij iets verdacht bemerkt wordt, stopt het proces. Zoniet pikt de passagier zijn handbagage weer op en mag hij naar de ticketcontrole en vervolgens instappen. Voor het toestel kan vertrekken volgt nog een controle van de passagierslijst. Indien er een persoon of meerdere personen missen, dan wordt de bagage van deze passagiers terug uitgeladen. Uiteindelijk wordt de vlucht afgesloten en vertrekt het vliegtuig. Hier stopt het proces.

Vraag 7 (15 punten)

Een tekenprogramma laat toe om verschillende vormen te tekenen, waaronder lijnen, ellipsen, rechthoeken en polygonen. Deze vormen bevinden zich in een toolbox op het scherm. De gebruiker duidt de gewenste vorm aan en kan dan beginnen tekenen. Het programma ondersteunt de standaard bewerkingen van een tekenprogramma. Dit houdt in: schalen, vervormen, verplaatsen, verwijderen en kopiëren/knippen en plakken van vormen. Het is ook mogelijk om vormen te groeperen. Zo een groepering laat toe om dezelfde bewerking op de gehele groep uit te voeren. Groepering is geïmplementeerd volgens het “composite” design patroon.

Het tekenprogramma werkt volgens het Model-View principe. Alle informatie over de tekening wordt bijgehouden in het model. Het model kan beschouwd worden als de compositie van alle vormen waaruit de tekening is opgebouwd. Dit model wordt gevisualiseerd door middel van verschillende views. De grootste view is de canvas view waarin het feitelijke tekenen door de gebruiker gebeurt. Omdat de canvas scrollen toelaat en deze dus heel groot kan worden bestaat er nog een overzicht view. Deze laat alles zien wat er in de canvas staat in een verkleind oppervlak. Een laatste view is de tekstuele view waarin een lijst van vormen staan met hun gegevens. Hierin kan bijvoorbeeld het volgende staan:

- Polygoon: (20, 30), (25, 40), (11, 23), (20, 30) - Groep: - Ellips: (130, 50), (150, 25) - Groep: - Polygoon: (145, 22), (265, 33), (103, 23), (145, 22) - Rechthoek: (45, 450), (240, 250)

Maak een sequentiediagram voor het volgende scenario:

De gebruiker selecteert in de canvas view een groepering en verschuift deze 20 pixels naar rechts. De groepering bevat een rechthoek en een cirkel.

Je mag het aanklikken en verschuiven in de GUI negeren en beginnen met de boodschap move(groepering,20,0) van de canvas view naar het model. Eerst dient de wijziging veroorzaakt door de move in het model aangebracht te worden. Maak hiervoor gebruik van het feit dat het “composite” design patroon werd gebruikt om een groepering te implementeren. Vervolgens dienen alle views op de hoogte te worden gebracht van de wijzigingen in het model zodat ze zichzelf kunnen aanpassen. Maak hiervoor gebruik van het “Observer” design patroon.

(4)

4

Vraag 8 (10 punten)

Gegeven is het volgende klassendiagram. Formuleer de volgende queries en constraints door middel van OCL.

Queries

a. Geef de gemiddelde leeftijd van de professoren van een universiteit b. Geef het aantal studenten van een universiteit

c. Vraag je eigen score op voor dit vak (het vaknummer is 12163)

Constraints

d. De scores voor inschrijvingen voor vakken moet tussen 0 en 20 liggen e. Een vak mag aan maximaal 50 studenten gedoceerd worden

Referenties

GERELATEERDE DOCUMENTEN

Opmerkelijk is dat naast een groep die het 'pure hacking' bedrijft (dat wit zeggen als sportieve uitdaging), er ook hackers zijn die het daar niet bij laten, maar zich te

Aan het eind van het onderzoek is teruggeblikt op plaatsingen die nog niet waren beeindigd. Tijdens het onderzoek is ook bij de beeindiging van een plaatsing teruggeblikt. In

`Dit organische systeem heeft zelfs als totaliteit haar veronderstel- lingen, en haar ontwikkeling tot totaliteit bestaat eruit, alle elementen van de maatschappij aan

Wel dient te worden opgemerkt dat te weinig aandacht wordt besteed aan de overdracht van juridische aspecten die van belang zijn voor de besluitvorming ten aanzien van de in

In het exemplaar van 10 oktober is op pagina 50 de zin “Op basis van het uitgangspunt kostendekkendheid mogen de tarieven voor 2017 maximaal bedragen:” geschrapt.. In het exemplaar

Daarom is de dood van Christus voor de zondaar onmisbaar, en tenzij het kruis tot basis wordt gemaakt waarop de gelovige zijn oude mens overwint, valt hij alleen maar in een

Vrijwilligerswerk bleek daar nog steeds de basis te zijn, maar vanwege complexe financiële transacties hebben de organisaties steeds vaker betaalde inzet nodig om zich staande

Wij hebben in deze brief ook aangegeven dat het vertrek van Villa Ka- kelbont betekent dat het ontwerp aangepast moet worden.. De afgelopen maanden is er hard gewerkt om de plannen