Travel to the Moon

Requisiti

  1. Requisiti sulle crociere: 1.1. codice 1.2. data di inizio 1.3. data di fine 1.4. nave utilizzata (v. req. 2) 1.5. itinerario (v. req. 4) 1.6. il tipo, uno tra: 1.6.1. luna di miele, di cui interessa un sottotipo tra: 1.6.1.1. tradizionali (# dest. romantiche >= # dest. divertenti) (v. req. 3) 1.6.1.2. alternative (altrimenti) 1.6.2. per famiglie, di cui interessa: 1.6.3. se adatte ai bambini (booleano)

  2. Requisiti sulle navi 2.1. nome 2.2. comfort (3..5) 2.3. capienza (max)

  3. Requisiti sui porti: 3.1. nome 3.2. continente ({"Africa", "Asia", "Europa", etc...}) 3.3. posti da vedere (v. req. 5) 3.4. tipo, almeno uno tra: 3.4.1. romantico 3.4.2. divertente 3.5 un insieme di posti da vedere (v. req. 5)

  4. Requisiti sugli itinerari: di ogni itinerario interessa 4.1. nome 4.2. sequenza ordinata di elementi (tappe), di cui interessa: 4.2.1. porto (v. req. 3) 4.2.2. arrivo: 4.2.2.1. il numero d'ordine del giorno (rispetto alla data di inizio della crociera) 4.2.2.2. ora 4.2.3. ripartenza
    4.2.3.1. il numero d'ordine del giorno (rispetto alla data di inizio della crociera) 4.2.3.2. ora

  5. Requisiti sui posti da vedere: 5.1. nome 5.2. descrizione 5.3. fascia consigliata 5.3.1. giorno 5.3.2. ora inizio 5.3.3. ora fine

  1. Requisiti clienti 6.1. nome 6.2. cognome 6.3. età 6.3. indirizzo: (nome: Stringa, civico: numero, Città: Stringa, Regione: Stringa, Paese: Stringa) 6.4. può prenotare crociere (v. req. 7)

  2. Requisiti prenotazioni 6.1. istante di prenotazione (DataOra?) 6.2. crociera prenotatata (v. req. 1) 6.3. posti prenotati (Intero > 0)

UML

classDiagram
    class Nave {
        nome: Stringa
        conformt: 3..5
        capienza: Intero > 0
    }

    class Destinazione {
        nome: Stringa
        tipo: [Romantico, Divertente] [1..2]
    }

    class Continente {
        nome: Stringa
    }

    class PostoDaVedere {
        nome: Stringa
    }

    Destinazione "0..*" -- "1..1" Continente : "porto_cont"
    Destinazione "0..*" -- "0..*" PostoDaVedere : "porto_post"

Requisiti 1 e 4 (crociere e itinerari)