Sei sulla pagina 1di 15

Università della Calabria

Dipartimento di Matematica e Informatica

Corso di Laurea in Informatica


A.A. 2021/2022

Progetto per il corso di


Ingegneria del software

Gruppo 18
Giuseppe Serrao
Matteo Brunetti
Simone Lucà
Cristian Scaramella
Prof. F. Ricca
Esercitatore:
M. A. Borroto S.

11
Tabella Di Contenuto
i. Introduzione .................................................................................................................................... 3
ii. Requisiti utente ............................................................................................................................... 3
iii. Diagramma dei casi d’uso.................................................................................................................. 4
iv. Schema dei casi d’uso ..................................................................................................................... 4
v. Modello di dominio ............................................................................................................................. 9
vi. Diagrammi Sequenza di Sistema ...................................................................................................... 10
vii. Contratti Operazioni ........................................................................................................................ 14
viii. Architettura ............................................................................................................................... 15

12
i. Introduzione
SpritesRiver vuole offrire un servizio di animazione automatica di immagini sprite.

L'applicativo web permette la ricerca e la visualizzazione di animazioni in pixel art, gli utenti possono
contribuire alla collezione presente sul sito aggiungendo nuove animazioni, grazie a un facile sistema
di animazione di immagini sprite, e commentando e votando animazioni pre-esistenti.

ii. Requisiti utente


Il sistema di animazione richiede all’utente di selezionare i singoli frame da un’immagine sprite, ed
offrirà semplici strumenti di modifica pixel per “centrare” ogni frame, per poi convertire la
sequenza di immagini create dall’utente in file .gif

Il sistema offrirà la possibilità all’utente di registrare un account tramite username e password.

le immagini animate potranno essere inserite nell’archivio.


L’archivio contenente tutte le animazioni potrà essere consultato, e ogni animazione votata e
commentata.
Le animazioni potranno essere consultate per artista, data di rilascio, piattaforma di rilascio, numero
di visualizzazioni, numero di commenti.

13
iii. Diagramma dei casi d’uso

iv. Schema dei casi d’uso

4.1 Crea account


Portata: SpritesRiver
Livello: obiettivo utente
Attore primario: Utente non registrato
Parte interessate e interessi:

14
Vuole avere la possibilità di visualizzare e scaricare animazioni. Vuole avere la possibilità di
commentarle. Vuole avere la possibilità di aggiungerle ai preferiti.
Pre-condizioni: Nessuno.
Post-Condizioni: Il nome utente e password vengono salvati dal sito.
Flusso di base:
1. Il Sistema mostra un pulsante “Crea nuovo account”
2. L’utente seleziona l’opzione medesima
3. Il sistema mostra la pagina di creazione di un account in cui chiede all’utente di inserire i dati
nei campi “email”, “username”, “password”, e “ripeti password”
4. L’utente inserisce i dati nelle caselle apposite
5. L’utente seleziona il pulsante “registrati”
6. Il sistema verifica l’ammissibilità dei dati
7. Il sistema reindirizza l’utente alla pagina principale
Flussi alternativi:
*6a. L’utente inserisce un “email” già esistente
1. Il sistema visualizza un messaggio di errore dichiarando che l’email è già stato usato
2. Torna al punto 3
*6b. L’utente inserisce un “username” già esistente
1. Il sistema visualizza un messaggio di errore dichiarando che il username è già stato usato
2. Torna al punto 3
*6c. Stringhe nei campi “password” e “ripeti password” sono diverse
1. Il sistema visualizza un messaggio di errore dichiarando che i campi password non
combaciano
2. Torna al punto 3

4.2 Consulta Archivio


Portata: SpritesRiver
Livello: Obiettivo Utente
Attore Primario: Utente
Parti interessate e interessi:
L’utente vuole avvalersi di una barra di ricerca per cercare un gioco in particolare e visualizzarne le
relative sprite ed animazioni, oppure cercare un personaggio in particolare. In alternativa l’utente
potrà filtrare i giochi in base al sistema su cui sono disponibili.
Quando l’utente selezionerà un gioco sceglierà di quale personaggio visualizzare le sprite e le
animazioni.
Pre-condizioni: nessuna

15
Post-condizioni: l’utente si trova sulla pagina selezionata

Flusso di base:
1. Il sistema visualizza una barra di ricerca in alto a destra
2. L’utente attua una ricerca
3. Il sistema controlla se la stringa inserita corrisponde ad un gioco già presente
4. L’utente seleziona il gioco a cui è interessato (se esistente)
5. Il sistema reindirizza l’utente alla pagina del gioco selezionato
6. L’utente seleziona il personaggio del gioco a cui è interessato
7. Il sistema reindirizza l’utente alla pagina del personaggio selezionato
8. L’utente seleziona l’animazione del personaggio di interesse
9. Il sistema visualizza l’animazione
Flusso alternativo:
*1a. L’utente visualizza i giochi da una lista nella homepage
1. Torna al passo 4.
*3a. Il gioco non è presente nella lista di giochi del sito
1. Il sistema visualizza un messaggio indicando che il gioco non è presente nella lista

4.3 Scaricare sprite/GIF


Portata: SpritesRiver
Livello: Obiettivo Utente
Attore Primario: Utente
Parti interessate e interessi:
Utente registrato e Utente non registrato: vuole scaricare la GIF o la sprite relativa all’animazione
selezionata.
Pre-condizioni: L'utente si trova nella pagina dell’animazione del personaggio selezionato.
Post-Condizioni: nessuna.

Flusso di base:
1. Il Sistema mostra all’utente un testo che guida l’utente al download della gif/sprite
2. L’utente attua la procedura per il download
3. Il sistema chiede all’utente la destinazione del file da scaricare
4. L’utente sceglie la destinazione e scarica il file a cui è interessato

4.4 Carica sprite:


Portata: SpritesRiver
Livello: obiettivo utente

16
Attore primario: Utente registrato, Moderatore
Parte interessate e interessi:
Vuole aggiungere un’immagine sprite e animarla
Pre-condizioni:
L'utente è identificato e autenticato nel sistema.
Post-condizioni:
L’archivio è stato aggiornato con le nuove animazioni.
Flusso di base:
1. Il sistema visualizza il pulsante “nuova animazione”
2. L’utente seleziona il pulsante
3. Il sistema chiede il caricamento di un’immagine.
4. L'utente seleziona dal suo pc l’immagine da caricare
5. Il sistema verifica la validità del file in input e mostra all’utente lo strumento di modifica per
la suddivisione dell’immagine in fotogrammi multipli.
6. L'utente usa lo strumento di selezione per dividere i fotogrammi, scrivendo nelle apposite
caselle, l’altezza e la larghezza dei fotogrammi, i fotogrammi da non includere nella gif, il
colore dello sfondo da voler eliminare (in caso il background non fosse trasparente).
7. Il sistema mostra i fotogrammi selezionati dall’utente insieme ad un pulsate “converti a GIF”.
8. L'utente seleziona il pulsante sopracitato.
9. Il sistema richiede i dati per l’archiviazione dell’animazione, cioè nome dell’azione, nome
del personaggio che la compie, gioco di appartenenza, visualizza inoltre il pulsante "nuovo
gioco”, da cliccare nel caso nel’archivio non sia già presente il gioco in questione.
10. L'utente immette i dati dell’animazione, e il gioco a cui appartiene.
11. Il sistema aggiunge l’animazione alla collezione sul sito.
Flussi alternativi
*10a Il gioco non è presente nell’archivio
1. Il sistema visualizza un pulsante “nuovo gioco”
2. L’utente clicca il pulsante indicato
3. Il sistema visualizza un form che richiede: Nome gioco, data di pubblicazione, piattaforma,
descrizione, un API inserirà una descrizione standard modificabile
4. L'utente compila il form e clicca conferma
5. Il sistema indicizza il nuovo gioco.

4.5 Modera Archivio


Portata: SpritesRiver
Livello: Obiettivo Utente
Attore Primario: Utente Registrato, Moderatore
Parti interessate e interessi:
Vuole eliminare le sprite pubblicate e/o i commenti relativi alle stesse

17
Pre-condizioni:
L’utente deve essere loggato nel sistema
Post-condizioni:
L'archivio e la pagina sono stati aggiornati con l’ultima modifica.
Flusso di base (Animazioni):
1. Selezionando un’animazione, il sistema visualizzerà il pulsante “Rimuovi” nella sezione
“azioni”
2. L’utente seleziona il pulsante
3. Il sistema, dopo aver verificato l’intenzionalità dell’azione, cancella l’animazione
dall’archivio
Flusso di base (Commenti):
1. Selezionando un’animazione, il sistema visualizzerà anche la sezione “commenti”
2. Il sistema visualizzerà una “X” in prossimità di ogni commento relativo all’animazione
visualizzata
3. L’utente seleziona il pulsante
4. Il sistema, dopo aver verificato l’intenzionalità dell’azione, cancellerà il commento

4.6 Commenta e Valuta


Portata: SpritesRiver
Livello: Obiettivo Utente
Attore Primario: Utente Registrato, Moderatore
Parti interessate e interessi:
Vuole commentare una delle animazioni o Aggiungerla ai preferiti
Pre-condizioni:
L'utente è identificato e autenticato nel sistema.
Post-condizioni:
La sezione commenti dell’animazione scelta è stata aggiornata
Flusso di base:
1. Selezionando un’animazione, il sistema visualizzerà anche la sezione “commenti”
2. Nella sezione “commenti”, l’utente visualizzerà un riquadro in cui inserire del testo, e subito
sopra una stellina che funge da “valutatore”
3. L’utente scriverà il testo del commento e/o deciderà di spuntare o meno la stellina al fine di
aggiungere l’animazione alla propria sezione “preferiti”
4. L’utente selezionerà il pulsante “commenta”
5. Il sistema aggiungerà il commento dell’utente alla sezione, ed aggiornerà l’indice di
gradimento dell’animazione

18
v. Modello di dominio

19
vi. Diagrammi Sequenza di Sistema

Consulta Archivio

110
Crea Account

111
Modera Archivio

112
Aggiungi Sprite

113
Commenta e Valuta

vii. Contratti Operazioni

Contratto Co1
Operazione: Cerca (string testo)
Riferimenti: Consulta archivio, Modera archivio, Commenta e valuta
Pre-condizioni: nessuna
Post-condizioni: Sono visualizzati i risultati dell’interrogazione del database

Contratto Co2
Operazione: NewAccount (id: String email, string username, string password)
Riferimenti: Modera archivio, aggiungi sprite
Pre-condizioni: nessuna
Post-condizioni: il database è stato aggiornato con i dati del nuovo account

Contratto Co3
Operazione: Login (string email, string password)
Riferimenti: Modera archivio, Commenta e valuta
Pre-condizioni: l'utente possiede un email e password validi
Post-condizioni: la pagina visualizza le funzioni esclusive per gli utenti loggati

114
Contratto Co4
Operazione: FrameAdded(img)
Riferimenti: Aggiungi Sprite
Pre-condizioni: l’utente ha un’immagine valida da caricare nel sistema
Post-condizioni: il sistema ha aggiunto il fotogramma selezionato dall’utente al vettore dei
fotogrammi

Contratto Co5
Operazione: InviaCommento(id: game, string commento)
Riferimenti: Commenta e valuta
Pre-condizioni: l'utente possiede un email e password validi
Post-condizioni: La pagina e il database sono stati aggiornati con il nuovo commento

viii. Architettura

115

Potrebbero piacerti anche