Voli Aerei 1
Requisiti
I dati di interesse per il sistema sono voli, compagnie aeree ed aeroporti.
- Dei voli interessa rappresentare codice, durata, compagnia aerea ed aeroporti di partenza e arrivo.
- Degli aeroporti interessa rappresentare codice, nome, città (con nome e numero di abitanti) e nazione.
- Delle compagnie aeree interessa rappresentare nome, anno di fondazione, e la città in cui ha sede la direzione.
TODO: durata minima di un volo durata: [(ore: intero >= 1, minuti: intero >= 0), (ore: intero >= 0, minuti: intero >= 1)] compagnia aerea più vecchia? 1912 tecnicamente, ma mettiamo 1906, se gli aerei non esistono, non possono esistere le compagnie aere
Volo
- codice, composto dalle 2 lettere della compagnia, dal numero di volo (questo numero può variare da 1 a 4 cifre e serve a distinguere ogni volo gestito dalla compagnia aerea)
- duarata (vedere tabella sotto)
- compagnia aerea
- aeroporto di partenza
- aeroporto di arrivo
- non interessano i posti disponibili, dato che non è una delle metriche di cui la IATA tiene traccia
- potrebbe interessare il ritardo
Una classificazione arbitraria della durata di un volo secondo Wikipedia
tipo di volo | durata |
---|---|
corto raggio | meno di 3 ore (internazionale) |
medio raggio | da 3 a 6 - 8 ore |
lungo raggio | da 6 a 12 ore |
ultra-lungo raggio | più di 12 ore |
Il volo più lungo è stato di circa 20 ore, ma non è importante dare un limite massimo alla durata di un volo
Aeroporto
- nome ("Paperopoli" pare lecito qui)
- codice, qui useremo il Il codice aeroportuale IATA ("Paperopoli" qui non va decisamente bene), una stringa lunga 3 di lettere maiuscole
- città, perché sì
- nazione, perché sì
Compagnia aerea
- nome ("Paperopoli" pare lecito qui)
- codice IATA di 2 lettere!
- anno di fondazione dopo il 1903, se vogliamo essere pedanti 1909
- sede (tecnicamente può cambiare, e vogliamo tenere lo storico)
Città
- nome ("Paperopoli" pare lecito qui)
- numero di abitanti (si spera più di 0? Immagina avere -10 abitanti, LOL)
- possibilmente una nazione?
Nazione
- nome
- codice ISO 3166-1
Osservazioni
- Non sono pedante sulla durata minima del volo, perché si suppone che la imposti un utente autorizzato (e autenticato!)
- Una città può avere 0 aeroporti, perché magari è la sede di una qualche compagnia
- Ho messo lo storico delle sedi legali delle compagnie per essere mettere più funzionalità possibili
UML
classDiagram class Volo { codice: (codice_IATA_compagnia: Stringa [A-Z]2, numero_di_volo: 1..9999) durata: (ore: intero >= 0, minuti: intero 0..60) ritardo: (ore: intero >= 0, minuti: intero 0..60) } class Aeroporto { codice: (codice_IATA_aerporto: Stringa [A-Z]3) nome: Stringa } class Compagnia { codice: (codice_IATA_compagnia: Stringa [A-Z]2) nome: Stringa anno_di_fondazione: Intero >= 1903 } class Compagnia["Compagnia aerea"] class Citta { nome: Stringa numero_di_abitanti: Intero >= 0 } class Citta["Città"] class Nazione { codice: (codice_ISO_3166-1: Stringa [A-Z]2) nome: Stringa } class Sede { data_inizio: Data data_fine: Data } Volo "0..*" -- "1..1" Compagnia Volo "0..*" -- "1..1" Aeroporto : parte_da Volo "0..*" -- "1..1" Aeroporto : arriva_a Aeroporto "0..*" -- "1..1" Citta : sta_in Citta "0..*" -- "1..1" Nazione : sta_in Compagnia "1..1" -- "1..*" Sede : compagnia_sede Sede "1..1" -- "1..*" Citta : città_sede