Esercitazione del 23/11/2006

Transcript

Esercitazione del 23/11/2006
Esercitazione 23/11/2006
1
Esercitazione del 23/11/2006
Una ditta di autotrasporti noleggia mezzi con e senza autista. I mezzi (con relativo autista se del caso)
vengono noleggiati a giornate intere (anche più di una, consecutive). I giorni lavorativi sono i sette giorni della
settimana (sabato e domenica inclusi, anche per gli autisti). I mezzi sono camion e furgoni. I camion vengono
sempre noleggiati con autista, i furgoni possono essere noleggiato con o senza autista.
La ditta tiene un calendario degli impegni, esaminabile all’atto della richiesta di un possibile cliente, in modo
da avere la disponibilità dei mezzi e degli autisti per le date richieste.
Nell’assegnare gli autisti si deve tener conto della turnazione e di eventuali indisponibilità dovute a ferie,
malattie ecc.
Nel selezionare i mezzi si deve tener conto della eventuale indisponibilità per manutenzione o guasti. I
guasti vengono segnalati alla conclusione di ogni noleggio e determinano l’indisponibilità del mezzo per il giorno
successivo. Per quanto riguarda la manutenzione il criterio è il seguente: (a) ogni mezzo ha una sua tabella che
riporta a quale percorrenza complessiva deve essere effettuata la manutenzione; (b) al termine di un noleggio se
mancano meno di 500 Km al raggiungimento della percorrenza, viene fissata la data di manutenzione cercando
i primi due giorni in avanti in cui il mezzo risulta non essere impegnato (la manutenzione dura due giorni
consecutivi che non siano sabato o festivi); (c) nell’ipotesi in cui si renda necessario usare un mezzo ad una data
in cui per esso è prevista la manutenzione, è possibile rinviare in avanti la manutenzione, purché la percorrenza
totale non abbia superato di 1000 Km il limite previsto per la manutenzione.
Il sistema deve consentire, tutte le funzioni relative alla gestione dei mezzi, delle prenotazioni, degli autisti, ecc.
In particolare deve permettere di:
1. aggiornare il prospetto della disponibilità di un dato autista a causa della turnazione: un autista che
svolge (o svolgerà) lavoro per due giorni o più giorni consecutivi ha diritto a riposo nel giorno seguente.
2. verificare la disponibilità di mezzi (e di un possibile autista se richiesto) a una certa data di inizio noleggio
alla data di fine (se il noleggio è di un solo giorno le due date coincidono).
3. programmare un noleggio di un mezzo a una certa data (vedi sopra per la durata).
4. programmare la manutenzione alla fine di un noleggio o di fissare l’intervento per guasto al giorno
successivo (in questo caso esclusi sabato e festivi, durante i quali il mezzo guasto è indisponibile).
A. Utilizzando StarUML:
• Si costruisca il modello UML del dominio applicativo.
• Si tracci il diagramma di sequenza relativo al caso d’uso del punto 3, relativamente al noleggio di un
camion con autista, comprensivo del sotto caso del punto 2
• Si tracci il diagramma di sequenza relativo al caso d’uso del punto 4
• Si generino i template delle classi.
Nel tracciare i diagrammi di sequenza con StarUML, data la tediosità del processo e i rischi di commettere
errori, si segua il criterio di tracciare i diagrammi solo in riferimento agli scenari principali dei casi d’uso.
Inoltre, è consentito rinunciare all’impiego dei costrutti per i loop, le alternative, ecc. ricorrendo a note
esplicative.
Alternativamente, è consentito tracciare i diagrammi di sequenza a penna su foglio di carta, anziché usare
StarUML.
In ogni caso i diagrammi dovranno essere congruenti col codice java (vedi sotto).
B. Utilizzando Eclipse, importare le classi generate da StarUML e costruire il programma. In particolare
deve essere previsto un main con funzione di simulatore/programma di prova che (in ordine):
• Popola il modello con:
– 2 camion (primo camion: targa 001, km percorsi 8.500, tagliando a km 10.000; secondo camion:
targa 002, km percorsi 15.000, tagliando a km 20.000;) e 1 furgone (targa 003, km percorsi 9.000,
tagliando a km 10.000)
Esercitazione 23/11/2006
2
– 2 autisti (Mario e Piero). Si assuma che questi due autisti e i tre mezzi del punto precedente
costituiscono il complesso di quanto la ditta dispone.
– 1 prenotazione di camion con autista di 2 giorni (18 e 19 primo camion, autista Mario). Per
semplicità nello scrivere i programmi si faccia riferimento alle date come interi da 1 a 31 e si
trascuri mese e anno.
Nel costruire i programmi si trascurino gli aspetti legati alle ferie, riposo ecc., come pure gli aspettilegati alla manutenzione riparazione dei veicoli
• Stampa la lista risultante delle prenotazioni.
• Effettua queste prenotazioni:
– 1 furgone senza autista il giorno 20.
– 1 camion il giorno 18.
– 1 camion nei giorni 20 e 21.
• Stampa la lista delle prenotazioni risultante.
Alla fine deve essere consegnata una cartella avente come nome la stringa COGNOMENOME della persona e
contenente:
• Una cartella di nome UML contenente:
– Il file .uml generato da StarUML.
– Una cartella di nome java contenente i file .java generati da StarUML
• Una cartella di nome WKS contenente il workspace Eclipse con i programmi sviluppati, rispettando queste
regole:
– denominare il progetto Prova;
– denominare dominio il package contenente il modello di dominio (costruito a partire dall’importazione
dei file .java generati da StarUML)
– denominare client il package contenente il Main.