LABORATORIO DI INFORMATICA
Ingegneria Informatica
a.a. 2002-2003 -2° Ciclo
Modelli UML per il
Simulatore di Gate Allocation
1
Simulatore di Gate Allocation
- Modello dei Casi d’Uso
<<uses>>
New Stand Definition
<<uses>>
Airport Manager
Stand I&C
Save Stand Data
Open Stand File
<<uses>>
New Flight Definition
<<uses>>
Apron Manager
Flight I&C
Save Flight Data
Open Flight File
Daily Gate Allocation
Real Time Gate Allocation
2
Simulatore di Gate Allocation
- Descrizione dei Casi d’Uso
Caso d’Uso: New Stand Definition
L’Airport Manager seleziona la nuova definizione degli Stand. Ciò comporta
l’annullamento del Descrittore di Stand eventualmente presente in memoria
centrale e la possibilità di utilizzare il Caso d’Uso Inspect & Change per gli Stand.
Caso d’Uso: Stand Inspect & Change
Il Caso d’Uso Stand Inspect & Change può essere direttamente selezionato
dall’Airport Manager, oppure a seguito dell’attivazione dei Casi d’Uso New Stand
Definition e Open Stand File. Esso permette all’Airport Manager di selezionare un
elemento Stand in memoria centrale, di esaminarne il contenuto, di configurarlo
completamente, sia se è stato già configurato o se non è mai stato configurato, o,
infine, di correggerne la configurazione se è già stato configurato.
Caso d’Uso: Save Stand Data
L’Airport Manager seleziona di salvare su un file sequenziale della memoria di
massa il descrittore degli Stand presente in memoria centrale.
3
Simulatore di Gate Allocation
Caso d’Uso: Open Stand File
L’Airport Manager o l’Apron Manager seleziona di trasferire in memoria centrale il
descrittore di Stand in precedenza salvato sul file sequenziale in memoria di massa.
Ciò comporta la ricopertura del descrittore eventualmente presente in memoria
centrale e la possibilità di utilizzare il Caso d’Uso Stand Inspect & Change.
Caso d’Uso: New Flight Definition
L’Apron Manager seleziona la nuova definizione dei Voli. Ciò comporta
l’annullamento del Descrittore dei Voli eventualmente presente in memoria centrale
e la possibilità di utilizzare il Caso d’Uso Inspect & Change per i Voli.
Caso d’Uso: Flight Inspect & Change
Il Caso d’Uso Flight Inspect & Change può essere direttamente selezionato
dall’Apron Manager, oppure a seguito dell’attivazione dei Casi d’Uso New Flight
Definition e Open Flight File. Esso permette all’Apron Manager di selezionare un
elemento Flight in memoria centrale, di esaminarne il contenuto, di configurarlo
completamente, sia se è stato già configurato o se non è mai stato configurato, o,
infine, di correggerne la configurazione se è già stato configurato.
4
Simulatore di Gate Allocation
Caso d’Uso: Save Flight Data
L’Apron Manager seleziona di salvare su un file sequenziale della memoria di
massa il descrittore dei Voli presente in memoria centrale.
Caso d’Uso: Open Flight File
L’Apron Manager seleziona di trasferire in memoria centrale il descrittore dei Voli
in precedenza salvato sul file sequenziale in memoria di massa. Ciò comporta la
ricopertura del descrittore eventualmente presente in memoria centrale e la
possibilità di utilizzare il Caso d’Uso Flight Inspect & Change.
Caso d’Uso: Daily Gate Allocation
L’Apron Manager selezione di far operare l’algoritmo di Gate Allocation per i
descrittori di Stand e di Voli attualmente presenti in memoria centrale. L’algoritmo
viene fatto operare automaticamente per un istante di tempo simulato
sufficientemente antecedente all’istante di arrivo del primo Volo del descrittore, in
modo da poter considerare tutti i voli ancora non atterrati. La situazione di
allocazione degli aerei agli Stand viene presentata sul terminale in chiaro subito
dopo la fine dell’esecuzione dell’algoritmo.
5
Simulatore di Gate Allocation
Caso d’uso: Real Time Gate Allocation
L’Apron Manager seleziona di far evolvere per un tempo reale prestabilito lo
scenario costituito dai descrittori degli Stand e dei Voli presente in memoria di
massa. Nel corso dell’elaborazione viene simulata la ricezione di messaggi che, a
scadenze prestabilite, comunicano il ritardo dell’arrivo di aerei attesi o il
prolungamento delle operazioni di terra. La sequenza dei messaggi e i loro tempi di
arrivo vengono definiti al momento dell’attivazione di questo caso d’uso e prima
che venga avviata l’evoluzione del tempo reale. L’algoritmo di Gate Allocation,
richiamato con la periodicità di un minuto, permette la riallocazione dinamica dei
voli. La situazione di allocazione degli aerei agli Stand viene presentata sul
terminale in chiaro, assieme al valore del tempo attuale, subito dopo ogni richiamo
dell’algoritmo di Gate Allocation. L’elaborazione ha termine quando si esaurisce il
tempo reale prestabilito.
6
Simulatore di Gate Allocation
-Requisiti di dettaglio
Caso d’uso: Stand (o Flight) Inspect & Change
Il Caso d’Uso Stand (o Flight) Inspect & Change, quando viene selezionato
un tipo di elemento (Stand o Volo), deve presentare il contenuto
dell’elemento attualmente puntato. Se esso non è configurato, deve
presentare il messaggio di elemento non configurato. Dopo la presentazione
di un elemento deve essere possibile selezionare l’elemento precedente o il
successivo (a meno che l’elemento puntato sia non configurato, nel qual caso
si può solo andare al precedente).
Una volta selezionato un elemento deve essere possibile inserire tutti i suoi
dati a partire dal primo, oppure, se l’elemento è già stato configurato, deve
potersi presentare un dato alla volta con la possibilità, se richiesto, di
cambiarlo.
7
Simulatore di Gate Allocation
-Diagramma delle Classi
FlightList
FlightDataFile
Flight
1
1 DateTimeXcg
1
1
Simulator
0..*
1
1
1
1
Dialog
1
1
1
1
1
1
1
1
1
1
0..*
1
StandDataFile
1
1
1
Proceding
Stand
StandList
8
Simulatore di Gate Allocation
-Diagramma delle Classi
Dialog
statoDialog :int
indiceStand :int
indiceFlight :int
activityDef ( )
flightDef ( )
newFlight ( )
openFlight ( )
inChaFlight ( )
saveFlight ( )
standDef ( )
newStand ( )
openStand ( )
inChaStand ( )
saveStand ( )
allocator ( )
simulator ( )
9
Simulatore di Gate Allocation
-Diagramma delle Classi
Flight
nextPtr :Flight *
sameStandFlight :Flight *
siglaArr :char[6]
oraArr :int
minArr :int
giornoArr :int
meseArr :int
annoArr :int
timeArr :long
siglaPar :char[6]
oraPar :int
minPar :int
giornoPar :int
mesePar
:int
annoPar :int
timePar :long
tipoAereo :int
tipoStand :int
tipoRampa :int
assignStand :int
setFlight ( )
printFlight ( )
modifyFlight ( )
Stand
nextPtr :Stand *
linkedFlight :Flight *
identityStand :char[6]
dimStand :int
dotazStand :int
tipoServizio :int
setStand ( )
printStand ( )
modifyStand ( )
10
Simulatore di Gate Allocation
-Diagramma delle Classi
FlightList
firstPtr :*Flight
lastPtr :*Flight
insertList (newPtr :Flight *)
searchFlight (nuFlight :int) :Flight *
deleteFlight (nuFlight :int, del :bool)
deleteFlightList ( )
StandList
firstPtr :*Stand
lastPtr :*Stand
insertList (newPtr :Stand *)
searchStand (nuStand :int) :Stand *
deleteStand (nuStand :int, del :bool)
deleteStandList ( )
11
Simulatore di Gate Allocation
-Diagramma delle Classi
FlightDataFile
FlightStore (objList :FlightList &)
FlightLoad (objList :FlightList &)
StandDataFile
StandStore (listObj :StandList &)
StandLoad (listAl :StandList &)
12
Simulatore di Gate Allocation
-Diagramma delle Classi
Simulator
gateAllocation (tempoAtt :long, fList :FlightList &, sList :StandList &)
resetStand (tempoAtt :long, fList :FlightList &, sList :StandList &) :int
deleteFlight (delePtr :Flight *, fList :FlightList &)
check (actVolo :Flight *, prevVolo :Flight *) :bool
gateAllocPrint
(fList :FlightList &, sList :StandList &)
Proceding
startTime :long
durationTime :long
progresTime :long
stopTime :long
startSim (fList :FlightList &, sList :StandList &)
13
Simulatore di Gate Allocation
-Diagramma delle Classi
DateTimeXcg
year :int
month :int
day :int
hour :int
minute :int
second :int
absTime: int
dateToTime (y :int, me :int, d :int, h :int, mi :int, s :int) :long
timeToDate (t :long)
14
Simulatore di Gate Allocation
-Dialog: Diagramma degli Stati
do/ Level 1
Command
Selection
Flight
do/
flightDef
Stand
do/
standDef
Exit
Allocator
do/
allocator
Simulator
do/
simulator
15
Simulatore di Gate Allocation
-Dialog: Diagramma degli Stati
standDef
do/ Level 3
Command
Selection
New
do/
newStand
Open
do/
openStand
Exit
I&C
do/
inChaStand
Save
do/
saveStand
16
Simulatore di Gate Allocation
-Dialog: Diagramma degli Stati
flightDef
do/ Level 2
Command
Selection
New
do/
newFlight
Open
do/
openFlight
Exit
I&C
do/
inChaFlight
Save
do/
saveFlight
17
Simulatore di Gate Allocation
-Dialog: Diagramma degli Stati
inChaStand
do/ Stand
Display & Level
5 Command
Selection
Nuovo
do/
nuovo
Stand
Correggi
do/
correggi
Stand
Avanti/
Indietro
Exit
Deleta
do/
cancella
Stand
18
Simulatore di Gate Allocation
-Dialog: Diagramma degli Stati
inChaFlight
do/ Flight
Display & Level
4 Command
Selection
Nuovo
do/
nuovo
Volo
Correggi
do/
correggi
Volo
Avanti/
Indietro
Exit
Deleta
do/
cancella
Volo
19
Simulatore di Gate Allocation
-Simulator: Diagramma delle attività di “Gate Allocation”
Disalloca i voli non atterrati
e cancella i voli decollati (*)
(*) Funzione “Reset Stand”
Acquisisci il puntatore
al primo volo in catena
Verifica se il volo
è atterrato
[Volo atterrato]
[Volo non atterrato]
Stabilisci l’allocazione
del volo (ad uno Stand)
Acquisisci il puntatore al
volo successivo in catena
[Voli non finiti]
[Volo finiti]
20
Simulatore di Gate Allocation
-Simulator: Diagramma delle attività di “Reset Stand”
Acquisisci il puntatore al
primo Stand in catena
Verifica se lo Stand è linkato
ad un volo
[Stand non linkato]
[Stand linkato]
Verifica se il volo linkato allo
Stand è atterrato
[Volo non atterrato]
[Volo atterrato]
Annulla il link dello Stand al
volo
Verifica se il volo linkato allo
Stand è decollato
[Volo decollato]
[Volo non decollato]
Annulla il link dello Stand al
volo e cancella il volo
Acquisisci il puntatore allo
Stand successivo
[Stand non finiti]
[Stand finiti]
In tutti i voli annulla il link ai
voli allocati sullo stesso Stand
21
Simulatore di Gate Allocation
-Simulator: Diagramma delle attività di “Stabilisci l’allocazione del volo”
Acquisisci il puntatore al
primo Stand in catena
Confronta le esigenze dello
aereo e la struttura dello Stand
[Stand non compatibile]
[Stand compatibile]
Confronta la sovrapposizione
del volo con gli altri sullo stand
[Volo in sovrapposizione]
[Volo non sovrapposto]
Linka il volo allo Stand e
assegna lo Stand al volo
Memorizza il minore degli OBT
dell’ultimo volo sullo Stand
Acquisisci il puntatore
allo Stand successivo
[Stand non finiti]
[Stand finiti]
Poni l’IBT del volo maggiore
dell’ultimo OBT memorizzato
22
Scarica

5-Modelli_UML_per_Gate_Alloc