StammiBene. FLAT2: accesso a un insieme di centri per un numero dato di giorni (anche non consecutivi), comprensivo

Documenti analoghi
Fattura Elettronica e Piattaforma Certificazione dei Crediti (PCC).

Manuale utente Soggetto Promotore Erogatore Politiche Attive

Software gestione tesseramenti. - Guida alla definizione e utilizzo dei corsi e attività -

18/05/2016 MANUALE UTENTE

ANAGRAFE NAZIONALE CREDITI FORMATIVI. Manuale utente

INFORMATIVA PER NUOVA GESTIONE BUONI PASTO SCUOLA PRIMARIA E SECONDARIA INFERIORE

OPERAZIONI CHIUSURA E APERTURA Note operative

Accreditamento al portale di Roma Capitale

Fast Patch 0336 Predisposizione operazioni superiori a euro Release 7.0

Comune di Zero Branco Provincia di Treviso

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Disconnessione Utente

Integrazione al Manuale Utente 1

Guida per il cittadino

Manuale Utente per la Gestione dei Revisori degli Enti Locali

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

MANUALE UTENTE Scrittura lettura ISEE su CSE Agosto 2013 Versione 1.0

N.B.: per poter eseguire la 1ª chiusura I.V.A. periodica dell'anno occorre avere eseguito la Chiusura I.V.A. a fine anno.

Acquisto corsi online da parte di aziende

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

GUIDA ALLA COMPILAZIONE DEL TEST DI ORIENTAMENTO pre-immatricolazione

Note_Batch_Application 04/02/2011

M n a u n a u l a e l e o p o e p r e a r t a i t v i o v o Ver /12/2014

Manuale Sito Videotrend

SCADENZA FASE VALORE ECONOMICO DATA. Scadenza 0 Avviamento Progetto ,00 02/12/2013. Scadenza 1 I SAL ,00 28/02/2014

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

MODULO WEBGENITORI. Versione 1.2

Valorizzazione del capitale immateriale dell impresa e accesso al credito MODULO DI CANDIDATURA

Guida alla compilazione

Il software per la gestione del Negozio

RICHIESTA CERTIFICATO DI AGIBILITÀ IMPRESE CHE OCCUPANO LAVORATORI DEL SETTORE DELLO SPETTACOLO

Procedura operativa per la gestione della funzione di formazione classi prime

GESTIONE ACCESSI AI SERVIZI WEB DELLE CO

LINGUE TEDESCA, FRANCESE E SPAGNOLA LIVELLO A2

Per cominciare è necessario:

1 Considerare la seguente descrizione del processo di prestito dei libri di una biblioteca, per il quale si vuole progettare un software:

Modalità di registrazione al Portale della Pubblica Amministrazione

Vendita beni ed erogazione servizi

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Specifiche tecniche per l interoperabilità tra i sistemi regionali di FSE

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

B2B. Manuale per l utilizzatore.


INDICE. PULSE Manuale Operativo Pag. 1

1 Esercizi di Riepilogo sui piani di ammortamento

Si considerino le seguenti specifiche per la realizzazione di un sito web per la gestione di abbonamenti a riviste di vario genere..

NUOVI TESSERINI C.R.I. E INTRODUZIONE DEL GESTIONALE UNICO DEI SOCI G.A.I.A.

Pro memoria per la ripartizione delle spese

Specifiche tecniche e di formato Presentazione comunicazione unica per la nascita d impresa

ISCRIZIONI ONLINE 2014 II FASE Scuole Verifica domande

7 Disegni sperimentali ad un solo fattore. Giulio Vidotto Raffaele Cioffi

Analisi dei processi di dematerializzazione. Università di Napoli Federico II. Valentina Casola Forum PA, maggio 2008

Guida alla registrazione

Guida per il cacciatore

Sito del sistema bibliotecario Area Nord Ovest

Università per Stranieri di Siena

POSTALIZZAZIONE Manuale d'uso del modulo di postalizzazione di RipartoIG

FSM: Macchine a Stati Finiti

Progetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi

Per poter creare un cedolino aggiuntivo digitare il comando GESCED oppure selezionare la cartella Elaborazioni mensili e di seguito la voce di menù

AnthericaCMS. Gestisci in autonomia i contenuti del tuo sito-web

Sistemi Web per il turismo - lezione 3 -

Guida utente per l accreditamento al sistema di invio notifiche web SEVESO III.0

La cedolare secca. Chi, cosa, come, quando e perché

APERTURA DIGITALE DEL CONTO DEPOSITO

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Introduzione alle macchine a stati (non definitivo)

SPECIFICHE OPERATIVE X LA CONTABILITA DEI PROFESSIONISTI

Guida alla Registrazione Utenti

Direttive di applicazione del Regolamento Bachelor per il corso di laurea in lavoro sociale

MANUALE DI UTILIZZO DEL PORTALE WEB

ISCRIZIONE ASPIRANTI TIROCINANTI

ESAME 13 Gennaio 2011

Manuale cliente finale portale accertamenti delibera 40

AUTOMAZIONE RILEVAZIONE DELLE PRESENZE ALLA REFEZIONE SCOLASTICA PRESSO LE SCUOLE STATALI

CAPITOLO 9 STATISTICHE INDICE

UNIVERSITÀ DEGLI STUDI DI TORINO. Istruzioni per la prenotazione Appelli ONLINE v02 del

MANUALE GUIDA ALL UTILIZZO DEL PORTALE RINNOVI MUSICA D AMBIENTE

Manuale Utente CMMG Corso Medici Medicina Generale

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

Richiesta di CITTADINANZA ELENCO DEI DOCUMENTI DA PORTARE PER LA COMPILAZIONE:

SAP Manuale del firmatario DocuSign

ISTRUZIONI OPERATIVE PROCEDURA CONCORSI ONLINE

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

ISCRIZIONI ON LINE. Come si presenta la domanda. Direzione Generale per i contratti, gli acquisti e per i sistemi informativi e la statistica

SPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);

REGISTRO DELLE IMPRESE

Manutenzione periodica al PIANO DEI CONTI

Convenzione per la realizzazione dei servizi relativi al Processo Civile Telematico a favore dell Ordine dei Chimici della Provincia di Modena

testo Saveris Web Access Software Istruzioni per l'uso

Cliens Redigo Versione Aggiornamento al manuale.

Progetto Istanze On Line. Presentazione OnLine Modello B. 13 Giugno 2014

GESTIONE DELLE ATTIVITA DI EDUCAZIONE AMBIENTALE

* in giallo le modifiche apportate rispetto alla versione precedente datata 17/04/2012

PROFESSIONISTI AZIENDALI ASSOCIATI I PROFESSIONISTI PER L AZIENDA

APPENDICE - Pratiche di radiazione Polo ACI

Prenotarsi agli appelli guida sportello internet

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

ECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.6 Aspetti giuridici. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s.

Transcript:

StammiBene Benessere per tutti, società leader in Italia nel settore dello sport, del benessere e del tempo libero, vuole installare un nuovo sistema informatico, chiamato StammiBene, per la gestione e il controllo degli accessi per la propria rete di centri sportivi polivalenti, che comprende: 2 piscine di acquafitness, 4 impianti natatori, 10 circoli sportivi, 3 scuole di danza, uno stabilimento termale, 2 parchi estivi. Il sistema deve gestire i clienti di Benessere per tutti. Gli addetti della reception di ogni centro sportivo devono poter iscrivere un nuovo cliente, creandone la scheda anagrafica e consegnandogli le credenziali per gli accessi remoti e una tessera di riconoscimento, che lo abilita ad accedere a tutte le strutture, previo acquisto di un abbonamento, di un biglietto singolo, o di un carnet di biglietti. La politica aziendale prevede che l iscrizione sia gratuita, ma controllata: oltre a un documento di riconoscimento, il cliente consegna un certificato medico. Prima di accettare l iscrizione occorre controllare se il cliente sia già stato iscritto in passato (prima della costituzione della società) a uno dei centri sportivi ora consociati in Benessere per tutti. Se così fosse, la nuova iscrizione viene fatta solo previo saldo di eventuali vecchi debiti per mensilità non pagate. Gli acquisti possono essere fatti alla reception, in contanti o con Bancomat, oppure via web. In ogni caso viene prodotta una ricevuta, che può essere immediatamente stampata dagli addetti alla reception, o scaricata in formato PDF. I servizi che possono essere acquistati sono: FLAT1: accesso a un insieme di centri per un dato periodo (mese, trimestre, anno), comprensivo di frequenza di tutti i corsi collettivi; FLAT2: accesso a un insieme di centri per un numero dato di giorni (anche non consecutivi), comprensivo di frequenza di tutti i corsi collettivi; frequenza mensile di un singolo corso; un dato numero di ore di personal trainer; un singolo accesso giornaliero a un parco estivo o allo stabilimento termale; un ora di campo da tennis; credito in un borsellino elettronico (per docce, bibite, etc). Il borsellino serve anche per pagare servizi non acquistati in anticipo: ad esempio l'accesso ad alcune aree dello stabilimento termale, come la sauna, ore aggiuntive di permanenza in un centro, etc. Inoltre, in alcuni centri sportivi è presente un caricatore di banconote: il cliente è in grado di ricaricare in autonomia il borsellino, identificandosi con la tessera. Il sistema deve permettere di prenotare (alla reception o via web) i campi da tennis, e i personal trainers. Le prenotazioni possono essere annullate fino a 5 ore prima, senza alcun addebito, e fino a un ora prima pagando il 50%, altrimenti viene addebitata la quota per intero. Il sistema deve gestire l occupazione degli impianti e l offerta di corsi, permettendo: ai clienti di visualizzare i servizi offerti: corsi, campi liberi, etc. alla direzione di aggiungere o modificare i servizi offerti e di ottenere informazioni sintetiche sull andamento della società. All ingresso e all uscita di ogni centro sportivo ci sono una reception e un tornello collegato a un lettore RFID. Il cliente accede avvicinando la tessera al lettore: come deterrente agli scambi di tessera, la foto del cliente viene visualizzata sui monitor degli addetti alla reception, che possono controllare la sua identità. I clienti con accesso FLAT non hanno vincoli di orario, gli altri possono entrare non più di mezz ora prima dell orario di inizio del servizio acquistato e devono uscire entro un ora dalla fine. 1

Il sistema deve gestire anche le presenze dei dipendenti, che, invece del cartellino da timbrare, hanno una tessera di riconoscimento con RFID per la registrazione degli ingressi e delle uscite, usando i tornelli dei clienti. I dati raccolti sulle ore lavorate vengono passati settimanalmente al sistema di gestione paghe. I dipendenti possono avere anche una seconda tessera, per usare i servizi, che acquistano con uno sconto del 50% rispetto ai clienti normali. Il sistema permette l acquisizione rapida dei dati anagrafici degli utenti attraverso uno speciale scanner dedicato, con tecnologia OCR, che consente di acquisire in pochi secondi i dati contenuti nei documenti di identificazione (carta d identità, patente, passaporto) e di inserirli automaticamente nella scheda anagrafica, comprese la foto e la scansione dell intero documento. Il sistema supporta il marketing rendendo operative le promozioni e le azioni da intraprendere quando: un utente compie gli anni; un utente ha un abbonamento in scadenza nella successiva settimana e non ancora rinnovato; Inoltre, per fidelizzare i clienti, la tessera, che inizialmente era Sporty, diventa Mundialito dopo 500 euro spesi a vario titolo preso la società, e Olympic dopo i 1500. I possessori di tessera Mundialito hanno diritto a tre saune gratis all anno, cui si aggiungono due accessi ai parchi estivi per i possessori di tessera Olympic. Una tessera non ricaricata per un anno diventa DimensionePanza e fa perdere i diritti acquisiti e congela il borsellino. Torna Sporty alla prima ricarca. Corso di Ingegneria del software Prima verifica 31 marzo 2014 C, Montangero, L. Semini - Dipartimento di Informatica, Università di Pisa, a.a. 2013/14 La prova si svolge a libri chiusi (non è permessa la consultazione di materiale didattico). Traccia delle soluzioni Si consideri il caso di studio StammiBene, e il seguente chiarimento: l ultima frase deve intendersi come Se non si acquista almeno un servizio per un anno, la tessera diventa DimensionePanza, si perdono i diritti acquisiti e il borsellino è congelato. Al primo acquisto la tessera viene riattivata, come Sporty. Domanda 1. Analisi del dominio. Dare un diagramma delle classi che cattura le entità significative nella fase di iscrizione e le loro relazioni. 2

************** Domanda 2. Requisiti. Dare la narrativa del caso d uso Iscrizione, data la seguente Breve descrizione: Iscrizione di un nuovo cliente, eventualmente con riserva (e senza rilascio della tessera) se ha debiti pendenti. Attore Principale: Addetto Attori secondari: nessuno Precondizione: Cliente non iscritto a StammiBene Postcondizione: Cliente iscritto a StammiBene, eventualmente con riserva Sequenza principale degli eventi: 1 L addetto richiede una nuova iscrizione. 2 Il sistema attiva lo scanner e richiede il documento d identità. 3 L addetto dispone il documento d identità e avvia la scansione. 4 Il sistema genera la scheda anagrafica. 6. Il sistema richiede il certificato medico. 7. L addetto dispone il certificato medico e avvia la scansione. 8. Il sistema registra i dati del cliente. 9. SE il nuovo cliente non ha debiti pendenti con alcun centro pre StammiBene 9.1. Il sistema emette la tessera di riconoscimento e stampa le credenziali. ALTRIMENTI 9.2. Il sistema dichiara il cliente in attesa di sanare la situazione. **** Domanda 3. Requisiti. Dare un diagramma dei casi d uso del sottosistema che si occupa dell iscrizione, per completare quanto specificato sopra, sapendo che, una iscrizione con riserva può andare a buon fine e essere completata, oppure, se il cliente non sana il debito entro dei termini dati, essere cancellata. 3

Domanda 4. Dare due diagrammi di attività per descrivere il passaggio di un cliente al tornello. Il primo sfrutta una sotto-attività, chiamata ControlloVisivo, descritta nel secondo diagramma. Si tenga conto che l addetto ha 30 secondi di tempo per contestare l identità del Cliente, in base alla foto. L attività ControlloVisivo deve essere in parallelo all apertura del tornello e non interromperla, in alcun caso. Domanda 5. Dare un diagramma di Macchina a stati che descriva l evoluzione dello stato di una tessera di riconoscimento. La risposta deve avere due stati per distinguere quando la tessera è attiva da quando non lo è, e usare una regione ortogonale per tener conto degli acquisti. 4

Si consideri il seguente caso d uso. Caso D uso: iscrizione Attore Principale: Addetto Attori secondari: nessuno Precondizione: Cliente non iscritto a StammiBene Postcondizione: Cliente iscritto a StammiBene, eventualmente con riserva Sequenza principale degli eventi: 5 L addetto richiede una nuova iscrizione. 6 Il sistema attiva lo scanner e richiede il documento d identità. 7 L addetto dispone il documento d identità e avvia la scansione. 8 Il sistema genera la scheda anagrafica. 10. Il sistema richiede il certificato medico. 11. L addetto dispone il certificato medico e avvia la scansione. 12. Il sistema registra i dati del cliente. 13. SE il nuovo cliente non ha debiti pendenti con alcun centro pre StammiBene 13.1. Il sistema emette la tessera di riconoscimento e stampa le credenziali. ALTRIMENTI 13.2. Il sistema dichiara il cliente in attesa di sanare la situazione. Per realizzare il sottosistema di supporto alle iscrizioni, sono state individuate le seguenti componenti. Componente Interfaccia Addetto LogicaIscrizione DBClienti Scanner GeneratoreTessere Responsabilità Offre un interfaccia utente all addetto della Reception. Realizza le operazioni necessarie per l iscrizione, interagendo con le altre componenti. Mantiene le informazioni sui clienti. Gestisce le operazioni dello scanner. Gestisce le operazioni di creazione delle tessere. Domanda 1. Architettura. Dare un diagramma componenti e connettori per il sottosistema di supporto alle iscrizioni. Rappresentare anche l interfaccia dello scanner che offre il metodo getpage(). 5

Domanda 2. Realizzazione dei casi d uso. Dare un diagramma di sequenza che mostra come le componenti della vista C&C interagiscono per realizzare il caso d uso Iscrizione. Domanda 3. Progettazione di dettaglio. Dare un diagramma di struttura composita per la componente LogicaIscrizione, raffinando il modello base per evidenziare la creazione della schedaanagrafica. 6

Domanda 4. Architettura. Dare la vista strutturale degli usi relativo ai moduli individuati nell esercizio 3. Per ogni parte, la classe che ne realizza il tipo e le interfacce offerte, vanno nello stesso package. Domanda 5. Si consideri il metodo analizzaclienti, con la seguente specifica: dato un vettore di clienti di StammiBene, restituisce una tripla formata, rispettivamente, dal numero degli clienti che hanno una tessera: a) Sporty o DimensionePanza, b) Mundialito, c) Olympic rispettivamente. Si assume che il tipo di tessera sia rappresentato da un intero da 0 a 3, con 0 che indica DimensionePanza, fino a 3 per Olympic. public Tripla analizzaclienti (Vector <Cliente> clienti) { int sportyodp = 0; int mundialito = 0; int olympic = 0; for (Cliente c: clienti) { int tipotessera = c.gettipotessera(); if (tipotessera == 0 tipotessera == 1) sportyodp ++; else if (tipotessera > 2) mundialito ++; else olympic ++; } 7

} return new Tripla(sportyOdp, mundialito, olympic); Domanda. (Verifica) a) Definire un caso di test (con ambiente vuoto) con insieme di dimensione minima di valori da attribuire agli elementi del vettore clienti che permetta di raggiungere una copertura del 100% del codice del metodo analizzaclienti, secondo il criterio dei comandi. b) Il caso di test dato evidenzia un malfunzionamento? a) Una soluzione minima è la seguente: < [c1,c2,c3], <1,1,1>, > Con: c1.gettipotessera()==0, c2.gettipotessera()==3 c3.gettipotessera()==2 b) No, in quanto il risultato calcolato coincide con quello atteso, anche se il calcolo è fatto in modo scorretto (olympic conta come mundialito e viceversa). E possibile con un test minimo evidenziare il malfunzionamento? Se no, dare un caso non minimo che lo faccia. Corso di Ingegneria del software Appello 4 giugno 2014 C, Montangero, L. Semini - Dipartimento di Informatica, Università di Pisa, a.a. 2013/14 La prova si svolge a libri chiusi (non è permessa la consultazione di materiale didattico). Si consideri il caso di studio StammiBene Domanda 1. Analisi del dominio. Dare un diagramma delle classi che descriva la parte del dominio che riguarda le prenotazioni. Usare una enumerazione per i trattamenti disponibili nelle SPA, e indicarne un paio. Domanda 2. Analisi del dominio. Dare un diagramma di macchine a stati che descriva lo stato di una prenotazione, sapendo che una prenotazione può essere aperta o archiviata, e che si archiviano anche le prenotazioni annullate. Si assume che il pagamento venga fatto al momento della prenotazione, e che il suo (eventualmente parziale) rimborso avvenga al momento della cancellazione, con accredito nel borsellino. E dato il seguente caso d uso. ***** 8

Caso d uso: Annulla prenotazione Attore Principale: Annulante Attori secondari: nessuno Precondizione: Prenotazione aperta Postcondizione: Prenotazione annullata Sequenza principale degli eventi: 1. L Annullante chiede di annullare una prenotazione di un socio. 2. SE (typeof Annullante = Socio) 2.1. Il sistema verifica che il socio di cui si cancella la prenotazione sia lo stesso Annullante. 3. Il sistema presenta le prenotazioni aperte del socio. 4. L Annullante sceglie la prenotazione da annullare. 5. Il sistema comunica se è previsto rimborso e il suo ammontare. 6. Il cliente conferma 7. SE (è previsto rimborso) 7.1. Il sistema accredita il rimborso nel borsellino del socio 8. Il sistema annulla e archivia la prenotazione Sequenza alternativa degli eventi: 1. Il cliente non conferma dopo aver visto l ammontare del rimborso. Domanda 3. Dare un diagramma di sequenza che realizzi il caso d uso AnnullaPrenotazione. Domanda 4. a) Dare un architettura 3-tier per la gestione delle prenotazioni. b) Dare la struttura composita della componente intermedia. Domanda 5. Rappresentando i valori della classa Data con gg/mm/aa hh:mm, e quelli della classe Euro con cc.00, dare un insieme di casi di test per la verifica dinamica del metodo rimborso della classe Prenotazione, individuandoli a scatola chiusa. Si motivi la presenza di ciascun caso. public class Prenotazione { Data dataprenotata; Euro costoprestazione;... public Euro rimborso(data dataodierna) {... } Corso di Ingegneria del software Sesto Appello 15 gennaio 15 9

C, Montangero, L. Semini - Dipartimento di Informatica, Università di Pisa, a.a. 2013/14 La prova si svolge a libri chiusi (non è permessa la consultazione di materiale didattico). Si consideri il caso di studio StammiBene, ed in particolare quanto riguarda i requisiti di supporto al marketing: Il sistema supporta il marketing rendendo operative le promozioni e le azioni da intraprendere quando: un utente compie gli anni; un utente ha un abbonamento in scadenza nella successiva settimana e non ancora rinnovato; Una successiva analisi ha portato a meglio specificare le azioni da intraprendere in occasione del compleanno di un cliente: tre giorni prima del compleanno, viene inviata una mail per avvertire che presentandosi ad un centro sportivo in tale data ci sarà una sorpresa o se il giorno del compleanno i centri sportivi fossero chiusi, la promozione vale per il primo giorno utile successivo appena possibile, dopo che il cliente ha passato i tornelli o viene suonata da tutti gli altoparlanti una canzoncina personalizzata di auguri, nella lingua del paese di nascita o viene estratto un premio e annunciato, in italiano, da tutti gli altoparlanti, il premio vinto. Domanda 1. Analisi del dominio. Dare un diagramma delle classi per descrivere la parte di dominio che descrive il supporto al marketing. Tra le entità di interesse, considerare quanto meno: clienti, schede anagrafiche, tessere, servizi. Domanda 2. Analisi dei requisiti. Dare il diagramma dei casi d uso per il sottosistema che supporta il marketing, e la narrativa del caso d uso SorpresaDiCompleanno. Domanda 3. Analisi dei requisiti. Dare il diagramma di sequenza che realizza il caso d uso SorpresaDiCompleanno. **************** Si assuma l esistenza di un servizio Web che genera la canzone di compleanno. La progettazione architettonica ha portato all individuazione delle seguenti componenti: Componente DBClienti DBTessere LogicaMarketing LogicaTornelli LettoreSchede- Tornelli Responsabilità Mantiene l anagrafica clienti Mantiene lo stato delle tessere Realizza la logica del sottosistema marketing Realizza la logica dei tornelli Controlla la lettura delle schede ai tornelli Domanda 4. Architettura. Dare la vista C&C sull architettura del sottosistema che supporta il marketing. **************** Il responsabile marketing ha deciso che i regali di compleanno verranno scelti tra i seguenti, con le associate probabilità: ricarica 5 euro nel borsellino 50% ingresso SPA 30% 1 ora di personal trainer 10% Un mese di corso a piacere 10% 1

Domanda 5. Verifica: Quale può essere un buon criterio di progettazione di casi di test in questo caso? Corso di Ingegneria del software Appello del 5 febbraio 15 C, Montangero, L. Semini - Dipartimento di Informatica, Università di Pisa, a.a. 2013/14 La prova si svolge a libri chiusi (non è permessa la consultazione di materiale didattico). Si consideri il caso di studio StammiBene, ed in particolare quanto riguarda i requisiti di supporto al marketing: Il sistema supporta il marketing rendendo operative le promozioni e le azioni da intraprendere quando: un utente compie gli anni; un utente ha un abbonamento in scadenza nella successiva settimana e non ancora rinnovato; Una successiva analisi ha portato a meglio specificare le azioni da intraprendere in occasione del compleanno di un cliente: tre giorni prima del compleanno, il sistema invia una mail per avvertire che presentandosi ad un centro sportivo in tale data ci sarà una sorpresa o se il giorno del compleanno i centri sportivi sono chiusi, la promozione vale per il primo giorno utile successivo appena possibile, dopo che il cliente ha passato i tornelli o viene suonata da tutti gli altoparlanti una canzoncina personalizzata di auguri, nella lingua del paese di nascita o viene estratto un premio e annunciato, in italiano, da tutti gli altoparlanti, il premio vinto. Il diagramma delle classi che descrivere la parte di dominio relativa alle azioni di marketing è il seguente: Domanda 1. Analisi del dominio. Dare un diagramma degli oggetti che considera un cliente che ha già acquistato due servizi e vinto un premio. **************** Si assuma l esistenza di un servizio Web che genera la canzone di compleanno. E stato definito il caso d uso SorpresaDiCompleanno, con la seguente narrativa: Princi- Breve zione Attore pale Descri- Quando l utente passa la tessera al tornello nel giorno del suo compleanno, o nel primo giorno utile successivo, il sistema manda in onda canzone di auguri, estrae un premio e lo annuncia con gli altoparlanti. Cliente 1

Attore Secondario Precondizione Postcondizione Sequenza Principale degli Eventi Sequenza alternativa degli eventi Servizio Web Generazione Canzoni Nessuna Se è il giorno del compleanno del cliente, o il primo giorno utile successivo, è stata cantata la canzone di auguri, estratto un premio e annunciato con gli altoparlanti. 1. Il Cliente avvicina la tessera al lettore del tornello 2. SE (è il giorno del suo compleanno o il primo giorno utile successivo) 2.1. Il sistema recupera il nome e la nazionalità del cliente 2.2. Il sistema li invia al Servizio Web Generazione Canzoni e riceve la canzone. 2.3. Il sistema estrae un premio. 2.4. Il sistema assegna il premio al cliente. 2.5. Il sistema invia agli altoparlanti la canzone. 2.6. Il sistema genera un messaggio vocale con il premio vinto e lo invia agli altoparlanti. La tessera non appartiene al cliente. La tessera non permette l accesso. Domanda 2. Analisi dei requisiti. Dare un diagramma di attività che descriva il caso d uso SorpresaDiCompleanno, aggiungendo concorrenza tra le azioni, ove possibile. **************** La progettazione architettonica del sottosistema che supporta il marketing ha portato all individuazione delle seguenti componenti: Componente Responsabilità DBClienti Mantiene l anagrafica clienti DBTessere Mantiene lo stato delle tessere LogicaMarketing Realizza la logica del sottosistema marketing LogicaTornelli Realizza la logica dei tornelli LettoreSchede- Tornelli Controlla la lettura delle schede ai tornelli Domanda 3. Progettazione architettonica. Dare il diagramma di sequenza che mostra come l architettura definita realizza il caso d uso SorpresaDiCompleanno. Domanda 4. Progettazione di dettaglio. Dare un diagramma di struttura composita per la componente LogicaMarketing. Il generatore di numeri casuali necessario per l estrazione del premio è incapsulato in una parte a sé stante, che deve essere rappresentata esplicitamente. **************** Il responsabile marketing ha deciso che i regali di compleanno verranno scelti tra i seguenti, con le associate probabilità: Un ingresso SPA 50% 1 ora di personal trainer 30% 1

Un mese di corso a piacere 20% E stato scritto il seguente codice: int x = \\ ottenuto dal generatore; if (x<5) {premio = ingressospa ;} else if (x<8) {premio = personaltrainer ;} else {premio = corso ;} Domanda 5. Verifica: Dare la specifica che deve essere soddisfatta dallo stub costruito per sostituire la parte che realizza il generatore di numeri casuali, per fare un test che garantisca la copertura al 100% secondo il criterio delle decisioni. Corso di Ingegneria del software Appello Straordinario 31 marzo 2014 C, Montangero, L. Semini - Dipartimento di Informatica, Università di Pisa. La prova si svolge a libri chiusi. Si consideri il caso di studio StammiBene, e il seguente chiarimento: l ultima frase deve intendersi come Se non si acquista almeno un servizio per un anno, la tessera diventa DimensionePanza, si perdono i diritti acquisiti e il borsellino è congelato. Al primo acquisto la tessera viene riattivata, come Sporty. Domanda 1. Analisi del dominio. Dare un diagramma delle classi che cattura le entità significative nella fase di iscrizione e le loro relazioni. Domanda 2. Dare due diagrammi di attività per descrivere il passaggio di un cliente al tornello. Il primo sfrutta una sotto-attività, chiamata ControlloVisivo, descritta nel secondo diagramma. Si tenga conto che l addetto ha 30 secondi di tempo per contestare l identità del Cliente, in base alla foto. L attività ControlloVisivo deve essere in parallelo all apertura del tornello e non interromperla, in alcun caso. Domanda 3. Dare un diagramma di Macchina a stati che descriva l evoluzione dello stato di una tessera di riconoscimento. La risposta deve avere due stati per distinguere quando la tessera è attiva da quando non lo è, e usare una regione ortogonale per tener conto degli acquisti. Domanda 4. Architettura. Per realizzare il sottosistema di supporto alle iscrizioni, sono state individuate le seguenti componenti. Componente Interfaccia Addetto LogicaIscrizione Responsabilità Offre un interfaccia utente all addetto della Reception. Realizza le operazioni necessarie per l iscrizione, interagendo con le altre componenti. 1

DBClienti Scanner GeneratoreTessere Mantiene le informazioni sui clienti. Gestisce le operazioni delle scanner. Gestisce le operazioni di creazione delle tessere. Domanda 5. Si consideri il metodo valutaclientela, con la seguente specifica: dato un vettore di clienti di StammiBene, restituisce una tripla formata, rispettivamente, dal numero degli clienti che hanno una tessera Sporty o DimensionePanza, Mundialito, Olympic, rispettivamente. Si assume che il tipo di tessera sia caratterizzato da un intero da 0 a 3, 0 essendo per DimensionePanza, 3 per Olympic. public Tripla valutaclientela (Vector <Cliente> clienti) { int sportyodp = 0; int mundialito = 0; int olympic = 0; for (Cliente c: clienti) { // itera su clienti int tipotessera = c.gettipotessera(); if (tipotessera == 0 tipotessera == 1) sportyodp ++; else if (tipotessera == 2) mundialito ++; else olympic ++; } return new Tripla(sportyOdp, mundialito, olympic); } Domanda. (Verifica) a) Definire un insieme di dimensione minima di valori da attribuire agli elementi del vettore clienti che permetta di raggiungere una copertura del 100% del codice del metodo valutaclientela, secondo il criterio dei comandi. b) Calcolare la copertura che tale insieme dà secondo il criterio delle condizioni. 1