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.