Programmazione II - Matricole Pari Appello 27/06/2014 Non è consentito usare libri o appunti. Durata: 1,5 ore. 1. [20 punti] Si considerino i seguenti concetti: • Prodotto: ha un nome, una nazione di produzione, un codice numerico e un prezzo; • Locazione: ha un settore e un indice che denota la posizione nel settore; • Settore: ha un numero di posizioni che possono essere libere o assegnate; • Item: è un prodotto con una locazione; • Magazzino: ha un indirizzo, un insieme di item e un insieme di settori; • WrongLocationCodeException: eccezione controllata; • ItemNotFoundException: eccezione non controllata. L’interfaccia pubblica di Magazzino deve fornire metodi per l’aggiunta di un prodotto, restituzione di un prodotto, la cancellazione di un item e la ricerca di un prodotto. Nell’aggiungere un prodotto bisogna assegnare una locazione disponibile. La restituzione di un prodotto e la cancellazione di un item devono avvenire per locazione (passando come parametro una locazione). Se la locazione non è tra quelle possibili del magazzino allora deve essere lanciata un’eccezione WrongLocationCodeException. La ricerca di un prodotto ha come parametro un prodotto e deve restituire una locazione a cui è assegnato un prodotto equivalente (che contiene le stesse informazioni). Se non viene trovato alcun prodotto equivalente, deve lanciare un’eccezione ItemNotFoundException. Gli oggetti di tipo Locazione devono essere immutabili. Implementare in Java i concetti descritti sopra suddividendo nel codice sorgente i metodi delle classi realizzate in metodi di accesso e metodi modificatori. Per indicare la categoria di appartenenza utilizzare un commento all’inizio di ogni gruppo. La soluzione proposta deve rispettare i requisiti della buona progettazione object-oriented e utilizzare gli strumenti più opportuni del linguaggio Java. 2. [10 punti] Scrivere una classe di test adeguata per la classe Magazzino. La valutazione di questo esercizio terrà conto della capacità del test proposto di coprire tutte le parti del codice di Magazzino e del tracciamento delle operazioni (metodi invocati, oggetti istanziati, lancio di eccezioni, etc. devono essere tutte riportate con messaggi in console). Pag. 1
© Copyright 2024 ExpyDoc