Examen ISO

advertisement
Modelleeropgave:
Het bedrijf CS (container shipping) vervoert containers over de wereld. Klanten kunnen
lege containers huren en gevuld met goederen aanbieden voor verscheping. CS zorgt dan
voor het vervoer naar de bestemming, waar de container kan worden afgehaald, geleegd
en eventueel leeg worden teruggegeven. Containers staan opgeslagen op haventerreinen
en worden daar aangeboden of afgehaald. Voor het vervoer worden containers geladen op
schepen, die van haven naar haven varen. Containers moeten wel eens "overstappen"; ze
worden gelost, blijven een tijdje staan en worden dan weer geladen om verder te worden
vervoerd.
a. Maak een objectmodel van de beschreven situatie, zodat vragen kunnen worden
beantwoord over de behandeling van containers. Voorbeeldvragen zijn
- Zijn er containers van klant XX die vóór 1-11-2005 ter verscheping zijn
aangeboden en die tot en met 9-11-2005 nog niet opgeladen zijn?
- Wat was de verzameling containers met bestemming Sydney van klant YY die op
9-11-2005 in le Havre zijn uitgeladen?
b. Geef de bovenstaande vragen weer met behulp van predikaten.
Aanpak:
Fase 1:
Maak een lijst van zelfstandige naamwoorden, eigenschappen en handelingen, gebaseerd
op de beschrijving, analyseer en schoon op. We beginnen met de eerste 2 zinnen.
Het bedrijf CS (container shipping) vervoert containers over de wereld. Klanten kunnen
lege containers huren en gevuld met goederen aanbieden voor verscheping.
zelfstandig nw
CS bedrijf
container
wereld
klant
goed
verscheping
eigenschap
leeg (container)
gevuld (container)
handeling
CS vervoert container
klant huurt container
klant vult container met goederen
klant biedt aan container ter versch.
Het zn "wereld" is universeel, evenals "CS" (in de huidige context).
Omdat "CS" wegvalt heeft "vervoeren" slechts één actor.
Het zn "verscheping" is synoniem met de handeling "vervoeren". Omdat het verhaal over
CS gaat en CS zich niet bemoeit met de inhoud van de te vervoeren containers, kiezen
we ervoor de goederen en het al dan niet leeg zijn niet in het model op te nemen.
Na opschoning houden we het volgende over.
zelfstandig nw
c(ontainer)
klant
eigenschap
handeling
klant huurt container
klant biedt aan c
c vervoeren
We gaan verder met de volgende twee zinnen.
CS zorgt dan voor het vervoer naar de bestemming, waar de container kan worden
afgehaald, geleegd en eventueel leeg worden teruggegeven. Containers staan opgeslagen
op haventerreinen en worden daar aangeboden of afgehaald.
zelfstandig nw
c(ontainer)
klant
eigenschap
haven(terrein)
bestemming
handeling
klant huurt c
klant biedt aan c
c vervoeren
c vervoeren naar bestemming
c aanbieden op haven
klant haalt af c in haven
klant leegt c
klant geeft terug c
c opslaan op haventerrein
Het legen van containers modelleren we evenmin als het vullen. Het "aanbieden" van een
container gebeurt in een haven (extra actor bij "biedt aan") en het afhalen ook. Bij het
"vervoer" hoort een bestemming (bhaven). Die bestemming moet op een gegeven
moment worden bekend gemaakt; we nemen aan dat dit al bij het aanbieden plaatsvindt.
Het "vervoeren" is in feite wat er gebeurt tussen aanbieden en afhalen en kan dus worden
verwijderd.
zelfstandig nw
c(ontainer)
klant
haven
eigenschap
handeling
klant huurt / geeft terug c
klant biedt aan c in haven met bhaven
klant haalt af c in haven
c opslaan op haven
We maken het schema af.
Voor het vervoer worden containers geladen op schepen, die van haven naar haven
varen. Containers moeten wel eens "overstappen"; ze worden gelost, blijven een tijdje
staan en worden dan weer geladen om verder te worden vervoerd.
zelfstandig nw
c(ontainer)
klant
haven
eigenschap
schip
handeling
klant huurt / geeft terug c
klant biedt aan c in haven met bhaven
klant haalt af c in haven
c opslaan op haven
container lossen van schip in haven
container laden op schip in haven
schip vaart van haven naar haven
Containers worden geladen/gelost (handelingen) op/van schepen. De handeling
"overstappen" wordt in de laatste zin verklaard; het bestaat uit lossen, opslaan en weer
laden. Het "opslaan" kan gezien worden als de periodes tussen aanbieden/lossen en
laden/afhalen, en dus is het niet nodig die apart te modelleren.
zelfstandig nw
c(ontainer)
klant
haven
schip
eigenschap
handeling
klant huurt / geeft terug c
klant biedt aan c in haven met bhaven
klant haalt af c in haven
container lossen van schip in haven
container laden op schip in haven
schip vaart van haven naar haven
We modelleren alle handelingen door getuige-entiteiten en komen tot het volgende
model.
lo
C
a
la
S
c
tg
hu
b
ha
ba
va
d
K
H
Fase 2:
Analyseer de volgordelijke samenhang van handelingen.
We modelleren de lifecycle van één vaste container. Volgens het verhaal is de container
initieeel in bezit van CS. De eerste handeling is huren, daarop volgen vullen, aanbieden,
laden, lossen, afhalen, legen en teruggeven. Vullen en legen zijn handelingen zonder
getuige. Huren voegt een klant toe, vullen goederen en aanbieden een haven en
bestemming. Afhalen vindt alleen plaats als de haven en bestemming overeenkomen en
verwijdert haven en bestemming. Legen verwijdert de goederen en teruggeven ontkoppelt
de klant. Laden voegt een schip toe dat in dezelfde haven ligt en verwijdert de haven.
Lossen verwijdert het schip en voegt de huidige haven van het schip toe.
hu
ba
vrij
Kl
la
Kv
tg
H
ha
S
lo
Uit bovenstaand plaatje volgt dat lossen volgt op laden en teruggeven/aanbieden op huren
en afhalen/laden op aanbieden. De haven
lo
C
tg
la
hu
S
va
ba
K
H
ha
De "vaart" van een schip is een handeling die langere tijd kan duren (als het schip duurt
het zelfs oneindig lang). We splitsen daarom de vaart uit in vertrek en aankomst. Het
laden is dan gerelateerd aan een vertrek, het lossen aan een aankomst. Daarmee zijn de
haven en schip van laden en lossen gegeven. Er wordt wel een constraint toegevoegd: van
een bij elkaar horend laad/los paar moet het schip overeenkomen. Verder worden
containers alleen geladen (en gelost) als hij is aangeboden. Daarmee komt ook de klant
waarvoor geladen en gelost wordt te voorschijn.
C
e
b
tg
a
h
la
hu
d
ve
ba
K
f
ha
ak
k
g
in
c
j
lo
van
to
H
nr
m
S
Constraints:
  lo : . j.k .m  .h.g.m : via
  la : (  lo : .h.e  .e  . j.k .nr  .g.van)  .g.van  .e.in
  ha : (  lo : .h.e   . f  . j.k .o   . f .to)
Download