Soluzione Proposta Recupero Primo Parziale
Transcript
Soluzione Proposta Recupero Primo Parziale
Cognome_________________Nome________________Matricola_______ Ingegneria del Software I Prova parziale del 27/4/2015 - ESERCIZI Durata: 1h 15' Esercizio 1 (6 pt.). Si supponga di dover implementare un sistema di lettura ed elaborazione automatica delle targhe: quando un'auto passa davanti a una telecamera, un sistema di riconoscimento “legge” la targa. Tale targa è data in input a un modulo che confronta la targa con una lista di targhe di auto rubate o demolite. Se la targa appartiene alla lista, viene inviata una segnalazione automatica via rete a una pattuglia appostata dopo un Km. Altrimenti, la targa viene confrontata con una lista di targhe di auto assicurate. Se non appartiene alla lista, si stampa in automatico una contravvenzione per guida senza assicurazione. Si registra poi il passaggio in un database dei passaggi delle auto (tranne che per le auto rubate o demolite, che saranno fermate dalla pattuglia). Descrivere l’architettura di sistema nel seguente modo: 1. Specificare il nome dello stile architetturale che ritenete più appropriato per il sistema. 2. Disegnare un diagramma che descrive l’architettura del sistema in accordo a tale stile, commentando brevemente a parole il funzionamento ed eventualmente l'input e output dei vari componenti software. 3. Evidenziare i principali punti di forza (vantaggi) e di debolezza (svantaggi) dell’uso di tale architettura. L'architettura di riferimento migliore per questo sistema è quella “Pipe and Filter”, in quanto si tratta di un sistema senza GUI, che elabora dei flussi di dati in blocchi successivi. La figura mostra un disegno dell'architettura. Vantaggi: • Supporta il riuso delle trasformazioni • Intuitivo: permette di capire il funzionamento del sistema come composizione individuale dei filtri • Aggiunta di nuove trasformazioni facile • Abbastanza semplice da implementare • Supporta esecuzione concorrente Svantaggi: • In questo caso, nessuno Esercizio 2 (8 pt.) Si supponga di dover realizzare un'applicazione di messaggistica per smartphone, LetsChat. Traendo ispirazione dalla popolare Whatsapp, si osserva anzitutto che LetsChat deve essere in grado, appena installata e avviata, di mettere in comunicazione il nuovo utente col server centrale LetsChat che raccoglie i dati degli utenti registrati, così da inserirlo nel database. Per gli utenti registrati non sarà successivamente necessario effettuare alcun tipo di login per procedere con l'utilizzo delle altre funzionalità, proprio come avviene con Whatsapp. Gli utenti registrati devono essere in grado di gestire i propri contatti, gestire la chat e anche le chiamate, attraverso tre opzioni (tab) differenti. La particolarità del tab su cui si possono gestire i contatti e del tab su cui si possono gestire le chat è la possibilità di scegliere, con un semplice tocco, di cominciare a chattare rispettivamente con un contatto o anche all'interno di una chat di gruppo. Altrimenti, se si sceglie di andare sul tab 'gestisci chiamate', non si ha la possibilità di chattare, bensì di chiamare un contatto che compare nella rubrica di LetsChat. Sia per gestire le chat, sia per gestire le chiamate, sia per gestire i contatti, l'applicazione dovrà interrogare il server di LetsChat per tenere aggiornato l'elenco dei contatti con i quali l'utente può rispettivamente chattare o parlare. Da una qualsiasi schermata un utente registrato può inoltre decidere di pagare l'abbonamento alla applicazione, che gli permetterebbe di utilizzare tutte le funzionalità di LetsChat, nel seguente modo: • attraverso le impostazioni, e con un'opportuna voce del menù, accede alla sezione pagamenti • il pagamento avviene attraverso PayPal, reindirizzando l'utente a tale sistema per effettuarlo • decide anche per quanti anni attivare l'abbonamento, così da poter eventualmente usufruire di sconti • procede con il pagamento e riceve una notifica dal sistema se questo va a buon fine a) Disegnare il diagramma dei casi d’uso facendo attenzione agli attori primari e secondari. b) Rappresentare in dettaglio il caso d’uso “Abbonamento”. Possibile Soluzione: Il diagramma dei CdU: a) Utente è attore primario, il server e Paypal sono attori secondari. CdU: Abbonamento Descrizione: l'Utente si abbona a LetsChat Attori primari: Utente Attori secondari: Server LetsChat, PayPal Precondizioni: l'Utente deve essere registrato Sequenza principale: 1. L'utente seleziona l'opzione “Impostazioni” 2. Il sistema mostra la voce “Account” 3. L'utente seleziona “Account” 4. Il sistema mostra l'opzione “Info pagamenti” 5. L'utente seleziona “Info pagamenti” 6. Il sistema mostra le tipologie di abbonamento e permette di selezionarne una, e mostra anche il pulsante per il collegamento con il metodo di pagamento PayPal 7. L'utente sceglie l'abbonamento e lo seleziona, poi tocca il pulsante relativo a PayPal 8. Il sistema reindirizza l'utente su PayPal 9. L'utente inserisce le credenziali ed effettua il pagamento 10. PayPal notifica il sistema dell'avvenuto pagamento 10. Il sistema conferma l'avvenuto pagamento aggiornando le informazioni dell'account utente sul server LetsChat, e invia un messaggio di conferma all'utente Sequenza alternativa: 10.A PayPal non acconsente al pagamento per mancanza di fondi 10.A Il sistema mostra il messaggio “Riprova” 11.A L'utente risolve il problema con PayPal. 12.A L'utente va sul pulsante “Riprova” -->riprende dal punto 8 della sequenza principale Postcondizioni: l'abbonamento è attivo Cognome_________________Nome________________Matricola_______ Ingegneria del Software I Prova parziale del 27/4/2015 - QUIZ Durata: 45' 1. Quali di queste proprietà del software è la più critica per i tipi di sistemi in tabella (una sola X per ogni riga) (2 pt.): Sistema Software di trading in borsa automatico (high frequency trading) Sistema di gestione del traffico aereo Pacchetto di gestione di un'impresa Gioco per smartphone tipo “Angry Birds” 2. Portabilità Interoperabilità Efficienza Affidabilità X X X X Descrivere brevemente il modello a spirale di Boehm (4 pt.) E' un modello evolutivo con interazioni continue fra cliente e developer Modello “risk driven”: tutte le scelte sono basate sui risultati dell'analisi dei rischi La spirale è formata da 4 settori: 1. Pianificazione Identifica obiettivi specifici per una fase (un giro) Pianificazione della fase 2. Valutare e ridurre i rischi I principali rischi sono identificati, analizzati, e viene raccolta informazione su come minimizzarli 3. Sviluppo e validazione Viene scelto un modello di sviluppo e validazione dei risultati In genere, è un piccolo “Waterfall” 4. Feedback Review del progetto e requisiti per il nuovo ‘giro’ 3. Quale di queste affermazioni sulla produzione del software sono vere (anche più di una) (4 pt.) : Affermazione Una “Best Practice” è una pratica provata essere sistematicamente migliore delle altre. I modelli di sviluppo “Plan Driven” o “Pianificati” sono basati su un'accurata analisi e pianificazione iniziali. La manutenzione del sw costa meno dello sviluppo, se il sistema cessa presto di essere utilizzato Secondo le inchieste dello “Standish Group”, la percentuale annuale di progetti sw di successo tra il 1994 e il 2009 è sempre stata superiore al 40% 4. Vera Falsa X X X X Dovendo dotare una libreria software prodotta di una licenza open source che impedisca l'appropriazione della libreria da parte di terzi, ma consenta di usarla entro del software che resta proprietario, qual è il tipo di licenza OS da usare (2 pt.)? a) GPL b) LGPL c) MIT d) EUPL 5. Quale dei seguenti modelli del processo di sviluppo sofware dà particolare enfasi al testing, per verificare le varie fasi di sviluppo ed eventualmente riprenderle (2 pt.)? a) modello a spirale b) RUP c) V model d) waterfall model 6. Che cosa sono i sistemi embedded (dare qualche esempio), e quali sono le proprietà del software più importanti per essi (4 pt.)? Sono sistemi in cui la componente software è immersa in uno specifico hardware (non PC) e lo controlla. Es. Aereo, frigorifero, ABS, robot, pacemaker Necessarie varie qualità: Efficienza, vista la limitata potenza dell'hw Affidabilità, sicurezza per sistemi safety-critical Il Sistema è più evolvibile se si spostano funzionalità da HW a SW.