220 likes | 360 Views
LABORATORIO DI INFORMATICA Ingegneria Informatica a.a. 2002-2003 -2° Ciclo Modelli UML per il Simulatore di Gate Allocation. Simulatore di Gate Allocation. <<uses>>. <<uses>>. New Flight Definition. New Stand Definition. <<uses>>. <<uses>>. Flight I&C. Stand I&C. Save Stand Data.
E N D
LABORATORIO DI INFORMATICA Ingegneria Informaticaa.a. 2002-2003 -2° CicloModelli UML per ilSimulatore di Gate Allocation
Simulatore di Gate Allocation <<uses>> <<uses>> New Flight Definition New Stand Definition <<uses>> <<uses>> Flight I&C Stand I&C Save Stand Data Save Flight Data Open Flight File Open Stand File Apron Manager Daily Gate Allocation - Modello dei Casi d’Uso Airport Manager Real Time Gate Allocation
- Descrizione dei Casi d’Uso Simulatore di Gate Allocation • 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.
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. 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. 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. Simulatore di Gate Allocation
-Requisiti di dettaglio Simulatore di Gate Allocation • 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.
FlightDataFile Simulator Stand Flight Proceding StandDataFile Dialog FlightList StandList -Diagramma delle Classi Simulatore di Gate Allocation DateTimeXcg 1 1 1 1 0..* 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0..* 1 1
-Diagramma delle Classi Simulatore di Gate Allocation Dialog statoDialog :int indiceStand :int indiceFlight :int activityDef ( ) flightDef ( ) newFlight ( ) openFlight ( ) inChaFlight ( ) saveFlight ( ) standDef ( ) newStand ( ) openStand ( ) inChaStand ( ) saveStand ( ) allocator ( ) simulator ( )
-Diagramma delle Classi Simulatore di Gate Allocation Stand Flight nextPtr :Stand * linkedFlight :Flight * identityStand :char[6] dimStand :int dotazStand :int tipoServizio :int 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 setStand ( ) printStand ( ) modifyStand ( ) setFlight ( ) printFlight ( ) modifyFlight ( )
-Diagramma delle Classi Simulatore di Gate Allocation 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 ( )
FlightDataFile StandDataFile FlightStore (objList :FlightList &) FlightLoad (objList :FlightList &) StandStore (listObj :StandList &) StandLoad (listAl :StandList &) -Diagramma delle Classi Simulatore di Gate Allocation
Proceding startTime :long durationTime :long progresTime :long stopTime :long startSim (fList :FlightList &, sList :StandList &) -Diagramma delle Classi Simulatore di Gate Allocation 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 &)
-Diagramma delle Classi Simulatore di Gate Allocation 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)
Flight Allocator Stand do/ flightDef do/ standDef do/ allocator -Dialog: Diagramma degli Stati Simulatore di Gate Allocation do/ Level 1 Command Selection Exit Simulator do/ simulator
standDef do/ Level 3 CommandSelection Exit New I&C Save Open do/ saveStand do/ newStand do/ openStand do/ inChaStand -Dialog: Diagramma degli Stati Simulatore di Gate Allocation
flightDef do/ Level 2 CommandSelection Exit New I&C Save Open do/ saveFlight do/ newFlight do/ openFlight do/ inChaFlight -Dialog: Diagramma degli Stati Simulatore di Gate Allocation
-Dialog: Diagramma degli Stati inChaStand Simulatore di Gate Allocation Avanti/ Indietro do/ Stand Display & Level 5 Command Selection Exit Nuovo Deleta Correggi do/ nuovo Stand do/ correggi Stand do/ cancella Stand
-Dialog: Diagramma degli Stati inChaFlight Simulatore di Gate Allocation Avanti/ Indietro do/ Flight Display & Level 4 Command Selection Exit Nuovo Deleta Correggi do/ nuovo Volo do/ correggiVolo do/ cancella Volo
-Simulator: Diagramma delle attività di “Gate Allocation” Simulatore 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]
[Volo decollato] [Volo non decollato] In tutti i voli annulla il link ai voli allocati sullo stesso Stand Annulla il link dello Stand al volo Acquisisci il puntatore allo Stand successivo Annulla il link dello Stand al volo e cancella il volo -Simulator: Diagramma delle attività di “Reset Stand” Simulatore di Gate Allocation 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] Verifica se il volo linkato allo Stand è decollato [Stand non finiti] [Stand finiti]
[Stand non finiti] [Stand finiti] Poni l’IBT del volo maggiore dell’ultimo OBT memorizzato -Simulator: Diagramma delle attività di “Stabilisci l’allocazione del volo” Simulatore di Gate Allocation 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] Memorizza il minore degli OBT dell’ultimo volo sullo Stand [Volo non sovrapposto] Linka il volo allo Stand e assegna lo Stand al volo Acquisisci il puntatore allo Stand successivo