16. Requisiti Principali
16
RF 3.5:
Inserimento annuncio
RF 3.12:
Rispondere ad
un annuncio
RF 4.2:
Ricezione notifica per
annuncio di interesse
RF 5.4:
Lasciare un feedback
RNF 1:
Usabilità
29. Interfacce Utente
Lorem ipsum dolor sit amet, nec
an dictas equidem appellantur, ut
has commune accommodare.
Mea illum, ludus solet idpro.
ScreenMock-ups
Path Navigazionali
34. Quality Review – Casi d’uso
1 Contenuti generali
1aIl documento rispetta il template?
1b Se nonlo rispetta quante pagine nonlo rispettano?
2 Quante pagine contengono errorigrammaticali (eseguire controllo ortografico)?
3aIl documento contiene un indice generale?
3b Taleindice è coerente?
4aIl titolo dei capitoli è scritto in Arial24grassetto?
4b Quanti titoli nonsono scritti secondo questa convenzione?
5aIl titolo dei paragrafi è scritto in Arial 13grassetto?
5b Quanti titoli nonsono scritti secondo questa convenzione?
6aIl titolo dei sottoparagrafi di livello inferiore è stato scritto in Arial 11grassetto?
6b Quanti titoli non sono scritti secondo questa convenzione?
7aIl testo è scritto in Arial10?
7b Quante pagine contengono testo nonscritto secondo questa convenzione?
8aL'interlinea del testo è sempre 1,15?
8b Quante pagine contengono testo nonscritto secondo questa convenzione?
9aSono stati evitati doppi spazi?
9b Inquantepagine sono presenti doppi spazi?
35. (1) Quality Review – Casi d’uso
2 Contenuti Casi D’Uso
1aI casid’usocopronol’intero insieme dei requisiti funzionali?
1bQuanticasid’uso nonderivanodairequisiti funzionali?
2 Leorigini deicasi d’usosonochiare?
3 I casi d’usosonostatidescritti sottoformadi scenariodi interazione(dialogo) tragli utilizzatorieil sistema?
4 Ladescrizionedei casi d’usoècompletaechiara?
5 I casi d’usorispecchianoil reale funzionamentodelsistema?
6 Il casod’usoè esente daidettagli di implementazionee di design?
7 Sonostateindividuatetutteleinterazionitral’attoree il sistema?
8 Sonoevitatele omonimienegli identificatividei casid’uso?
9 Ogni casod’usohaalmeno unattorecon cui comunica?
10Sonostatiidentificatituttigli attori?
11Ogni attorepartecipain almenoun casod’uso?
12Si èconsideratala possibilitàdi combinaredueattoriche partecipanoagli stessi casid’usoin unounico?
39. S W
O T
Obiettivi di Design
39
Tempo di risposta
Throughput
Memoria
Robustezza
Disponibilità
Tolleranza aglierrori
Sicurezza
Estendibile
Modificabile
Leggibilità
Usabilità
Performance
Criteri di Manutenzione
Affidabilità
UtenteFinale
40. S W
O T
Obiettivi di Design
Tempodi risposta sotto I 10 secondi su ogni operazione.
Gestione 500 utenti connessi contemporaneamente.
Spaziodi archiviazione capacedi rendere funzionale il Sistema perogni
utente connesso.
PERFORMANCE
Tempodi risposta
Throughput
Memoria
41. O T
S W
Obiettivi di Design
Gestione di input errati, controlli sia lato Client cheServer.
Il sistema èdisponibile on-line ed èsempreaccessibile.
Tollerante agli errori grazieal basso accoppiamento.
Sistema di accesso sicuro.
AFFIDABILITÀ
Robustezza
Disponibilità
Tolleranza aglierrori
Sicurezza
42. W
T
S
O
Obiettivi di Design
Lo sviluppo in moduli consente l’estendibilità.
Il codicesi presenta in modo chiaroe constandard precisi.
ESTENDIBILE
Estendibile
Modificabile
Leggibilità
51. Pattern
Una dellesfidedi design all’internodel progettoCrowdmineè statal’implementazionedi un sistema
di eventi capacidi scatenarel’arrivodi unanotificadopounaparticolareazione.
Abbiamoquindideciso di utilizzareil Design PatternObserver.
Diagrammadi classeperObserver
69. Routing
Il routing nel Sistema CrowdMine è
completamente gestisto dalla pagina index.php.
Si è fatto in modo modificando il file di
configurazione di Apache htacces cheprima
dell’apertua di ogni pagina si passi appunto per
index, cheprovvederà al reindirizzamento
dell’utente nelle pagine.
70. Routing e Controllo degli Accessi
Index.php fa un parsing della URL inserita e fa in
modo di reindirizzarel’utente alla giusta pagina,
proprio in base a quest’ultima.
Questo tipo di gestione ci permette anche di
gestire in modo efficace gli accessi alle pagine
tramite il metodo checkPermission
71. Ruoli
CrowdMinedividel’utenza inruoli diversie
ognuno diquestipuò accederesoloa determinate
parti delSistema
I ruolisono:
• AMMINISTRATORE
• MODERATORE
• UTENTE
• UTENTENON LOGGATO
Ogni ruolo avràaccessoai diversilivellidel
Sistemadiversamenteinbasealla tabellaseguente
ATTORI
OGGETTI
Utente non loggato Utente Moderatore Amministratore
Annuncio visualizza visualizza,
crea,
cancella annuncio
personale,
modifica,
segnala
visualizza,
crea,
cancella annuncio
personale,
modifica,
segnala,
rimuovi con ricorso,
vota al ricorso
visualizza,
crea,
cancella annuncio
personale,
modifica,
segnala,
rimuovi
Utente visualizza crea Account,
cancella Account,
modifica Dati,
segnala,
blocca
crea Account,
cancella Account,
modifica Dati,
segnala,
blocca,
banna con ricorso,
vota al ban con ricorso
crea Account,
cancella Account,
modifica Dati,
segnala,
blocca,
banna con ricorso,
rimuovi
Macrocategoria aggiungi al profilo,
rimuovi dal profilo,
aggiungi ad un annuncio
aggiungi al profilo,
rimuovi dal profilo,
aggiungi ad un
annuncio
aggiungi al profilo,
rimuovi dal profilo,
aggiungi ad un annuncio,
aggiungi al sistema,
rimuovi dal sistema
Microcategoria crea,
aggiungi al profilo,
rimuovi dal profilo
crea,
aggiungi al profilo,
rimuovi dal profilo,
rimuovi dal sistema
crea,
aggiungi al profilo,
rimuovi dal profilo,
rimuovi dal sistema
Feedback visualizza aggiungi,
rimuovi feedback
personale, segnala
aggiungi, segnala,
rimuovi
aggiungi,
rimuovi
Notifica visualizza visualizza visualizza
Commento aggiungi,
segnala,
rimuovi c. personale
aggiungi,
segnala,
rimuovi
aggiungi,
segnala,
rimuovi
Messaggio invia,
visualizza
invia,
visualizza
invia,
visualizza
Candidatura effettua effettua effettua
72. Livelli d’accesso e CheckPermission
Coerentementecon i ruoliprimaelencati,
CrowdMineèdivisosu più livellid’accesso,
ognuno deiqualiraggiungibilesoloda determinati
ruoli.
I livellisono:
• ALL
• UTENTE
• MODERATORE
• AMMINISTRATORE
• BANNEDONLY
• NOT LOGGEDONLY
.
81. L’importanza del testing
“Il test di un programma può essere usato per
mostrare la presenza di bug, ma mai per
mostrare la loro assenza.”
Edsger Wybe Dijkstra
88. Test Case Specification
All’interno di questo documento sono presenti
tutti i Test Case identificati nel Test Plan in
modo dettagliato, identificando:
• Id test case
• Id RF
• Precondizione
• Flusso di eventi
• Oracolo
93. Test Incident Report
In questo documento sono elencati tutti i bug
riscontrati nella fase di testing di sistema.
In particolare, è identificato il test case con il suo
id, è presente una piccola descrizione del
problema, su come riprodurlo, la priorità e lo stato
della risoluzione
96. Performance Testing – Stress Testing
Time Test
Continuerichiestealserver
peruncertoperiododi
tempo.
RAMP Test
Raggiungereunospecifico
numerodiutenti,
progressivamente.
Click Test
Ogni utente clicca5 volte
alsecondo.
97. Performance Testing – Stress Testing
Click Test
Simulando 150 Utenti
ClickTest
Simulando 500 Utenti
Click Test
Simulando100Utenti
98. Performance Testing – Stress Testing
RAMP Test
Simulando500 Utenti
Time Test
Simulando500 Utenti
103. Security and Recovery Testing
SQL
Injection
Prevedel’ignezionedi
codiceSQL all’internodi
unaform.
XSS
Prevedel’inserimentodi
codicejavaScriptinuna
form.
Privilege
Escalation
Teentativo di ottenere I
privilege più alti del Sistema.
Recovery
Come ilSistema
reagisce aifallimenti.
Il Sistema è stato costruito sguendo quattro obiettivi principali.
Ognuno di questi si suddivide in vari punti.
Abbiamo bilanciato ogni categoria per poter creare un Sistema equilibrato.
Infatti non abbiamo prefderito una categoria rispetto all’altra ma abbiamo bilanciato il tutto per rendere il Sistema più equilibrato possibile.
Per la gestione delle notifiche è stato utilizzato il pattern Observer, questo pattern è di tipo comportamentale.
Il pattern si basa su due tipi di oggetti, i Subject che sono oggetti che possono generare un certo tipo di evento che ne cambia lo stato, gli Observer invece sono quegli oggetti che una volta registrati in una coda, relativa ad un certo Subject di interesse, sono avvisati di un’eventuale sua modifica.
Il metodo checkPermission viene invocato ogni volta che si accede ad una pagina.
Controlla idonietà utente
Fa ridirezione se necessario.
All’interno del processo di sviluppo del software, l’attività di testing, è sicuramente tra quelle attività più importanti ed onerose in termini di tempo e risorse impiegate. Creare un software immune da problemi è impossibile. Quindi, l’obiettivo di tale attività, è quello di trovare il maggior numero di bug per rendere il sistema maggiormente affidabile.
Test Plan verificare se esistono differenze tra il comportamento atteso e il comportamento osservato.
Durante questa fase verranno testati singolarmente le varie componenti, utilizzando la tecnica del Black-Box, quindi ponendo sulle differenze tra i valori output attesi e sperimentati.
In questa fase si procederà all’integrazione delle componenti di una funzionalità che verranno testate nel complesso attraverso una strategia Bottom-Up. Si passerà, poi, alla funzionalità successiva fino ad esaurire le funzionalità implementate.
Lo scopo di questa fase di testing è quello di dimostrare che il sistema soddisfi effettivamente i requisiti richiesti e sia, quindi, pronto all’uso.
Test di integrazione abbiamo testato i manager prima utilizzando degli stub e poi abbiamo sostituiti con i model veri e propri