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 volodurata
corto raggiomeno di 3 ore (internazionale)
medio raggioda 3 a 6 - 8 ore
lungo raggioda 6 a 12 ore
ultra-lungo raggiopiù 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

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