+ All Categories
Home > Documents > SRS Document Photomaker 1.0(Italian version)

SRS Document Photomaker 1.0(Italian version)

Date post: 21-Feb-2023
Category:
Upload: uniroma2
View: 0 times
Download: 0 times
Share this document with a friend
39
0 PHOTOMAKER 1.0 PROGETTO DI INGEGNERIA DEL SOFTWARE MATTIA FONTANA ANTONIO CRUCIANI ALESSANDRO PAOLINI LUCA PETRA LUCA ROSELLINI 2013 2014
Transcript

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    

 

 

 

25

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

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  

38

dimensione(maggiore  di  10  mb)  che  potrebbero  rallentare/bloccare  l’intera  app  e  il  dispositivo  stesso.    Soluzione:  Per  risolvere  parzialmente  il  problema,  in  accordo  con  il  cliente,  si  è  deciso  di  informare  l’utente  attraverso  un  pop-­‐up  chiedendo  conferma  all’applicazione  del  filtro.      


Recommended