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.