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.