Testo - Dipartimento di Ingegneria dell`Informazione
Transcript
Testo - Dipartimento di Ingegneria dell`Informazione
Prova scritta del 13 gennaio 2009 1 Prova scritta del 13 gennaio 2009 Si vuole costruire il sistema informativo per una squadra di calcio. La squadra dispone di una rosa di giocatori ed ha un allenatore. La rosa può variare in corso d’anno in conseguenza di vendite o acquisti di giocatori. Lo stesso vale per l’allenatore. Il sistema deve tenere traccia della data di acquisto e della eventuale data di vendita dei singoli giocatori e dell’allenatore. Si vuole che il sistema tenga traccia degli incontri sostenuti dalla squadra. In particolare per ogni partita devono essere identificati: la squadra avversaria, il luogo dove è stata giocata, l’arbitro, il risultato e il numero di calci d’angolo a favore e contro. Inoltre, solo per quanto si riferisce alla nostra squadra, deve essere tenuta traccia per ciascuna partita di: formazione e valutazione di ciascun calciatore, marcatori, sostituzioni , ammonizioni, espulsioni, ecc... Per marcature, espulsioni e sostituzioni, deve essere memorizzato anche il momento in cui sono avvenute; per le sostituzioni si deve tenere traccia di chi sostituisce chi. 1. Utilizzando StarUML (a) Si costruisca il modello UML del dominio applicativo. Il modello deve essere presentato nella forma che deriva anche dall’analisi dei due punti seguenti, con l’evidenziazione gli attributi delle classi che consentono di realizzare gli obiettivi di cui sopra. (b) Si tracci il diagramma di robustezza relativo caso d’uso “Registrazione della sostituzione del giocatore gA con il giocatore gB ”. A tal fine si assuma che l’attore interagisca tramite un video. Il diagramma deve mettere in evidenza tutte le classi del modello di dominio che intervengono nel caso d’uso. (c) Si tracci il diagramma di sequenza relativo al medesimo caso d’uso. 2. Si importino in Eclipse le classi java del modello generate da StarUML. Si assuma di simulare il comportamento di attore e interfaccia con la classe Simulatore (ovvero con il main). Per semplicità, si facciano queste ipotesi semplificative rispetto al modello di dominio:1 • le squadre in campo sono di 4 giocatori; non c’è da tenere traccia delle date di acquisizione/vendita di giocatori (né dell’allenatore); • per quanto si riferisce alle partite, non c’è da tenere traccia dell’arbitro, né dei calci d’angolo battuti o subiti; della squadra avversaria si tiene conto memorizzando il solo nome come stringa, lo stesso vale per il luogo in cui si disputa una partita. Le date delle partite sono numeri interi. • non accade mai che un giocatore subentrato venga a sua volta sostituito. • l’applicazione si riduce alla sola classe Registratore che dovrà essere dotata dei metodi adeguati al fine dello svolgimento dell funzioni sotto riportate. (a) Si popoli il modello con questa rosa di giocatori: Frey, Gamberini, Vargas, Santana, Montolivo, Mutu, Gilardino; allenatore:Prandelli. (A tale scopo si preveda una apposita classe (Builder) nel package contenente il simulatore.) Si stampi la rosa dei giocatori e l’allenatore. (b) Tramite Registratore si inserisca la partita con l’Atalanta giocata a Bergamo il giorno 10, con questa formazione iniziale: Frey, Gamberini, Montolivo, Gilardino. Si deve prevedere un metodo a cui si passano come parametri: 10, ‘‘Atalanta’’, ‘‘Bergamo’’ e un array di stringhe contenente la formazione. Si stampino i dati relativi alla partita appena immessa (data, squadra avversaria, luogo e formazione). (c) Si doti Registratore del/dei metodo/i per registrare questi eventi (i giocatori devono essere passati al metodo con il loro nome, cioè come stringa di caratteri): • ammonizione al min 20 di Montolivo; • goal di Gilardino al 23 min; 1 Le semplificazioni vanno introdotte al tempo di programmazione, sulle classi derivanti dal modello di dominio in forma generale. Prova scritta del 13 gennaio 2009 • • • • 2 sostituzione al min 40 di Gamberini con Vargas; sostituzione al min 47 di Gilardino con Mutu; goal di Mutu al min 50; espulsione di Mutu al min 60; Si preveda in Registratore un metodo per stampare gli eventi occorsi e se ne faccia la stampa. (d) Si doti Registratore del metodo per registrare la valutazione di ciascun giocatore. Si assegni: 6 a Frey, 7 a Gamberini, 6 a Montolivo, 8 a Gilardino, 6 a Vargas, 6 a Mutu. i. Si preveda in Registratore un metodo per stampare la lista dei giocatori e la relativa valutazione. Con i dati precedenti deve uscire: Frey (6), Gamberini (7), Montolivo (6), Gilardino (8), Vargas (6), Mutu (6). ii. Si preveda in Registratore un metodo per stampare la formazione e la valutazione, nella forma che usualmente appare sui giornali; con i precedenti dati si deve leggere: Frey (6), Gamberini (7) dal min 18 Vargas (6), Montolivo (6), Gilardino (8) dal min 47 Mutu (6). Punteggi 1a: 12; 1b: 2; 1c: 3; 2a: 2; 2b: 3; 2c: 4; 2(d)i: 3 2(d)ii: 4; I programmi devono essere coerenti rispetto al modello, alla struttura delle classi, ecc. Essi devono essere costruiti per il caso generale, nel senso che i dati da immettere vanno considerati come dati per il test del corretto funzionamento.