Corso di Ingegneria del software Secondo appello 29 gennaio 2008 V. Ambriola, L. Semini Dipartimento di Informatica, Università di Pisa a.a. 2007/08 La prova si svolge a libri chiusi (non è permessa la consultazione di materiale didattico). Traccia delle soluzioni L Albergo dei Fiori intende adottare un sistema di gestione che gestisca prenotazione e pagamento delle camere, attività di pulizia, bar e ristorante. I clienti possono prenotare una o più camere tramite vari mezzi (call center, web, agenzie), indicando la data di arrivo, la data di partenza, i tipi di camera (camera singola, camera doppia, suite). All arrivo presso l albergo, il cliente si registra all accettazione, fornendo un documento di identificazione. Dopo la registrazione gli vengono assegnate una o più camere del tipo richiesto e fornite le chiavi di accesso. Durante il soggiorno, il cliente può effettuare ordinazioni al bar o al ristorante dell albergo, sia direttamente sul posto, sia chiedendo il servizio in camera (in questo caso, l ordinazione viene effettuata al telefono con l accettazione o attraverso un TV-terminale di cui sono dotate le camere, fornito di un telecomando che consente di navigare una serie di menu tramite i quali effettuare l ordinazione). Nel caso di servizio in camera, il cameriere porta direttamente in camera quanto ordinato. Il servizio di pulizia viene effettuato nelle camere occupate tutte le mattine, fra le 10:00 e le 12:00. Se un cliente espone il cartello Non disturbare, la pulizia della camera non è effettuata e si effettua un secondo tentativo fra le 15:00 e le 17:00. Se anche in questo caso è presente il cartello, non è effettuata la pulizia per quel giorno. Nelle camere libere non viene invece effettuato alcun servizio di pulizia e se una camera rimane libera per molto tempo, si effettua una pulizia straordinaria. Quando il cliente termina il suo soggiorno, si presenta all accettazione per il pagamento del costo del soggiorno, calcolato in base al costo delle camere occupate (che dipende dal loro tipo) e del costo delle ordinazioni effettuate al bar e al ristorante, sia direttamente, sia in camera. L accettazione, il bar, il ristorante sono dotati di un terminale fisso, mentre i camerieri e il personale delle pulizie sono dotati di dispositivi palmari collegati con la rete wireless dell albergo. Inoltre, come già detto, in ogni camera è presente un TV-terminale a disposizione del cliente. Tutti i terminali sono collegati al sistema centrale che gestisce prenotazioni, pulizie e ordinazioni; il sistema è anche collegato tramite un servizio web ai mezzi esterni di prenotazione. Il personale dell accettazione usa il sistema per verificare le prenotazioni, registrare gli arrivi e le partenze e per conoscere il saldo dovuto da ogni cliente. Il personale addetto al bar e al ristorante riceve le ordinazioni dei clienti (di persona, dalla TV o via telefono) e segnala al momento della consegna che l ordinazione è stata soddisfatta, se l ordinazione è stata richiesta di persona. Lo stesso personale, inoltre usa il sistema per calcolare il costo dell ordinazione e segnalarlo all accettazione per il successivo addebito (il listino costi è immesso e gestito dal personale addetto al bar e al ristorante). I camerieri accedono alla lista delle ordinazioni fatte dai clienti via TV o telefono e segnalano l avvenuta consegna in camera. Il personale delle pulizie accede alla lista delle camere da pulire e, per ogni camera, segnala sia se la pulizia è stata fatta che se è stata rinviata. I terminali fissi sono dotati di un apposita interfaccia grafica, i palmari usano un interfaccia web. 1
Domanda 1. (Analisi del dominio) Dare un diagramma delle classi, considerando come classi o attributi tutti e soli i termini che nell enunciato compaiono in grassetto. Soluzione 1. Una possibile soluzione è la seguente: 2
Domanda 2 (Analisi del dominio). Si dia un diagramma di attività che descriva l attività di pulizia delle camere, una volta realizzato il sistema. Soluzione 2. Nel seguito, il diagramma di destra mostra il comportamento di TurnoDiPulizia, utilizzato nel diagramma di sinistra, che descrive l attività giornaliera di ciascun addetto. Si noti che OttieniListaCamereDaPulire si effettua all interno del ciclo, perché la lista può essere aggiornata da altri addetti, che operano in parallelo. Si noti anche che non ci sono controlli sulla fine dei turni, in base all assunzione che se il personale non riesce a svolgere il lavoro nel tempo previsto, effettui degli straordinari, i cui compensi siano calcolabili in base alle informazioni registrate dal sistema. 3
L analisi dei requisiti ha portato all individuazione, tra l altro, del caso d uso PuliziaCamera, in cui un AddettoPulizia richiede la lista delle camere da pulire, ne sceglie una, e quindi registra l avvenuta pulizia oppure il rinvio, a causa del cartello Non disturbare. Domanda 3 (Analisi dei requisiti). Dare un diagramma di sequenza del caso d uso PuliziaCamera. Soluzione 3. Una possibile soluzione è la seguente: 4
La progettazione architettonica ha portato a individuare, tra l altro, un sotto-sistema di gestione delle pulizie, con le componenti descritte nella seguente tabella: Componente AdminPuliziaCamere DBPuliziaCamere ServerPulizieCamere ClientPulizieCamere Sotto-sistema di gestione delle pulizie Responsabilità Ogni mattina carica il DBPuliziaCamere con la situazione di occupazione delle stanze. Realizza funzioni di gestione del personale di pulizia. Tiene conto dello stato di pulizia corrente delle camere, e di informazioni correlate, a fini gestionali. Interfaccia i palmari degli addetti al DBPuliziaCamere. Gestisce le interazioni degli addetti alla pulizia con il sottosistema di gestione delle pulizie. Per la corretta comprensione del comportamento di AdminPuliziaCamere, si deve tener conto che nel sistema completo esiste una componente che memorizza tutte le informazioni relative alle camere, come indicato dalla seguente porzione di tabella relativa al sistema. DBCamere Componente Sistema di gestione Hotel dei Fiori Responsabilità Tiene conto delle informazioni relative alle camere, ivi compreso il loro stato di occupazione. Domanda 4 (Architettura). Dare una vista C&C relativa alle componenti elencate sopra. Soluzione 4. Una possibile soluzione è la seguente: 5
L albergo ha il seguente listino prezzi: Camera singola 50,00 Camera doppia 80,00 Suite 100,00 Ordinazione al bar 5,00 Ordinazione al ristorante 10,00 Ordinazione in camera 15,00 Il metodo CostoSoggiorno calcola il costo del soggiorno a partire dal tipo e dal numero delle camere occupate, dalla durata del soggiorno, dal numero di ordinazioni al bar, al ristorante, in camera. Domanda 5. (Test) Fornire cinque casi di prova per il metodo CostoSoggiorno, giustificando per ciascuno di essi la ragion d essere. Soluzione 5. Una possibile soluzione è la seguente: Durata N. singole N. doppie N. suite N. ord. bar N. ord. rist. N. ord. cam. Costo totale 1 1 0 0 0 0 0 50 2 1 0 0 1 0 0 105 2 0 1 0 0 1 0 170 2 0 0 1 0 0 1 215 2 1 1 1 1 1 1 490 6