0
PHOTOMAKER 1.0 PROGETTO DI INGEGNERIA DEL SOFTWARE
MATTIA FONTANA ANTONIO CRUCIANI ALESSANDRO PAOLINI LUCA PETRA LUCA ROSELLINI
2013 2014
1
SOMMARIO INTRODUZIONE ................................................................................................................................................. 2
Scopo del documento SRS .................................................................................................................................................. 2
Campi di validità dell'applicazione ..................................................................................................................................... 2
Descrizione dell'applicazione .............................................................................................................................................. 2
Componente Mobile ....................................................................................................................................................... 2
Componente WEB .......................................................................................................................................................... 3
Descrizione in dettaglio .................................................................................................................................................. 3
Considerazioni ...................................................................................................................................................................... 5
Tecnologie adottate .............................................................................................................................................................. 6
Studio di Fattibilità ............................................................................................................................................................... 7
GLOSSARIO ........................................................................................................................................................................... 7
USER REQUIREMENTS .................................................................................................................................................. 8
Template UseCase ................................................................................................................................................................ 9
SYSTEM REQUIREMENTS .......................................................................................................................................... 29
Requisiti Funzionali ........................................................................................................................................................... 29
Requisiti non Funzionali .................................................................................................................................................. 29
SYSTEM ARCHITECTURAL MODEL ..................................................................................................................... 30
Sequence Diagram ............................................................................................................................................................. 30
Activity Diagram ................................................................................................................................................................. 33
Class Diagram ..................................................................................................................................................................... 34
SOFTWARE PROCESS .................................................................................................................................................... 35
PROBLEMI RISCONTRATI DURANTE IL CICLO DI VITA DEL SOFTWARE ................................... 37
2
INTRODUZIONE Obiettivi del documento SRS
Questo documento si prefigge l'obiettivo di illustrare i requisiti software relativi ad un' app Android, la quale permetterà all'utente di acquisire foto mediante la fotocamera del dispositivo.
Il fruitore, inoltre, potrà successivamente: salvare gli scatti, modificarli, depositarli in un apposito Repository Web e pubblicarli sul Social Network.
Questo documento è rivolto agli sviluppatori ed al personale tecnico che dovrà utilizzare e\o gestire il software.
Campi di validità
Quest'applicazione è stata ideata e progettata per permettere ad un ipotetico utente di usufruire in modo veloce, pratico ed intuitivo della fotocamera del dispositivo.
Descrizione dell'applicazione:
Componente Mobile:
L'applicazione consentirà all'utente di:
• Effettuare il Login tramite token alla Repository Web (Dropbox Cloud Storage), permettendo il salvataggio delle foto;
• Acquisire foto mediante la fotocamera principale; • Salvare localmente nella Gallery del dispositivo e\o nella Repository
Web, solo se voluto; • Visualizzare le foto nella Gallery e nella Repository Web; • Eliminare le foto nella Gallery e\o nella Repository Web;
3
• Modificare applicando i vari filtri disponibili (Seppia, Bianco e Nero , Negativo) le foto presenti nel dispositivo (Non sarà possibile modificare le foto nella Repository);
• Effettuare il Login tramite token ai vari Social Networks disponibili; • Condividere le foto presenti nella Gallery e nella Repository Web sui
Social Networks disponibili; • Accedere alle impostazioni dell’ applicazione permettendo all’ utente di
fare un Rating dell’applicazione stessa, visualizzare i Credits, connettersi ai Social Networks, visualizzare le informazioni di Login della Repository Web.
Componente Web:
La Repository Web consentirà all’ utente di:
• Visualizzare le immagini presenti nel Cloud Storage. • Gestire (aggiungere\eliminare) immagini dal Cloud. • Condividere le immagini sui Social Networks disponibili.
Descrizione in dettaglio:
In un primo avvio dell’ applicazione l’utente potrà sin da subito scattare foto ed applicare i vari filtri disponibili salvandole nel dispositivo mobile anche senza aver effettuato l’accesso alla Repository Web. Il fruitore in un secondo momento potrà effettuare il Login al Cloud Storage (Dropbox Cloud Storage) per salvare le foto ed effettuare l’accesso ai vari Social Networks disponibili per poterle condividere. Più specificamente all’ avvio dell’ applicazione apparirà un’ interfaccia dove l’utente potrà scegliere le seguenti opzioni:
o Camera: L’utente potrà sin da subito catturare foto mediante la fotocamera principale del dispositivo cliccando su un opportuno tasto dedicato. Dopo aver acquisito la foto, tramite apposite opzioni iterative l’utente potrà scegliere se applicare i filtri disponibili, salvare la foto nella Gallery del dispositivo e\o salvarla sulla Repository Web e\o condividerla sui Social Networks disponibili o scartare la foto;
o Gallery: L’utente accedendo a questa funzionalità potrà scegliere una foto presente nella Gallery. Successivamente verrà data la possibilità al fruitore di scegliere se:
§ Applicare i filtri (Seppia, Bianco e Nero, Negativo) e salvare la nuova foto modificata nel dispositivo;
4
§ Condividere la foto selezionata sui Social Networks disponibili; § Caricare la foto selezionata nella Repository Web; § Visualizzare la foto selezionata in modalità schermo intero; § Eliminare la foto selezionata;
o Repository Web: L’utente accedendo a questa funzionalità potrà selezionare un immagine dalla Repository Web. Successivamente verrà data la possibilità al fruitore di scegliere se:
§ Pubblicare la foto selezionata sui Social Networks disponibili; § Visualizzare la foto selezionata in modalità schermo intero; § Eliminare la foto selezionata;
o Settings: L’utente accedendo a questa funzionalità potrà selezionare le seguenti opzioni:
§ Valutare l’applicazione sul Play Store di Google (Rating). § Visualizzare le informazioni sull’ applicazione (Credits). § Effettuare la connessione (Login) ai Social Networks mediante
token. § Effettuare la connessione (Login) alla Repository Web (Dropbox
Cloud Storage) tramite token.
Considerazioni:
Bisogna evidenziare il fatto che in questi tipi di applicazioni è importante il numero di filtri messi a disposizione all’ utente oltre all’ usabilità complessiva della stessa. Infatti i filtri rappresentano un aspetto critico nello sviluppo dell’ applicazione, lasciando spazio a continui aggiornamenti che permetteranno di aumentare il numero e migliorare i filtri. L’app funzionerà quasi interamente sul lato client, così da rendere le operazioni di modifica più veloci. Ciò non significa che il lato Server è trascurabile, infatti l’utente può salvare le immagini in remoto, prelevarle ed anche modificarle.
5
Criticità del sistema:
L’analisi del sistema ha portato a denotare alcuni punti in cui è molto importante soffermarci (criticità del sistema) :
o Mission Critical: Come possiamo notare, tale applicazione denota una componente fortemente Mission Critical, perché il funzionamento della fotocamera è d’importanza vitale per il corretto funzionamento dell’app, la quale , se non funziona, non permetterà l’utilizzo delle funzionalità principali.
§ Usabilità (Usability): L’applicazione dev’essere User Friendly. § Affidabilità (Reliability): L’applicazione deve funzionare in modo
corretto senza presentare bugs e\o impedimenti vari, soprattutto durante le sessioni di acquisizione e salvataggio/condivisione foto.
§ Security (Sicurezza Informatica): è la sicurezza dei dati sensibili (dati di connessione come username e password) questi non possono essere divulgati dall’ applicazione per una questione di sicurezza dei dati. Per questo si è deciso di utilizzare i Tokens messi a disposizione da Dropbox Cloud Storage e da Facebook.
6
Tecnologie adottate:
Il sistema è composto da più componenti, per cui si è deciso di adottare le seguenti tecnologie di supporto:
7
Studio di Fattibilità:
Lo studio di fattibilità serve per stabilire se il progetto da realizzare avrà una buona possibilità di successo. Il programma darà la possibilità all’utente, principalmente, di scattare foto e applicarci filtri.
Altre caratteristiche del programma saranno:
• Possibilità di pubblicare le foto su Facebook • Possibilità di utilizzare il proprio Dropbox per salvare le immagini
La caratteristica principalmente diversa rispetto agli altri programmi di fotografia è la possibilità di applicare i filtri e il collegamento col repository web Dropbox.
Per la realizzazione di questo programma verrà utilizzato un tool di Eclipse (gratuito) chiamato “Android SDK Manager”. Per scelta è stato deciso di sviluppare il programma sul sistema operativo “Android 4.0 (Ice Cream Sandwich)”.
GLOSSARIO TERMINE SIGNIFICATO Modifica Per modifica si intende l'applicazione del filtro
Camera Per camera si intende la fotocamera del dispositivo Settings Impostazioni relative all’ applicazione
Rating Valutazione dell'applicazione Credits Informazioni relative agli sviluppatori App Abbreviazione del termine inglese Application; in
italiano Applicazione Gallery Con gallery si vuole identificare la galleria di foto
dell’applicazione
8
USER REQUIREMENTS La funzione principale di quest'app è, come detto in precedenza, la possibilità di scattare una foto e applicarci un filtro. Una funzione secondaria dell'app è la possibilità di pubblicare una foto su Facebook o salvare nel Repository Web.
TEMPLATE USE CASE Nome Nome Use-‐Case ID Codice univoco
Input Criteri di input per lo Use-‐Case o azione che fa l'attore per attivare lo Use-‐Case
Precondizione Stato in cui il Sistema deve trovarsi prima di poter eseguire lo Use-‐Case
Scenario Principale Sequenza di azioni (istruzioni) che lo Use-‐Case esegue nel caso normale
Scenario Alternativo Sequenza di azioni (istruzioni) alternative che lo Use-‐Case esegue nel
caso in cui non venga eseguito lo scenario principale
Postcondizione Stato in cui si dovrebbe trovare il sistema alla fine dell'esecuzione dello Use-‐Case
Descrizione La Descrizione serve a spiegare il comportamento dello Use-‐Case
9
CAMERA:
Nome Camera ID 1
Input L'utente clicca sull'icona della fotocamera Precondizione Menù iniziale applicazione
Scenario Principale Viene aperta la fotocamera del dispositivo
Scenario Alternativo Non si apre la fotocamera e ritorna al menù principale
Postcondizione La fotocamera è aperta
Descrizione In questa fase l’utente sceglie di aprire la fotocamera per successivamente scattare una foto
SCATTA FOTO:
Nome ScattaFoto ID 1.1
Input L'utente clicca sulla scritta "Scatta Foto" Precondizione L'utente ha cliccato sull'icona camera nel menù iniziale
Scenario Principale Viene scattata la foto
Scenario Alternativo Errore nell’apertura della fotocamera
Postcondizione La foto è stata scattata e si apre un menù
Descrizione In questa fase l’utente sceglie di scattare una foto
10
SCARTA FOTO:
Nome ScartaFoto ID 1.1.1
Input L'utente sceglie di scartare la foto appena effettuata Precondizione L'utente ha appena scattato una foto
Scenario Principale La foto viene eliminata
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna a Camera
Descrizione In questa fase l’utente sceglie di eliminare la foto appena scattata
FILTRI:
Nome Filtri ID 1.1.2
Input L’utente clicca sulla voce del menù relativa all’applicazione di un filtro Precondizione L’utente ha appena scattato una foto e sceglie di applicare un filtro tra quelli
disponibili
Scenario Principale L’utente visualizza la lista dei filtri applicabili alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente clicca su uno dei filtri disponibili
Descrizione In questa fase l’utente sceglie di modificare la foto appena scattata applicando uno dei filtri e una volta applicato, salva la foto nella Gallery
11
FILTROSEPPIA:
Nome FiltroSeppia ID 1.1.2.1
Input L’utente clicca sulla voce del menù che permette di applicare il filtro seppia Precondizione L’utente vuole applicare alla foto appena scattata il filtro seppia
Scenario Principale Il filtro seppia viene applicato alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna a Camera
Descrizione In questa fase l’utente sceglie di modificare la foto appena scattata applicando il filtro seppia
FILTROBIANCONERO:
Nome FiltroBiancoNero ID 1.1.2.2
Input L’utente clicca sulla voce del menù che permette di applicare il filtro bianco e
nero Precondizione L’utente vuole applicare alla foto appena scattata il filtro bianco e nero
Scenario Principale Il filtro bianco e nero viene applicato alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna a Camera
Descrizione In questa fase l’utente sceglie di modificare la foto appena scattata applicando il filtro bianco e nero
12
FILTRONEGATIVO:
Nome FiltroNegativo ID 1.1.2.3
Input L’utente clicca sulla voce del menù che permette di applicare il filtro negativo Precondizione L’utente vuole applicare alla foto appena scattata il filtro negativo
Scenario Principale Il filtro negativo viene applicato alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna a Camera
Descrizione In questa fase l’utente sceglie di modificare la foto appena scattata applicando il filtro negativo
WARNING:
Nome Warning ID 1.1.2.4
Input Pop-‐up conferma sull’applicazione del filtro Precondizione A video è presente il pop-‐up di conferma dell’applicazione del filtro
Scenario Principale L’utente conferma/declina l’applicazione del filtro
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione Il filtro è/non è stato applicato
Descrizione
In questa fase viene fatto scegliere all’utente se applicare il filtro nel caso in cui l'immagine non rispetti i limiti di grandezza di 2000 x 2000 pixel o se l'immagine
superi i 10,0 Mb tramite pop-‐up.
13
SALVAGALLERY:
Nome SalvaGallery ID 1.1.3
Input L’utente clicca sulla voce del menù che permette di salvare la foto nella
Gallery dopo averla scattata Precondizione L’utente vuole salvare la foto appena scattata nella Gallery
Scenario Principale La foto viene salvata nella Gallery
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna a Camera
Descrizione In questa fase l’utente salva la foto appena scattata nella Gallery
PUBBLICASOCIALNETWORK:
Nome PubblicaSocialNetwork ID 1.1.4
Input L’utente tocca l’icona Social Network Precondizione L’utente ha scattato una foto
Scenario Principale Compare a video il pop-‐up dell’eventuale conferma della pubblicazione
Scenario Alternativo La foto non viene pubblicata per mancanza di connessione
Postcondizione L’utente deve confermare o meno la pubblicazione
Descrizione In questa fase l’utente può pubblicare la foto sul Social Network
14
PUBLICWARNING:
Nome PublicWarning ID 1.1.4.1
Input Pop-‐up conferma pubblicazione Precondizione A video è presente il pop-‐up di conferma pubblicazione
Scenario Principale L’utente conferma/declina la pubblicazione
Scenario Alternativo -‐-‐-‐
Postcondizione L’immagine è/non è pubblicata sul Social Network
Descrizione In questa fase l’utente deve confermare se pubblicare o meno la foto sul Social Network
CARICAREPOSITORY:
Nome CaricaRepository ID 1.1.5
Input L’utente tocca l’icona Carica su Repository Precondizione L’utente ha scelto l’opzione di salvataggio su Repository e ha selezionato
una foto
Scenario Principale L’utente salva la foto nel Repository Web
Scenario Alternativo La foto non viene salvata per mancanza di connessione
Postcondizione L’utente torna a Camera
Descrizione In questa fase l’utente può pubblicare la foto sul Repository
15
GALLERY:
SELEZIONAIMMAGINE:
Nome SelezionaImmagine ID 2.1
Input L’utente clicca su una foto Precondizione L’utente si trova nella Gallery
Scenario Principale Viene aperta la foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione Vengono visualizzate le opzioni relative all’immagine in considerazione
Descrizione In questa fase l’utente seleziona la foto su cui effettuare un’azione successivamente
Nome Gallery ID 2
Input L’utente clicca sull’icona inerente alla Gallery Precondizione L’utente si trova sul menù iniziale dell’applicazione
Scenario Principale Viene aperta la Gallery
Scenario Alternativo Errore nell’apertura della Gallery
Postcondizione Viene aperta la Gallery visualizzando le foto scattate
Descrizione
In questa fase l’utente potrà visionare le foto presenti nella Gallery locale e scegliere tra alcune opzioni: applicare uno tra i filtri disponibili alla foto, pubblicare la foto sui social network, caricare la foto nel Repository Web,
visualizzare la foto a schermo intero oppure eliminarla
16
FILTRI:
Nome Filtri ID 2.1.1
Input L’utente clicca sulla voce del menù relativa all’applicazione di un filtro Precondizione L’utente si trova nella Gallery e vuole modificare una foto applicando un filtro tra
quelli disponibili
Scenario Principale L’utente visualizza la lista dei filtri applicabili alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente clicca su uno dei filtri disponibili
Descrizione In questa fase l’utente sceglie di modificare la foto applicando uno dei filtri
WARNING:
Nome Warning ID 2.1.1.1
Input Pop-‐up conferma sull’applicazione del filtro Precondizione A video è presente il pop-‐up di conferma dell’applicazione del filtro
Scenario Principale L’utente conferma/declina l’applicazione del filtro
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione Il filtro è/non è stato applicato
Descrizione
In questa fase viene fatto scegliere all’utente se applicare il filtro nel caso in cui l'immagine non rispetti i limiti di grandezza di 2000 x 2000 pixel o se l'immagine
superi i 10,0 Mb tramite pop-‐up
17
FILTROSEPPIA:
Nome FiltroSeppia ID 2.1.1.2
Input L’utente clicca sulla voce del menù che permette di applicare il filtro seppia Precondizione L’utente vuole modificare la foto prescelta applicando il filtro seppia
Scenario Principale Il filtro seppia viene applicato alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente sceglie di applicare alla foto un filtro di tipo seppia
FILTROBIANCONERO:
Nome FiltroBiancoNero ID 2.1.1.3
Input L’utente clicca sulla voce del menù che permette di applicare il filtro bianco e
nero Precondizione L’utente vuole modificare la foto prescelta applicando il filtro bianco e nero
Scenario Principale Il filtro bianco e nero viene applicato alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente sceglie di applicare alla foto un filtro di tipo bianco e nero
18
FILTRO NEGATIVO:
Nome FiltroNegativo ID 2.1.1.4
Input L’utente clicca sulla voce del menù che permette di applicare il filtro negativo Precondizione L’utente vuole modificare la foto prescelta applicando il filtro negativo
Scenario Principale Il filtro negativo viene applicato alla foto
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente sceglie di applicare alla foto un filtro di tipo negativo
SALVAGALLERY:
Nome SalvaGallery ID 2.1.1.5
Input L’utente clicca sulla voce del menù che permette di salvare la foto nella Gallery
dopo la modifica Precondizione L’utente vuole salvare la foto appena modificata nella Gallery
Scenario Principale La foto viene salvata nella Gallery
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente, dopo aver applicato un filtro, salva la foto opportunamente modificata nella Gallery
19
PUBBLICASOCIALNETWORK:
PUBLICWARNING:
Nome PubblicaSocialNetwork ID 2.1.2
Input L’utente tocca l’icona Social Network Precondizione L’utente ha selezionato una foto
Scenario Principale Compare a video il pop-‐up dell’eventuale conferma della pubblicazione
Scenario Alternativo La foto non viene pubblicata per mancanza di connessione
Postcondizione L’utente deve confermare o meno la pubblicazione
Descrizione In questa fase l’utente può pubblicare la foto sul Social Network
Nome PublicWarning ID 2.1.2.1
Input Pop-‐up conferma pubblicazione Precondizione A video è presente il pop-‐up di conferma pubblicazione
Scenario Principale L’utente conferma/declina la pubblicazione
Scenario Alternativo -‐-‐-‐
Postcondizione L’immagine è/non è pubblicata sul Social Network
Descrizione In questa fase l’utente deve confermare se pubblicare o meno la foto sul Social Network
20
CARICAREPOSITORY:
VISUALIZZASCHERMOINTERO:
Nome VisualizzaSchermoIntero ID 2.1.4
Input L’utente clicca sulla voce del menù che permette di visualizzare la foto
selezionata a schermo intero Precondizione L’utente vuole visualizzare la foto appena selezionata a schermo intero
Scenario Principale L’utente visualizza la foto a schermo intero
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente potrà visualizzare la foto appena selezionata a schermo intero
Nome CaricaRepository ID 2.1.3
Input -‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐ Precondizione L’utente ha scelto l’opzione di salvataggio su Repository
Scenario Principale L’utente salva la foto nel Repository Web
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente può caicare la foto sul Repository
21
ELIMINA:
Nome Elimina ID 2.1.5
Input L’utente clicca sulla voce del menù che permette di eliminare la foto selezionata Precondizione L’utente vuole eliminare la foto appena selezionata
Scenario Principale
La foto viene eliminata
Scenario Alternativo
-‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente potrà eliminare la foto appena selezionata
22
REPOSITORYWEB:
SELEZIONAIMMAGINE:
Nome SelezionaImmagine ID 3.1
Input L’utente tocca un’immagine nella cartella Precondizione L’utente è nella cartella RepositoryWeb
Scenario Principale L’immagine richiesta viene selezionata
Scenario Alternativo -‐-‐-‐
Postcondizione L’immagine è selezionata
Descrizione In questa fase l’utente può selezionare un’immagine desiderata
Nome RepositoryWeb ID 3
Input L'utente clicca sull’icona Dropbox Precondizione Menù iniziale dell’applicazione aperto
Scenario Principale Viene aperta la cartella del Repository Web
Scenario Alternativo Non viene aperta la cartella e si torna al menù principale
Postcondizione La cartella del Repository Web è aperta
Descrizione In questa fase l’utente può entrare nella cartella del Repository Web dove sono salvate le foto personali
23
PUBBLICASOCIALNETWORK:
Nome PubblicaSocialNetwork ID 3.1.1
Input L’utente tocca l’icona Social Network Precondizione L’utente ha selezionato una foto
Scenario Principale Compare a video il pop-‐up dell’eventuale conferma della pubblicazione
Scenario Alternativo La foto non viene pubblicata per mancanza di connessione
Postcondizione L’utente deve confermare o meno la pubblicazione
Descrizione In questa fase l’utente può pubblicare la foto sul Social Network
PUBLICWARNING:
Nome PublicWarning ID 3.1.1.1
Input Pop-‐up conferma pubblicazione Precondizione A video è presente il pop-‐up di conferma pubblicazione
Scenario Principale L’utente conferma/declina la pubblicazione
Scenario Alternativo -‐-‐-‐
Postcondizione L’immagine è/non è pubblicata sul Social Network
Descrizione In questa fase l’utente deve confermare se pubblicare o meno la foto sul Social Network
24
VISUALIZZASCHERMOINTERO:
Nome VisualizzaSchermoIntero ID 3.2
Input L’utente clicca sulla voce del menù che permette di visualizzare la foto
selezionata a schermo intero Precondizione L’utente vuole visualizzare la foto appena selezionata a schermo intero
Scenario Principale L’utente visualizza la foto a schermo intero
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente potrà visualizzare la foto appena selezionata a schermo intero
ELIMINA:
Nome Elimina ID 3.3
Input L’utente clicca sulla voce del menù che permette di eliminare la foto
selezionata Precondizione L’utente vuole eliminare la foto appena selezionata
Scenario Principale La foto viene eliminata
Scenario Alternativo -‐-‐-‐-‐-‐-‐-‐-‐
Postcondizione L’utente torna nella Gallery
Descrizione In questa fase l’utente potrà eliminare la foto appena selezionata
26
SETTINGS:
Nome Settings ID 4
Input L'utente clicca sull’icona Settings Precondizione Menù iniziale dell’applicazione aperto
Scenario Principale Viene aperta la voce del menù Settings
Scenario Alternativo Non viene aperta la voce e si torna al menù principale
Postcondizione La voce Settings è aperta
Descrizione In questa fase l’utente può entrare nella voce del menù Settings
RATING:
Nome Rating ID 4.1
Input L'utente clicca sull’icona Rating Precondizione L’utente è nella voce del menù Settings
Scenario Principale L’utente è reinderizzato al PlayStore per votare l’app
Scenario Alternativo Il reinderizzamento fallisce per mancanza di connessione
Postcondizione L’utente sulla pagina dell’app nel Play Store
Descrizione In questa fase l’utente può rilasciare una valutazione dell’app
27
CREDITS:
Nome Credits ID 4.2
Input L'utente clicca sull’icona Credits Precondizione L’utente è nella voce del menù Settings
Scenario Principale L’utente visualizza delle informazioni sull’app
Scenario Alternativo -‐-‐-‐
Postcondizione L’utente ha visualizzato le informazioni sull’app
Descrizione In questa fase l’utente può visualizzare delle informazioni relative all’app
CONNESSIONESOCIALNETWORK:
Nome ConnessioneSocialNetwork ID 4.3
Input L'utente clicca sull’icona Facebook Precondizione L’utente è nella voce del menù Settings
Scenario Principale L’utente effettua il login o si registra a Facebook attraverso il browser predefinito
Scenario Alternativo Il reinderizzamento fallisce per mancanza di connessione
Postcondizione L’utente si è connesso/registrato a Facebook
Descrizione In questa fase l’utente può effettuare il login o registrarsi a Facebook attraverso il browser predefinito
28
CONNESSIONEREPOSITORYWEB:
Nome ConnessioneRepositoryWeb ID 4.4
Input L'utente clicca sull’icona Dropbox Precondizione L’utente è nella voce del menù Settings
Scenario Principale L’utente effettua il login o si registra a Dropbox attraverso il browser predefinito
Scenario Alternativo Il reinderizzamento fallisce per mancanza di connessione
Postcondizione L’utente si è connesso/registrato a Dropbox
Descrizione In questa fase l’utente può effettuare il login o registrarsi a Dropbox attraverso il browser predefinito
29
SYSTEM REQUIREMENTS Requisiti Funzionali :
• L’utente deve poter scattare e salvare, nella gallery, una foto con il suo dispositivo;
• L’utente deve poter effettuare il Login sulla Repository Web (Dropbox Cloud Storage) e sui Social Networks disponibile tramite Token;
• L’utente deve poter eliminare le immagini presenti nella Gallery (local) e nella Repository Web (Cloud Storage);
• L’utente deve poter pubblicare sui Social Networks disponibili le immagini presenti sia nella Gallery (local) che sulla Repository Web (Cloud Storage);
• L’utente deve poter applicare filtri alle immagini presenti nella Gallery; • L’utente deve poter salvare le immagini nella Repository Web.
Requisiti non funzionali:
• Dev’essere garantita la privacy dell’ utente; • L’applicazione dovrà essere “User Friendly”; • L'applicazione non deve presentare bugs e deve funzionare al meglio.
30
SYSTEM ARCHITECTURAL MODEL
SEQUENCE DIAGRAM:
SCATTAFOTO
Il seguente Sequence Diagram rappresenta lo scatto di una foto fatta dall'utente con seguente salvataggio nella Gallery. In questo sequence non verranno prese in
considerazione la possibilità di applicare filtri, pubblicare la foto sul Social Network o caricare la foto sul Repository Web.
SCATTAFOTO
31
APPLICAFILTROSEPPIA
Questo Sequence Diagram rappresenta lo scatto della foto come il precedente, ma in più, in questo Sequence viene anche applicato un filtro Seppia.
32
PUBBLICASOCIALNETWORK
Questo Sequence Diagram rappresenta l'azione dell'utente di pubblicare una foto sul Social Network dalla Gallery.
33
ACTIVITY DIAGRAM:
Il seguente Activity Diagram rappresenta l'azione di scatto di una foto da parte dell'utente, nello specifico in foto è stata limitata la scelta successiva solo a poter
scartare la foto o pubblicarla sul Social Network.
34
CLASS DIAGRAM:
Il seguente Class Diagram rappresenta la struttura del sistema. In mancanza di ulteriori informazioni sul framework su cui sviluppare il sistema si è deciso di mettere tutti i return dei metodi void.
35
SOFTWARE PROCESS Il processo software (o ciclo di vita del software) è un insieme di attività che porta alla creazione del prodotto software. Successivamente sono presentate le fasi del ciclo di vita del software seguite: 1. Specifiche del software: processo per capire quali servizi sono richiesti dal sistema, e per identificare i vincoli all'operabilità e allo sviluppo. Questo processo porta alla produzione di un documento che rappresenta le specifiche del sistema. Le fasi principali sono:
1. studio di fattibilità : studio preliminare di tipo tecnologico e secondo la logica di business del cliente. Se il sistema è troppo grande questa fase viene affidata a terze parti;
2. scoperta e analisi dei requisiti : bisogna riflettere su tutti i possibili requisiti che il sistema deve rispettare e infine metterli in una forma strutturata;
3. specifica dei requisiti : vengono tradotte le informazioni raccolte durante l'analisi dei requisiti in un documento che definisce un insieme di requisiti;
4. convalida dei requisiti : vengono controllati i requisiti affinché risultino tutti realistici, consistenti e completi;
2. Progettazione e implementazione del software : processo di conversione delle specifiche in un sistema eseguibile. Comprende il processo di progettazione e programmazione del software, ma può anche includere il perfezionamento delle specifiche. Il progetto è la descrizione della struttura del software che si deve implementare, dei dati che fanno parte del sistema, delle interfacce fra i componenti del sistema e degli algoritmi usati. Il processo di progettazione è suddiviso nelle seguenti fasi:
1. progettazione architetturale : identificazione e documentazione dei sottosistemi che formano il sistema
2. specifiche astratte: definizione astratta dei servizi forniti e dai vincoli a cui è sottoposto ogni sottosistema
3. progettazione dell'interfaccia : progettata e documentata l'interfaccia di ogni sottosistema
4. progettazione dei componenti : progettata l'interfaccia dei componenti e assegnati i servizi da fornire
5. progettazione delle strutture dati : progettate in dettagli e specificate le strutture dati da usare nell'implementazione
36
6. progettazione degli algoritmi : progettati e specificati in dettaglio gli algoritmi da usare per fornire servizi
Un metodo strutturato è ben documentato e i rapporti hanno dei formati prestabiliti, ci sono delle regole e delle linee guida da seguire. Per quanto riguarda il lato dell'implementazione si è iniziato con l'implementare i componenti che si conoscono meglio muovendosi verso quelle meno conosciute, alla fine si è eseguito:
• il processo di testing, che verifica l'esistenza degli errori; • il processo di debug, che si occupa di localizzare gli errori e di correggerli;
3. Convalida del software: il software è stato convalidato per garantire la conformità rispetto alle specifiche del cliente. 4. Evoluzione del software: evoluzione per soddisfare le continue necessità del cliente e i cambiamenti dei requisiti. Siccome i requisiti evolvono sempre nel corso della progettazione del sistema bisogna rielaborare costantemente le fasi dette in precedenza, come modello per supportare i cicli di processo si è deciso di usare lo Sviluppo a spirale. I vari cicli della spirale sono un'approssimazione del sistema, il processo software viene rappresentato come una spirale in cui ogni giro corrisponde ad una fase del processo. Quindi il giro più interno può occuparsi delle fattibilità del sistema, il successivo della definizione dei requisiti, e così via. Ogni giro della spirale è diviso in quattro settori:
1. determinazione degli obiettivi : vengono definiti gli obiettivi per la specifica fase del progetto, si decide un piano di gestione dettagliato, si identificano i rischi e in base a questi si pianificano decisioni alternative;
2. valutazione e riduzione del rischio : per ognuno dei rischi identificati si effettua un'analisi accurata e si prendono le precauzioni per ridurli;
3. sviluppo e convalida: viene scelto un modello di sviluppo per il sistema, si è usato un modello misto tra l’evolutivo e quello a componenti, cercando di andare in contro il più possibile alle specifiche del cliente, ma sfruttando componenti esistenti;
4. pianificazione: il progetto viene revisionato e si decide se continuare con un ulteriore giro della spirale. Se si decide di continuare vengono preparati i piani per la successiva fase del progetto.
37
PROBLEMI RISCONTRATI DURANTE IL CICLO DI VITA DEL SOFTWARE
Problema 1: Una delle criticità fondamentali è la usability dell'intero sistema, doveva risultare di facile utilizzo per tutti gli utenti guidandoli attraverso l’app. Soluzione: Per cercare di rendere il tutto più veloce e intuitivo possibile, è stato implementato un menù iniziale con delle semplici icone chiarificatrici delle funzionalità principali dell'applicazione e così via per i vari menù a seconda delle scelte dell’utente Problema 2: Un’altra criticità fondamentale è la security, cioè i problemi di privacy e sicurezza per i dati sensibili riferiti al login/registrazione al social network Facebook per la pubblicazione delle foto e al login/registrazione al repository Dropbox per il salvataggio delle foto. Soluzione: Per ovviare al problema è stato deciso di utilizzare dei token pre-‐sviluppati da Facebook e Dropbox specifici per il login/registrazione agli stessi in modo da bypassare il problema alla fonte. Problema 3: Un altro problema di security rilevato è stato quello di una possibile pubblicazione involontaria sui Social Network da parte dell’utente e quindi una possibile violazione della privacy. Soluzione: Per risolvere il problema è stato deciso di inserire un ulteriore pop-‐up di conferma prima della pubblicazione definitiva presso il Social Network . Problema 4: L’ultima criticità riscontrata è la reliability(affidabilità) dello strumento filtri in caso di immagine con troppa risoluzione(maggiore di 2000x2000) o di elevata