Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Documento di Analisi e
Specifica dei Requisiti
Corso di Ingegneria del Software
Docente Responsabile : Agostino Cortesi
Task 1
03/11/2008
Gruppo:
Our-Chan Team
1/39
Task 1 Documento di Analisi e Specifica dei Requisiti
INDICE ARGOMENTI
1 INTRODUZIONE ................................................................................................................................. 4
1.1 Scopi del documento .................................................................................................................. 4
1.2 Descrizione del documento ........................................................................................................ 4
1.3 Descrizione delle funzionalità generali del prodotto ................................................................. 5
2 ANALISI DEI VIEWPOINTS .................................................................................................................. 6
2.1 Viewpoints .................................................................................................................................. 6
2.1.1 Viewpoints interattivi .......................................................................................................... 6
2.1.2 Viewpoints di dominio ......................................................................................................... 6
2.2 Gerarchia dei viewpoints............................................................................................................ 7
2.3 Specifica degli attori ................................................................................................................... 7
2.4 Descrizione dei servizi ................................................................................................................ 9
2.5 Casi d’uso .................................................................................................................................. 14
3 MODELLAZIONE DEL SISTEMA ........................................................................................................ 22
3.1 Modello entità-relazioni ........................................................................................................... 22
4 DEFINIZIONE DEI REQUISITI FUNZIONALI ....................................................................................... 23
5 DEFINIZIONE DEI REQUISITI NON FUNZIONALI............................................................................... 26
5.1 Requisiti di prodotto................................................................................................................. 26
5.2 Requisiti di processo................................................................................................................. 27
6 EVOLUZIONE DEL SISTEMA ............................................................................................................. 29
6.1 Multiplayer in rete.................................................................................................................... 29
6.2 Possibilità di integrare più giochi di carte ................................................................................ 29
6.3 Miglioramenti delle prestazioni multimediali .......................................................................... 29
6.4 Supporto multilingua ................................................................................................................ 29
6.5 Supporto per Xbox 360............................................................................................................. 29
6.6 Classifiche ................................................................................................................................. 30
6.7 Supporto ad altre tipologie di gioco ......................................................................................... 30
7 SPECIFICA DEI REQUISITI ................................................................................................................. 31
7.1 Specifica .................................................................................................................................... 31
7.2 Matrice dei riferimenti ............................................................................................................. 33
8 GLOSSARIO ...................................................................................................................................... 35
9 BIBLIOGRAFIA .................................................................................................................................. 39
2/39
Task 1 Documento di Analisi e Specifica dei Requisiti
INDICE FIGURE
Capitolo 2
Figura 2.1……………………………………………………………………………………………………………………………7
Figura 2.2…………………………………………………………………………………………………………….……………15
Figura 2.3…………………………………………………………………………………………………………….……………17
Figura 2.4…………………………………………………………………………………………………………….……………18
Capitolo 3
Figura 3.1..………………………………………………………………………..…………………………….………….…… 22
Capitolo 7
Matrice dei Riferimenti…………………………………………………………………………………………………….34
VERSIONE 1.0
PAGINE TOTALI 39
3/39
Task 1 Documento di Analisi e Specifica dei Requisiti
1 INTRODUZIONE
Lo scopo di questo documento è un’attenta descrizione di ciò che dovrà offrire il sistema che si
andrà a sviluppare. In particolare verranno specificate le funzionalità accessibili ai suoi utenti, le
modalità con cui esso si dovrà integrare con l’ambiente, i vincoli che sia il processo di sviluppo che
il prodotto finale dovranno rispettare ed i diversi viewpoints che vi saranno coinvolti. Con il pre-
sente si intende inoltre mettere a disposizione al committente uno scritto da convalidare, nel qua-
le egli possa trovare una risposta alle sue richieste ed esigenze, ed al team di sviluppo una esatta
rappresentazione di ciò che dovrà implementare. Tutte le fasi del processo software dovranno fare
riferimento alle linee guida qui indicate, ed alla luce di quanto riportato nel piano di progetto si
potrà monitorare il rispetto degli impegni presi con il cliente.
2. Modelli di sistema: attraverso l’uso del modello Data-Flow si definiscono le entità che entreran-
no in gioco e come esse collaborano tra di loro.
3. Analisi dei viewpoints: la stesura e l’analisi di punti di vista diversi in base alla tipologia di usu-
fruitore consente di individuare le caratteristiche dei requisiti necessari alla stesura del progetto.
4. Definizione dei requisiti funzionali: si definiscono i servizi che il sistema dovrà offrire agli utenti e
le motivazioni per la quale tali servizi sono stati resi disponibili.
5. Definizione dei requisiti non funzionali: si definiscono i vincoli sul prodotto e sul processo di svi-
luppo, prendendo in considerazione anche alcuni requisiti e vincoli esterni.
6. Evoluzione del sistema: in questa sezione vengono elencate delle possibili vie per ampliare, mi-
gliorare o aggiornare il prodotto creato.
7. Specifica dei requisiti: partendo dai vincoli funzionali elencati nella sezione 4, si cerca di indivi-
duare le interdipendenze tra i requisiti attraverso una rappresentazione tabulare.
4/39
Task 1 Documento di Analisi e Specifica dei Requisiti
In base alle richieste imposte dal task, si è giunti all’elaborazione dell’architettura generale del
prodotto. Esso dovrà fornire in primo luogo un’interfaccia (UI = User Interface) che permetta
all’utente di giocare al gioco di carte Machiavelli. Il prodotto deve essere comunque sufficiente-
mente flessibile da garantire un integrazione di eventuali altri “regolamenti” di gioco, dando la
possibilità agli sviluppatori di modificare con facilità il codice per adattarlo ad altri giochi dello
stesso genere (altri giochi di carte). Questo prevede l’integrazioni di funzioni non necessarie per il
gioco Machiavelli (ad esempio in questo gioco non si scarta mai) ma che sono presenti in giochi
differenti (ad esempio in Scala 40 si scarta una carta ad ogni fine turno). La stesura dei requisiti ha
quindi un’importanza rilevante per garantire un prodotto quanto più completo.
5/39
Task 1 Documento di Analisi e Specifica dei Requisiti
2.1 Viewpoints
- Interattivi: rappresentano le persone o gli altri sistemi che interagiscono direttamente con il si-
stema. Nell’applicazione che stiamo analizzando in questa categoria vengono inclusi i giocatori, gli
sviluppatori e il tavolo.
- Di dominio: Raggruppa gli standard a cui il sistema si deve adattare e/o integrare.
- Usufruitore: è il super-viewpoints che include i servizi che vengono messi a disposizione di coloro
che partecipano al gioco, indipendentemente dal fatto che si tratti di un’intelligenza artificiale o di
un giocatore reale.
- Giocatore: è l’utilizzatore primario dell’applicazione, per il quale essa viene strutturata e model-
lata per garantire la migliore esperienza di gioco.
- Tavolo: è colui che si occupa di far rispettare le regole e decidere quali operazioni può fare il gio-
catore in quel momento. Si occupa inoltre di fornire un avversario al giocatore.
- Standard: individua tutte le caratteristiche che il sistema deve rispettare. In particolar modo, ga-
rantisce un ottima flessibilità per quel che concerne l’applicazione e la sua adattabilità per quel
che riguarda l’implementazione di regole di gioco differenti.
6/39
Task 1 Documento di Analisi e Specifica dei Requisiti
All VPs
Di Dominio Interattivi
Tavolo
Figura 2.1
Template
Reference Il nome del viewpoints.
Attributes Attributi che forniscono informazioni sui
viewpoints.
Events Riferimenti ad una serie di possibili eventi
che descrivono come il sistema reagisce.
Services Riferimenti alla descrizione di determi-
nati servizi.
Sub Vps il nome dei sotto-viewpoints.
7/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Usufruitore
Reference Interattivo
Attributes --
Events --
Services Richiede una carta
Scarta una tupla
Modifica una tupla
Sub Vps Giocatore, Tavolo
Giocatore
Reference Interattivo
Attributes Nome
Events Vittoria
Sconfitta
Services Accedi al menù
Gioca
Consulta manuale
Esci dall’applicazione
Riprendi partita
Interrompi partita
Richiede una carta
Scarta una tupla
Modifica una tupla
Sub Vps --
Tavolo
Reference Interattivo
Attributes Livello di difficoltà
Stato del gioco
Events Partita terminata
Sconfigge il giocatore
Viene sconfitto dal giocatore
Services Controlla che le regole del gioco venga-
no rispettate
Pesca una carta
Mette sul tavolo una tupla
Modifica una tupla
Sub Vps --
8/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Sviluppatore
Reference Interattivo
Attributes Login all’applicazione di sviluppo
(server)
Events Download/Upload dei contenuti (ag-
giornamenti, nuovi contenuti, fix).
Services Sviluppo
Supporto
Aggiorna
Aggiungi IA
Sub Vps --
Standard
Reference Dominio
Attributes --
Events --
Services Applicazione che rispetti determinati livelli
di flessibilità, generalizzazione e usabilità.
Deve inoltre rispettare i requisiti di sistema
imposti.
Sub Vps --
Template
Reference Il nome del servizio.
Rationale Il motivo per il quale il servizio viene
reso disponibile
Specification Riferimento ad una lista di descrizione
dei servizi.
Viewpoints Lista dei nomi viewpoints che utilizzano il
servizio.
Non- Riferimento ad un set di requisiti non
Functional funzionali che vincolano il servizio.
requirements
Provider Riferimenti ad una lista di oggetti che
forniscono il servizio
9/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Accedi al Menù
Reference Accedi al Menù
Rationale Il menù rende possibile la navigazione
attraverso le funzioni messe a disposi-
zione dell’applicazione.
Specification Riferimento ad una lista di descrizione
dei servizi.
Viewpoints Giocatore
Non- RFN51.2
Functional
requirements
Provider Sistema
Gioca
Reference Gioca
Rationale Avvia una nuova partita
Specification Lo stato di gioco viene resettato e la
partita comincia
Viewpoints Giocatore
Non- RFN51.3
Functional
requirements
Provider Sistema
Consulta manuale
Reference Consulta manuale
Rationale Il manuale deve essere reso disponibile
per far apprendere all’utente le mecca-
niche di gioco e le regole.
Specification La possibilità di consultare il manuale
ingame aumenta l’usabilità del prodot-
to poiché permette di non uscire dal
gioco per consultarla.
Viewpoints Giocatore
Non- RFN51.1, RFN51.3
Functional
requirements
Provider Sistema
10/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Esci dall’applicazione
Reference Esci dall’applicazione
Rationale Il giocatore deve poter uscire
dall’applicazione in qualsiasi momento.
Specification E’ un servizio necessario per qualsiasi
applicazione.
Viewpoints Giocatore
Non- RFN51.3
Functional
requirements
Provider Sistema
Riprendi partita
Reference Riprendi partita
Rationale L’utente, potendo accedere al menù
anche durante una partita, deve poi
poter riprendere da dove l’aveva lascia-
ta.
Specification Il giocatore deve poter consultare il
menù durante una partita senza perde-
re lo stato attuale del gioco.
Viewpoints Giocatore
Non- RFN51.3
Functional
requirements
Provider Sistema
Interrompi partita
Reference Interrompi partita
Rationale L’utente può abbandonare una partita
in corso.
Specification Tramite il menù l’utente potrà abban-
donare la partita in corso e riaccedere
al menù principale.
Viewpoints Giocatore
Non- RFN51.3
Functional
requirements
Provider Sistema
11/39
Task 1 Documento di Analisi e Specifica dei Requisiti
12/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Sviluppo
Reference Sviluppo
Rationale Implementazione dell’applicazione.
Specification --
Viewpoints Sviluppatore
Non- Deve permettere l’uso di plugin svilup-
Functional pati da terzi che introducono logiche di
requirements gioco diverse da quelle del Machiavelli
Provider --
Supporto
Reference Supporto
Rationale Lo sviluppatore deve garantire il sup-
porto in termini di fissaggio degli errori.
Specification I problemi non riscontrati in fase di te-
sting devono essere comunque risolti.
Viewpoints Sviluppatore
Non- --
Functional
requirements
Provider --
Aggiorna
Reference Aggiorna
Rationale L’erogatore dell’applicazione può rila-
sciare aggiornamenti atti ad estender-
ne i contenuti.
Specification Maggiori informazioni sono disponibili
nella sezione 6 di questo documento.
Viewpoints Sviluppatore
Non- --
Functional
requirements
Provider --
13/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Aggiungi IA
Reference Aggiungi IA
Rationale Possibilità di utilizzare plugin differenti
da quello del Machiavelli per poter usu-
fruire del sistema creato per giocare a
giochi differenti che rispettino i requisi-
ti imposti in questo documento.
Specification Il sistema deve poter ospitare plugin
sviluppate da terzi in modo da permet-
tere di utilizzare lo stesso sistema per
logiche di gioco differenti.
Viewpoints Sviluppatore
Non- Il plugin per essere utilizzabile dovrà ri-
Functional spettare i requisiti imposti.
requirements
Provider --
Un caso d’uso:
• rappresenta un possibile “modo” di utilizzo del sistema;
• descrive l’interazione tra attori e sistema, non la “logica interna” della funzione (ossia una
funzionalità dal punto di vista di chi la utilizza).
Un use case cattura chi (attori) fa cosa (interazione) con il sistema. Con quale scopo (goal), senza
considerare ciò che è dentro il sistema un use case:
• Raggiunge un singolo, discreto, completo, significativo, e ben definito task di interesse per
un attore;
• È un pattern di comportamento tra alcuni attori ed il sistema — una collezione di possibili
scenari;
• È scritto usando il vocabolario del dominio;
• Definisce scopo ed intento (non azioni concrete);
• È generale e indipendente dalla tecnologia.
14/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Gioca partita
Logica
Giocatore
Creazione di una
nuova logica
Figura 2.2
15/39
Task 1 Documento di Analisi e Specifica dei Requisiti
16/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Scenari possibili:
Pesca Carta
Scarta Tupla
Modifica Tupla
Passa la Mano
17/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Gioca /
Riprendi Partita
Help
Esci /
Termina Partita
Accedi al menù
Goal Accede al menù e rende possibile la navigazione attraverso le fun-
zioni messe a disposizione dell’applicazione.
Attori Giocatore
Precondizioni ---
Trigger Aver premuto o cliccato l’apposito tasto del menù
Descrizione Il giocatore accede al menu principale per poter effettuare le ope-
razioni principali, come l’inizio, il riavvio e la chiusura di una parti-
ta e la chiusura dell’applicazione.
Alternative (estensioni)
Postcondizioni:
Gioca
Goal Effettua una partita al gioco di carte
Attori Giocatore
Precondizioni Aver acceduto al menù principale
Trigger Aver premuto o cliccato l’apposito tasto del menù
Descrizione Il giocatore avvia una nuova partita del gioco di carte, specifican-
do il numero degli avversari virtuali o reali.
Alternative (estensioni) (Multiplayer, gioco a solitario)
Postcondizioni: La partita di carte è iniziata
18/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Consulta manuale
Goal Consulta il manuale documentativo per informazioni sul sistema,
sull’applicazione e risoluzione dei problemi elementari
Attori Giocatore
Precondizioni Aver acceduto al menù principale
Trigger Aver premuto o cliccato l’apposito tasto del menù
Descrizione Il giocatore accede alla documentazione
Alternative (estensioni) (Fornire assieme all’applicazione un manuale cartaceo e una ver-
sione disponibile online)
Postcondizioni: Il manuale è visualizzato
Esci dall’applicazione
Goal Il gioco viene terminato e l’applicazione chiusa
Attori Giocatore
Precondizioni Aver acceduto al menù principale
Trigger Aver premuto o cliccato l’apposito tasto del menù
Descrizione Il giocatore termina il gioco attuale nel caso stia giocando ed esce
dall’applicazione
Alternative (estensioni) (Documentazione online)
Postcondizioni: L’applicazione è terminata
Riprendi partita
Goal Il gioco viene ripreso dallo stato di pausa
Attori Giocatore
Precondizioni Aver acceduto al menù principale
Trigger Aver premuto o cliccato l’apposito tasto del menù
Descrizione Il giocatore riprende la partita messa precedentemente in pausa
Alternative (estensioni) (Inibizione della pausa se vi è un gioco in multiplayer)
Postcondizioni: La partita è ripresa
Interrompi partita
Goal Il gioco viene interrotto e la partita corrente annullata
Attori Giocatore
Precondizioni Aver acceduto al menù principale
Trigger Aver premuto o cliccato l’apposito tasto del menù
Descrizione Il giocatore interrompe la partita corrente e viene resettato lo sta-
to
Alternative (estensioni) (Inibizione della pausa se vi è un gioco in multiplayer)
Postcondizioni: La partita è ripresa
19/39
Task 1 Documento di Analisi e Specifica dei Requisiti
20/39
Task 1 Documento di Analisi e Specifica dei Requisiti
21/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Per modellare il sistema ci si avvale di una rappresentazione schematica e generalizzata utile per
sintetizzare le caratteristiche principali che esso dovrà avere. Ci si può avvalere di modelli differen-
ti per questa rappresentazione. Essi differiscono per il livello di astrazione a cui si vuole puntare.
Prendendo in considerazione il nostro caso specifico, si è deciso di optare per l’uso del modello en-
tità-relazioni. Questa tipologia di modello è utile per individuare le entità che fanno parte del si-
stema e come esse si relazionano tra loro.
Il modello ad entità-relazioni si sposa bene con il progetto che stiamo analizzando, dando una vista
generale di quelli che sono gli attori che si devono considerare nella nostra analisi.
- Logica -> sezione del sistema che si occupa delle regole del gioco e di fornire un avversario al gio-
catore.
Logica Persona
Implementa
Giocatore Sviluppatore
Figura 3.1
22/39
Task 1 Documento di Analisi e Specifica dei Requisiti
I requisiti esterni imposti dalla consegna riguardano la possibilità di poter utilizzare diversi moduli
di intelligenza artificiale senza dover modificare tutto il sistema di base, cercando delle soluzione
che riducano al minimo il tempo necessario all’implementazione di regole di gioco diverse.
Ogni requisito funzionale seguirà il template sottostante:
Codice Una breve stringa identificativa del requisito, nella forma RF.X, dove RF sta per
requisito funzionale e X è un numero progressivo
Definizione La definizione del requisito, espressa sinteticamente in linguaggio naturale
Motivazione Succinta spiegazione della ragion d’essere del requisito
Influisce Codici identificativi dei requisiti funzionali correlati
Specifica Stringa identificativa della specifica del requisito descritto
Codice RF.1
Definizione L’utente deve poter giocare al gioco di carte Machiavelli una volta avviata
l’applicazione.
Motivazione L’obbiettivo primo di questa applicazione è consentire all’utente di giocare al
gioco di carte Machiavelli.
Influisce RF.3
Specifica SRF.1
Codice RF.2
Definizione Deve essere messo a disposizione dell’utente un aiuto in linea che spieghi le
meccaniche di gioco.
Motivazione Le istruzioni all’uso servono per coloro che non conoscono il gioco o non ne
hanno familiarità.
Influisce RF.3
Specifica SRF.2
Codice RF.3
Definizione L’utente deve poter accedere al menù di gioco in qualsiasi momento
Motivazione Per qualsiasi ragione deve essere possibile accedere al menù che mette a dispo-
sizione diverse opzioni, tra cui il poter uscire dall’applicazione
Influisce --
Specifica SRF.3
23/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Codice RF.4
Definizione All’utente deve essere messa a disposizione la possibilità di consultare lo stato
del gioco attuale.
Motivazione Questo è necessario per rendere il giocatore partecipe e dargli la possibilità di
organizzare le proprie mosse.
Influisce RF.5
Specifica SRF.4
Codice RF.5
Definizione Il gioco deve cambiare il suo stato in caso di vittoria o sconfitta, passando da “in
gioco” a “attesa della scelta del giocatore”.
Motivazione L’obbiettivo ultimo è quello di sfidare l’intelligenza artificiale in un gioco di carte
in cui si può vincere o si può perdere.
Influisce RF.6
Specifica SRF.5
Codice RF.6
Definizione L’utente deve avere la possibilità di uscire dall’applicazione in qualsiasi momen-
to.
Motivazione --
Influisce --
Specifica SRF.6
Codice RF.7
Definizione L’utente deve avere la possibilità di effettuare un’ulteriore partita una volta fini-
ta la precedente
Motivazione L’utente non si deve trovare nella situazione di dover uscire dal gioco per poter
effettuare un'altra partita.
Influisce RF.8
Specifica SRF.7
Codice RF.8
Definizione L’utente deve poter ricominciare una partita in qualsiasi momento.
Motivazione L’utente, in caso di difficoltà, deve poter ricominciare la partita senza dover usci-
re dall’applicazione
Influisce --
Specifica SRF.8
24/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Codice RF.9
Definizione L’utente deve avere la possibilità di pescare una carta dal mazzo.
Motivazione Azioni di gioco consentite dal Machiavelli
Influisce --
Specifica SRF.9
Codice RF.10
Definizione L’utente deve avere la possibilità di scartare una tupla.
Motivazione Azioni di gioco consentite dal Machiavelli
Influisce --
Specifica SRF.10
Codice RF.11
Definizione L’utente deve avere la possibilità di modificare una tupla (combinazione di carte
consentita) sul tavolo: aggiungendo delle carte, rimuovendole (per poterle usare
in un'altra tupla).
Motivazione Azioni di gioco consentite dal Machiavelli
Influisce --
Specifica SRF.11
Codice RF.12
Definizione L’utente deve avere la possibilità di passare la mano se non ha altre operazioni
da fare.
Motivazione Azioni di gioco consentite dal Machiavelli
Influisce --
Specifica SRF.12
Codice RF.13
Definizione L’utente deve poter giocare e interagire con tutto il sistema tramite l’uso del
mouse.
Motivazione Maggiore semplicità nell’uso dell’applicazione.
Influisce --
Specifica SRF.13
25/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Codice Una breve stringa identificativa del requisito, nella forma RNFX.Y, dove RNF sta
per requisito non funzionale, X ha il valore del paragrafo a cui appartiene il re-
quisito, Y è un numero progressivo
Definizione La definizione del requisito, espressa sinteticamente in linguaggio naturale
Scopo Spiegazione dei fini per cui il requisito è stato elaborato
Tipo Definisce il tipo di requisito non funzionale
Influisce Codici identificativi dei requisiti funzionali correlati
Codice RFN51.1
Definizione Un utente che abbia dimestichezza con dei giochi di carte affini (es. Scala 40 o
simili) deve essere in grado di giocare dopo aver letto le istruzioni in linea una
volta.
Scopo --
Tipo Requisito di usabilità
Influisce RF.1
Codice RFN51.2
Definizione Il giocatore deve trovarsi di fronte ad un menù con più opzioni di scelta una volta
avviata l’applicazione
Scopo Il giocatore deve essere consapevole delle azioni che il gioco mette a disposizio-
ne.
Tipo Requisito di usabilità
Influisce RF.1
Codice RFN51.3
Definizione Il menù deve dare la possibilità di:
Giocare
Consultare il manuale online
Uscire
In base allo stato del gioco (ingame o no) avrà a disposizione anche:
Riprendi partita
Nuova partita (interrompi la partita corrente)
Scopo Opzioni base che un gioco dovrebbe mettere a disposizione.
Tipo Requisito di usabilità
Influisce RF.3
26/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Codice RFN51.4
Definizione L’applicazione supporterà giochi di carte che utilizzano unicamente carte france-
si.
Scopo Requisiti di espandibilità
Tipo Requisito di evoluzione
Influisce --
Codice RFN51.5
Definizione Il sistema supporterà giochi che richiedono 2 giocatori.
Scopo Serve per escludere dalla compatibilità di giochi come il solitario.
Tipo Requisito di realizzabilità.
Influisce --
Codice RFN51.6
Definizione L’utente per poter usufruire dell’applicazione deve disporre di un sistema che
ospiti il framework .Net e XNA, DirectX 9.0c e una scheda video che disponga di
almeno i pixel shader 1.1.
Scopo Requisiti minimi di sistema.
Tipo Requisito di portabilità
Influisce --
Codice RFN52.1
Definizione Il documento dei requisiti deve essere stilato entro il 3 Novembre 2008
Scopo Data di consegna
Tipo Requisito di consegna
Influisce --
Codice RFN52.2
Definizione La Fase di progettazione deve essere ultimata entro il 9 Dicembre 2008
Scopo Data di consegna
Tipo Requisito di consegna
Influisce --
27/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Codice RFN52.3
Definizione La fase di testing, la consegna del prototipo e la presentazione dovranno essere
ultimate entro il 15 Gennaio 2009
Scopo Data di consegna
Tipo Requisito di consegna
Influisce --
28/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Il sistema sarà realizzato in modo tale da essere facilmente modificabile e ampliabile. In una realtà
come quella di un gioco per computer è di essenziale importanza permettere l’evoluzione del pro-
dotto che sarà garantita dalla buona generalizzazione dei requisiti. In questa sezione del documen-
to stileremo alcune possibile evoluzioni del gioco di carte.
Il multiplayer, che permette di giocare a più persone rispetto all’attuale modalità single-player, è
una caratteristica decisiva in un gioco come questo. Una possibile evoluzione del sistema quindi
può essere l’implementazione del multi-player su rete locale ma anche internet.
Il sistema sfrutta una sola intelligenza artificiale (AI) del gioco di Machiavelli, ma uno dei principali
obbiettivi del progetto è quello predisporre l’ambiente nel ospitare diverse intelligenze artificiali
fissando chiaramente delle caratteristiche comuni.
Il risultato è la possibilità da parte dell’utente di poter scegliere il suo gioco di carte preferito. Non
avremo quindi tante UI diverse per ogni gioco, ma tante AI (fino a quando questo è sempre possi-
bile).
Il gioco di carte proprio come realtà non presenta particolari esigenze dal punto di vista
dell’impatto grafico e/o sonoro. In ogni caso il pubblico è abituato ad interfacce utente sempre più
vistose ed elaborate, con la presenza di effetti speciali e musiche di sottofondo. Proprio per segui-
re questa attuale direzione, potrebbe essere preso in considerazione un aggiornamento riguardan-
te il miglioramento delle prestazioni multimediali .
Il gioco nella sua prima incarnazione sarà rivolto ad un pubblico italiano. Potrebbe essere prevista
una sua localizzazione in altre lingue (inglese in primis) in modo da ingrandire il bacino d’utenza.
Inoltre potrebbe essere implementato un sistema che permetta agli utenti/utilizzatori di inserire il
supporto ad altre lingue (senza il bisogno di mettere mano al codice).
Il framework che viene utilizzato per la creazione dell’applicazione permette una sua facile traspo-
sizione verso la console Xbox 360. Anche questa operazione è atta all’ingrandimento del bacino di
utenza.
29/39
Task 1 Documento di Analisi e Specifica dei Requisiti
6.6 Classifiche
All’utente potrebbe essere messo a disposizione un sistema per salvare i propri risultati in locale
(in cui vede se una partita è andata meglio di un'altra) oppure in rete (in cui può confrontarsi con
altri giocatori).
L’applicazione potrebbe essere aggiornata in un secondo momento per permettere l’uso di plugin
che forniscano logiche di giochi che non sono stati presi in considerazione, come quelli che utiliz-
zano carte italiane (trevigiane, napoletane ecc ecc) o quelli che prevedono di giocare in solitario
(come l’omonimo gioco).
30/39
Task 1 Documento di Analisi e Specifica dei Requisiti
7.1 Specifica
Codice Codice identificativo: è della forma SRF.X, dove S sta per Specifica, RF.X è la
stringa distintiva del requisito cui si fa riferimento nella specifica
Inputs Ciò che il sistema richiede per l’erogazione della funzionalità
Outputs Ciò che è restituito dal sistema a seguito della richiesta pervenuta
Pre-condizioni Presupposti validi al momento dell’invocazione della funzionalità
Post-condizioni Proprietà valide ad operazione conclusa
Codice SRF.1
Inputs Richiesta da parte dell’utente di iniziare il gioco
Outputs Visualizzazione dell’interfaccia di gioco
Pre-condizioni Il terminale mostra l’interfaccia del menu
Post-condizioni Il terminale mostra l’interfaccia di una nuova partita
Codice SRF.2
Inputs Richiesta da parte dell’utente di un aiuto che spieghi le meccaniche del gioco
Outputs Visualizzazione dell’interfaccia di guida richiesta dall’utente
Pre-condizioni --
Post-condizioni Il terminale mostra l’interfaccia di guida utente
Codice SRF.3
Inputs Richiesta da parte dell’utente di visualizzare il menu di gioco
Outputs Visualizzazione del menu di gioco
Pre-condizioni --
Post-condizioni Il terminale mostra il menu di gioco
Codice SRF.4
Inputs Richiesta di avere una maggiore panoramica dello stato del gioco
Outputs Visualizzazione dell’interfaccia più dettagliata dello stato del gioco
Pre-condizioni Il terminale sta mostrando la partita corrente
Post-condizioni Il terminale mostra l’interfaccia più dettagliata dello stato del gioco
31/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Codice SRF.5
Inputs Evento di vittoria o sconfitta da parte del giocatore
Outputs Visualizzazione di una scelta all’utente dopo aver vinto o perso
Pre-condizioni Il terminale è nello stato di partita in corso
Post-condizioni Il terminale mostra l’interfaccia di scelta
Codice SRF.6
Inputs Richiesta di uscita dall’applicazione
Outputs Visualizza una domanda di conferma per uscire dall’applicazione
Pre-condizioni --
Post-condizioni Il terminale mostra una domanda di conferma per uscire dall’applicazione
Codice SRF.7
Inputs Richiesta da parte dell’utente di iniziare una nuova partita
Outputs Visualizzazione dell’interfaccia di gioco
Pre-condizioni Il terminale mostra la fine di una determinata partita
Post-condizioni Il terminale mostra l’interfaccia di una nuova partita
Codice SRF.8
Inputs Richiesta da parte dell’utente di iniziare una nuova partita
Outputs Visualizzazione dell’interfaccia di gioco
Pre-condizioni Il terminale mostra la partita in corso
Post-condizioni Il terminale mostra l’interfaccia di una nuova partita
Codice SRF.9
Inputs Richiesta da parte dell’utente di pescare una carta dal mazzo
Outputs Visualizzazione dell’interfaccia per la scelta di quale carta pescare dal mazzo
Pre-condizioni Il terminale mostra la partita in corso
Post-condizioni Il terminale mostra l’interfaccia per la scelta di quale carta pescare dal mazzo
Codice SRF.10
Inputs Richiesta da parte dell’utente di scartare una tupla
Outputs Visualizzazione dell’interfaccia per eseguire lo scarto di una tupla
Pre-condizioni Il terminale mostra la partita in corso
Post-condizioni Il terminale mostra l’interfaccia per eseguire lo scarto di una tupla
32/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Codice SRF.11
Inputs Richiesta da parte dell’utente di modifica tupla (combinazione di carte con-
sentita) sul tavolo.
Outputs Visualizzazione dell’interfaccia per le operazioni di modifica tupla.
Pre-condizioni Il terminale mostra la partita in corso
Post-condizioni Il terminale mostra l’interfaccia per le operazioni di modifica tupla.
Codice SRF.12
Inputs Richiesta da parte dell’utente di passare la mano
Outputs Visualizzazione dell’interfaccia di gioco dopo aver passato la mano
Pre-condizioni Il terminale mostra la partita in corso e inoltre l’utente non deve aver la pos-
sibilità di eseguire altre operazioni
Post-condizioni Il terminale mostra l’interfaccia di gioco dopo aver passato la mano
Codice SRF.13
Inputs Uso del dispositivo mouse
Outputs In base all’evento richiamato, l’applicazione risponde.
Pre-condizioni Il dispositivo mouse deve essere correttamente collegato al terminale
Post-condizioni Il terminale mostra l’interattività col dispositivo mouse
La rappresentazione grafica proposta di seguito vuole offrire una visione completa delle interdi-
pendenze e delle reciproche influenze che i vari requisiti esercitano tra di loro. La seguente matri-
ce li identifica attraverso il codice corrispondente, mettendoli in relazione tra di loro, in modo che
la entry corrispondente a due vincoli correlati sia contraddistinta da un colore significativo.
33/39
Task 1 Documento di Analisi e Specifica dei Requisiti
5
6
7
8
9
10
11
12
13
51.1
51.2
Requisiti non funzionali
51.3
51.4
51.5
51.6
52.1
52.2
52.3
34/39
Task 1 Documento di Analisi e Specifica dei Requisiti
8 GLOSSARIO
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
D
Debugger
Software spesso integrato in un IDE, il cui compito è analizzare e correggere eventuali errori di
programmazione (bug) all’interno del codice.
Direct X
Una collezione di API per lo sviluppo semplificato di videogiochi per Windows. Attualmente
l’ultima versione è la 10.
Framework
Struttura di supporto su cui viene sviluppato un software ed alla cui base ci sono serie di librerie
e/o codice utilizzabili in diversi linguaggi di programmazione. Può essere corredato da una serie di
strumenti come un IDE e/o un debugger.
Framework .NET
E’ il framework proprietario di Microsoft.
35/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Livello di astrazione
Esprime la “distanza” tra uno schema o un linguaggio rispetto all’hardware di un elaboratore. Ad
un livello alto le informazioni sono chiare all’essere umano; al contrario un livello basso usa un lin-
guaggio più vicino alla macchina.
Modello data-flow
Modello di diagramma utilizzato principalmente per rappresentare il flusso e l’elaborazione delle
informazioni in un sistema.
Modello di sistema
Presentazione astratta del sistema di cui si stanno analizzando i requisiti. Di solito vengono utiliz-
zati schemi grafici.
Multi-player
Modalità di gioco dove si sfidano diversi utenti.
Pixel Shader
Sequenza di istruzioni eseguita da una GPU per ogni pixel da elaborare.
Plugin
Estensione che aggiunge una o più funzionalità al software.
36/39
Task 1 Documento di Analisi e Specifica dei Requisiti
Requisito funzionale
Descrive il servizio o la funzione realizzata dal sistema.
Server
Componente informatica che fornisce servizi ad altre periferiche utilizzando una rete.
Single-player
Modalità di gioco per un solo utente. Se ci sono avversari essi sono rappresentati dall’AI.
Team di sviluppo
Gruppo di persone il cui compito è lavorare allo sviluppo di un sistema.
Template
Modello di documento formato da una parte fissa (ad esempio layout e schemi vari) ed una modi-
ficabile.
Viewpoints
Letteralmente “punti di vista”. Rappresentano i vari “attori” di un sistema.
XBox 360
Console next-generation prodotta da Microsoft.
37/39
Task 1 Documento di Analisi e Specifica dei Requisiti
XNA
Insieme di strumenti per la progettazione, lo sviluppo e la gestione di software per videogiochi re-
so disponibile da Microsoft.
38/39
Task 1 Documento di Analisi e Specifica dei Requisiti
9 BIBLIOGRAFIA
39/39