specifiche dei requisiti - progettoatena.it del software/tesina di...tesina di ingegneria del...
TRANSCRIPT
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-3-
Specifiche dei requisiti 1. Introduzione
• Scopo:lo scopo di questo progetto è di illustrare brevemente ma efficacemente la funzionalità del software per la gestione di una enciclopedia on line. • Campo di validità:si dà la possibilità ai fornitori di creare un base di dati per la consultazione on line da parte di potenziali clienti. Il sistema informativo è suddiviso in argomenti: lingua, storia, geografia,
letteratura, chimica, fisica, sport, ecc… Inoltre è compresa una sezione di attualità con rubriche di approfondimento su fatti, eventi e protagonisti del mondo.
• Definizioni: CLIENTE: è la persona che paga per avere il prodotto FORNITORE: è la persona che fornisce il prodotto al cliente e si suddivide in varie categorie: RICERCATORE: si occupa di uno o più argomenti a seconda delle competenze; può far parte della redazione centrale GIORNALISTA:fornisce servizi di attualità e coopera con i ricercatori; FOTOGRAFO:fornisce le foto da allegare alle documentazioni; DISEGNATORE TECNICO:fornisce i disegni tecnici e tutto ciò che riguarda i contributi grafici da allegare alle documentazioni; TECNICO DELLE RISORSE MULTIMEDIALI:fornisce materiale audio, video e animazioni 3D da allegare alle documentazioni.
2. Descrizione generale • Prospettive: si tratta di un servizio in grado di offrire nozioni ed
approfondimenti senza far navigare l’utente da un sito all’altro alla ricerca della risposta.
• Funzioni: il pacchetto software permette l’immissione di nuovo materiale nella base di dati da parte dei fornitori e permette l’acquisto di servizi per mezzo di abbonamenti da parte dei clienti.
• Vincoli generali: il pacchetto software deve girare su qualsiasi macchina e i risultati dovranno essere visualizzabili attraverso qualunque browser web. Inoltre dovrà gestire la sicurezza della base di dati per mezzo dell’autenticazione, tramite login e password.
3. Requisiti del software • Ricerca della documentazione di un nome proprio o parola chiave.
Quando l’utente richiama questa funzione deve essere generato un form per la richiesta dei parametri ( parola chiave o nome proprio); successivamente il software deve provvedere alla
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-4-
generazione di una pagina web dinamica in cui si riporta il materiale richiesto, tenendo presente che il riferimento può essere diretto ( cioè la documentazione scritta, la fotografia, il disegno… sono descritti dalla parola chiave) o indiretto (cioè la documentazione scritta è correlata ricorsivamente da un’altra documentazione scritta o da una fotografia o da un disegno… riferita a quella parola chiave tramite collegamenti ad altre pagine web).
• Inserimento di materiale: ognuno dei fornitori può immettere materiale nuovo; quando si attiva questa funzione si genera un form per l’immissione dei dati (argomento, documentazione del nome proprio o parola chiave, fotografie,…). La redazione centrale (formata da un gruppo ristretto di ricercatori) apporta le eventuali modifiche e dà il consenso all’immissione nella base di dati del materiale. Nella base di dati viene memorizzata per lo più la documentazione scritta, mentre per le fotografie, articoli, disegni e filmati vengono memorizzati gli url in modo da poter associarli a più documentazioni scritte.
• Acquisto di un abbonamento: per poter consultare l’enciclopedia occorre un abbonamento. Un abbonamento può essere sottoscritto per uno o più argomenti; gli abbonamenti sono a tempo e durante la loro durata si possono consultare un numero illimitato di documentazioni relative agli argomenti scelti nell’abbonamento. Inoltre quando si stipula un nuovo abbonamento viene regalato al cliente un cd-rom comprendente servizi e curiosità relative all’argomento scelto nell’abbonamento stesso.
• Ricerca degli ultimi aggiornamenti all’enciclopedia riguardanti un certo argomento. Quando l’utente invia il form con i parametri specificati, il software genera una pagina web dinamica in cui si riportano le ultime parole chiave che soddisfano la query proposta.
• Visualizzazione degli ultimi 10 servizi pubblicati nella sezione che ha per argomento “attualità”: il software genera una pagina web in cui compare l’elenco delle parole chiave associate agli ultimi servizi. La parola chiave di ogni servizio rimanda tramite link ad un’altra pagina web dove si trova il servizio completo.
• Realizzazione di statistiche: occorre mettere a disposizione statistiche con parametri; ad esempio, per la redazione centrale può essere utile sapere quali sono gli argomenti con più abbonamenti, oppure quale fornitore è più attivo facendo un rapporto materiale accettato/materiale proposto, ecc… .
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-5-
User diagram
UTENTE
CLIENTE FORNITORE
RICERCATORE GIORNALISTA FOTOGRAFO DISEGNATORETECNICO
TECNICODELLE RISORSEMULTIMEDIALI
REDATTORE
Il diagramma degli utenti mostra come essi sono suddivisi: gli utenti si suddividono in clienti e fornitori. Quest’ultimi si suddividono in ricercatori, giornalisti, fotografi, disegnatori e tecnici delle risorse multimediali. Inoltre un ricercatore può far parte della redazione centrale.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-6-
Use case diagrams Use case diagram CLIENTE
CLIENTE
CONSULTAZIONE ABBONAMENTODBMS DBMS
"ext
ends
"
LIMITAZIONISULLA
CONSULT AZIONE
"include"
MATERIALE
"extends"
LIMITAZIONISUGLI
ABBONAMENTI
Il cliente può sottoscrivere un abbonamento oppure consultare l’enciclopedia riguardo gli argomenti a cui si è abbonati. Quando un cliente decide di consultare l’enciclopedia entra in funzione lo use case “Limitazioni sulla consultazione” che impedisce l’accesso a documentazioni relative ad argomenti a cui non si è abbonati. Inoltre vi è lo use case “Limitazioni sugli abbonamenti” che impedisce ad un cliente di effettuare un abbonamento già esistente. Lo use case “materiale” indica che l’utente deve richiedere esplicitamente il tipo di materiale al sistema informativo.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-7-
Use case diagram FORNITORE
Un fornitore può proporre del materiale che si suddivide in “Documentazione scritta”, “Fotografia”, “Disegno”, “Risorsa Multimediale”, “Servizio”. Dopodiché interviene il ricercatore appartenente alla redazione centrale che decide se il materiale è adatto e valido per essere immesso nella base di dati.
FORNITORE
MATERIALE
DBMS
DOCUMENTAZIONESCRITTA
FOTOGRAFIA
DISEGNO
RISORSAMULTIMEDIALE
REDATTORESERVIZIO
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-8-
Component diagram
CONSULTAZIONE MATERIALE
UTENTE
UTENTE: comprende le classi che descrivono gli utenti del sistema. MATERIALE: comprende le classi che descrivono il materiale dell’enciclopedia. CONSULTAZIONE: comprende le classi che permettono la consultazione del materiale da parte degli utenti. Le frecce indicano che le classi interagiscono rispettivamente tra di loro.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-9-
Class diagrams Class diagram UTENTE
UTENTE[abstract]cf:stringnome:stringcognome:string
CLIENTE
numabb:int
FORNITOREtel:stringcell:stringfax:stringemail:string
parstatfor()
RICERCATOREarg:stringmatpro:intmatacc:int
GIORNALISTAartpro:intartacc:int
TECNICODELLE RISORSEMULTIMEDIALI
multpro:intmultacc:int
DISEGNATORETECNICO
dispro:intdisacc:int
FOTOGRAFOfotopro:intfotoacc:int
REDATTOREargred:string
{dinamica}
{mandatory}
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-10-
La classe astratta “Utente” comprende tutti i possibili utenti del pacchetto software. Gli utenti sono suddivisi in clienti e fornitori; sotto la gerarchia “Utente” è indicato ‘dinamica’ poiché il ruolo degli utenti è dinamico: infatti non si può escludere che un cliente possa diventare un fornitore o viceversa. La classe “Utente” ha gli attributi comuni a tutti come il codice fiscale ‘cf’, il ‘nome’ e il ‘cognome’. Per un “Fornitore” si indicano l’e-mail, ’email’, il numero del telefono fisso, ‘tel’, di cellulare, ‘cell’, e di fax, ‘fax’. Inoltre si fornisce il metodo ‘Parstatfor()’ per richiedere i parametri delle statistiche che un fornitore desidera fare. Nella classe ‘Cliente’ si indica il numero di abbonamenti, ‘numabb’. La classe “Fornitore” viene a sua volta specializzata nelle sottoclassi “Ricercatore”, “Giornalista”, “Fotografo”,”Disegnatore tecnico”, “Tecnico delle risorse multimediali”. Come specificato nel diagramma la gerarchia è totale (mandatory), cioè un fornitore non può non essere uno dei cinque ruoli indicati. La classe “Redattore” ha come attributo ‘argred’, che è l’argomento a cui si riferisce. Il “Ricercatore” ha come attributi ‘arg’, argomento a cui si dedica, ‘matpro’, numero di materiale proposto e ‘matacc’, numero di materiale accettato. Questi servono per stabilire chi sono i ricercatori più attivi (integrano e rinnovano il materiale del database) e quindi per stilare delle particolari statistiche. Stesso significato hanno gli attributi sul numero di articoli proposti e accettati, ‘artpro’ e ‘artacc’, nella classe “Fotografo”, sul numero di fotografie proposte e accettate, ‘fotopro’ e ‘fotoacc’, nella classe “Fotografo”, sul numero di disegni proposti e accettati, ‘dispro’ e ‘disacc’, nella classe “Disegnatore tecnico”, sul numero di risorse multimediali proposte e accettate, ‘multpro’ e ‘multacc’, nella classe “Tecnico delle risorse multimediali”.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-11-
Class diagram FORNITORE
FORNITOREtel:stringcell:stringfax:stringemail:sting
parstatfor()
fornisce
FORNISCEconsenso:boolmodifiche:bool
okconsenso()modifica()
tipomateriale()inc_acc()inc_pro()
MATERIALEcod:stringarg:stringtipo:stringdata:date
crea()riferisce()
RISORSAMULTIMEDIALE
url:stringtiporis:stringtitris:string
DISEGNOurl:stringtitdis:string
FOTOGRAFIAurl:stringtitfoto:string
DOCUMENTAZIONESCRITTA
titdoc:stringtesto:string
fotoallegata
disegnoallegato
multimediallegato
SERVIZIOtitserv:stringtestoserv:stringdata:dateurl:string
servizioallegato
STATISTICHEarg:string
dati()visualizza()statistica()
correlato
richiede
interroga
* *
*
*
*
** *
*
*
**
{mandatory}
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-12-
La classe “Materiale” raccoglie gli attributi comuni a tutti i tipi di materiale come il codice univoco ‘cod’, l’argomento relativo ‘arg’, la data ‘data’ ed il tipo di materiale ‘tipo’ (documentazione scritta, fotografia, disegno, risorsa multimediale, servizio). La classe “Materiale” offre i metodi riferisce() che permette di visualizzare il materiale richiesto, crea() che indica alla classe stessa di inizializzarsi e si specializza nelle sottoclassi “Documentazione scritta”, “Fotografia”, “Disegno”, “Risorsa multimediale”, “Servizio”. L’associazione ‘fornisce’ indica che il “Materiale” è fornito da un particolare “Fornitore”. Questa associazione è poi resa come una classe in modo tale da specificarne i suoi attributi: ‘okconsenso’ per stabilire se il materiale abbia ricevuto il consenso dal relativo redattore con o senza ‘modifiche’. Per tutte le sottoclassi di “Materiale”, eccetto “Documentazione scritta”, viene specificato l’attributo ’url’, che indica l’indirizzo internet in cui essa è fisicamente memorizzata; inoltre viene riportato il titolo della fotografia ‘titfoto’ nella classe “Fotografia”, il titolo del disegno ‘titdis’ nella classe “Disegno”, il titolo della risorsa multimediale ‘titris’ e il tipo ‘tiporis’(audio, video,…) nella classe “Risorsa multimediale”, il titolo ‘titserv’, il testo ‘testoserv’, la data ‘data’ del servizio nella classe “Servizio”. Anche nella classe “Documentazione scritta” sono riportati il titolo ‘titdoc’ e il ‘testo’. La classe “Documentazione scritta” partecipa a diverse associazioni: ‘correlato’ indica che una documentazione può essere correlata da un’altra o più documentazioni tramite link creati dai fornitori; ‘fotoallegata’, ‘disegnoallegato’, multimediallegato’ e ‘servizioallegato’ indicano rispettivamente che una documentazione possa o meno essere corredata da una o più fotografie, da uno o più disegni…. Un fornitore può richiedere che vengano eseguite delle statistiche e ciò è messo in evidenza dall’associazione ‘chiede’; la classe “statistiche” ‘interroga’ la classe “Fornitore” per ottenere i risultati che verranno visualizzati mediante il metodo visualizza(). Il metodo statistiche() indica alla classe “Statistiche” di creare un’istanza, dati() serve per ottenere i dati per calcolare le statistiche, e l’attributo ‘arg’ indica l’argomento.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-13-
Class diagram CLIENTE
CLIENTEnumabb:int
parstatcli()
sottoscrive
arg
ABBONAMENTOcod:stringini:datefin:datearg:stringctrl:bool
faictrl()abbona()
CD-ROMargcd:stringrec:bool
regala()invia()
CONSULTAZIONEparola:stringtipo:stringok:bool
crea()visualizza()controlla()
errore()
consulta
MATERIALE
cod:stringarg:stringtipo:string
crea()riferisce()
in
CONSULTAdata:dateok:bool
consulta()mem()
*
*
1
*
*
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-14-
La classe “Abbonamento” è descritta dagli attributi ‘cod’, che è un identificativo univoco del cliente a cui l’abbonamento si riferisce, ‘ini’, che indica la data in cui è stato fatto l’abbonamento, ‘fin’, che indica la data di scadenza, ‘arg’, che indica la categoria a cui si riferisce l’abbonamento e ‘ctrl’ che è un attributo per il controllo dei risultati forniti dai metodi. Il metodo abbona() memorizza l’abbonamento nella base di dati. La classe “Abbonamento” partecipa ad un’associazione specializzata con “Cliente”; questo indica che un cliente non può stipulare più di un abbonamento per lo stesso argomento. Ad ogni abbonamento è riservato in regalo un “Cd-rom” , evidenziato dall’aggragazione “Abbonamento/Cd-rom”. Questo significa che non ha senso considerare un cd-rom come entità a sé stante, separata dall’abbonamento. Inoltre l’attributo ‘rec’ serve per controllare il risultato dell’esecuzione del metodo invia() che recapita il cd-rom al cliente; l’attributo ‘argcd’ descrive l’argomento del cd-rom in regalo. Il cliente può richiedere la consultazione di materiale tramite l’associazione ‘consulta’ con la classe “Consultazione”; l’associazione ‘consulta’ è resa con una classe per poter descrivere gli attributi ‘data’, che indica la data della consulatazione e ‘ok’ per controllare l’esecuzione del metodo ‘crea’ che indica alla classe “Consultazione” di creare una sua istanza. Il metodo mem() memorizza l’attributo data. La classe “Consultazione” è descritta dagli attributi ‘parola’, che indica la parola o il nome di persona di cui si vogliono notizie, dall’attributo ‘tipo’ che indica il tipo, e dall’attributo ‘ok’ per controllare l’esecuzione del metodo controlla() che verifica la validità dell’abbonamento e l’esistenza di materiale nella base di dati. Inoltre vi sono i metodi visualizza(), che visualizza il materiale richiesto e il metodo errore() che comunica un eventuale errore nell’elaborazione dei dati. La classe “Consultazione” è in relazione con la classe “Materiale” per evidenziare il fatto che “Consultazione” preleva tutti i dati occorrenti nella classe “Materiale”.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-15-
Class diagram RICERCA
CLIENTEnumabb:string
parstatcli()
ULTIMIAGGIORNAMENTIarg;stringnum:intok:bool
parole()dati()
visualizza()errore()
PAGINAcod:stringnumrig:intok:bool
righe()impagina()
RIGAparola:string
ULTIMI 10SERVIZI
data:date
servizi()
RISULTATOnumrig:int
crea()impagina()
RIGHEtitserv:stringlink:string
collega()
SERVIZIOtitserv:stringtestoserv:stringdata:dateurl:string
cerca()
* * * *
*
*
*
*
*1
*
*
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-16-
La classe “Cliente” è in relazione con la classe “Ultimi servizi” per indicare che il cliente può richiedere la visualizzazione degli ultimi servizi della sezione attualità; la classe “Ultimi 10 servizi” è descritta dall’attributo ‘data’ e tramite il metodo servizi() si inizializza. La relazione con la classe “Risultato” permette di ottenere una pagina di risultati tramite il metodo crea(). La classe “Risultato” è formata da un certo numero di istanze di “Righe” ‘numrig’ che vengono create col metodo collega() ; il metodo impagina() serve per costruire la pagina dinamica risultato. Una riga è caratterizzata da un titolo ‘titserv’ e da un link che rimanda ad un’altra pagina web dove è contenuto l’intero “Servizio”; il metodo visualizza() preleva i dati da “Servizio”. La relazione tra “Cliente” e “Ultimi aggiornamenti” indica che si può effettuare una ricerca degli ultimi aggiornamenti di una certo argomento (che possono essere nuove parole o parole già esistenti nella base di dati ma con allegato nuovo materiale) tramite il metodo parole(): ciò genererà una “Pagina” risultato tramite i metodi righe() e impagina(). Il metodo visualizza() visualizza il risultato, mentre il metodo errore() comunica un eventuale errore nell’elaborazione dai dati; l’attributo ‘num’ indica quanti ultimi aggiornamenti ricercare. Una “Pagina” risultato è descritta da un suo codice ‘cod’ ed è formata da una certo numero di righe ‘numrig’ della classe “Riga”. I metodi righe() e impagina() servono rispettivamente per reperire i dati e costruire la pagina. Una “Riga” è descritta dalla parola aggiornata ultimamente.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-17-
Sequence diagrams Sequence diagram FORNITORE
FORNITORE FORNISCE
tipomateriale()
consenso:=okconsenso()
modifiche:=modifica()
inc_pro()
[consenso]inc_acc()
MATERIALE
DOCUMENTAZIONESC R IT T A
FOTOGRAFIA
DISEGNO
RISORSA MUL T IME DIAL E
SERVIZIO
[tipo=T] new
[tipo=F] new
[tipo=D] new
[tipo=R] new
[tipo=S] new
OK
OK
crea()
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-18-
Il “Fornitore” invoca il metodo tipomateriale() per indicare la sua intenzione di proporre nuovo “Materiale”. “Fornisce” invoca il metodo okconsenso() per indicare che ci sara un controllo da parte di un redattore per verificare se il “Materiale” sarà o meno accettato; poi invoca il metodo modifica() per indicare che ci si dovrà occupare delle eventuali correzioni. Successivamente si invoca il metodo inc_pro() per indicare che deve essere incrementato il numero di elementi di “Materiale” proposto relativamente al “Fornitore” in questione. Se poi il “Materiale” viene accettato si invoca il metodo inc_acc() per incrementare gli elementi di “Materiale” accettato. Infine il metodo crea() crea un’istanza di “Materiale”. In base al tipo di “Materiale” che viene inserito(come illustrato in figura) si genera una nuova istanza dell’opportuna classe. L’istanza di “Materiale” manda un segnale di OK per segnalare che ha terminato all’istanza di “Fornisce”, la quale a sua volta invia OK per indicare che anche lei ha terminato, in modo da far cessare il processo.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-19-
Sequence diagram STATISTICHE
FORNITORE STATISTICHE
dati()
FORNITORE
parstatfor()
visualizza()
statistica()
OK
OK
IL “Fornitore” invoca il metodo statistica() per indicare che vuole fare una statistica: “Statistiche” invoca il metodo dati() affinché il “Fornitore” inserisca i parametri per la statistica; poi si invoca il metodo parstatfor() per ricevere i dati da un’altre istanza di “Fornitore”. Quando “Statistiche ha ricevuto l’OK da “Fornitore”, invoca il metodo visualizza() per visualizzare i risultati e manda un OK alla prima istanza di “Fornitore” per segnalare che ha terminato la sua esecuzione.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-20-
Sequence diagram ABBONAMENTO
CLIENTE ABBONAMENTO
abbona()ctrl:=faictrl()
CD-ROM
[ctrl] regala()rec:=invia()
[rec] OK
[not rec] NOT OK
end
Il “Cliente” invoca il metodo abbona() per stipulare un nuovo abbonamento. “Abbonamento” invoca il metodo faictrl() per controllare la validità dell’abbonamento, cioè verifica che non esista un altro abbonamento per lo stesso cliente e per lo stesso argomento. In caso il controllo abbia dato esito positivo si invoca il metodo regala() per inviare un “Cd-rom” in regalo al “Cliente”. “Cd-rom” invoca il metodo invia() per indicare che si dovrà recapitare il regalo. Se il recapito avviene “Cd-rom” manda un segnale di OK ad “Abbonamento”, altrimenti manda un segna le di errore NOT OK. Infine “Abbonamento” invia un segnale di end a “Cliente” per indicare il termine della sua esecuzione in modo da far terminare il processo.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-21-
Sequence diagram CONSULTAZIONE
CLIENTE CONSULTA
consulta()
CONSULTAZIONE
ok:=crea()
ok:=controlla()
MATERIALE
[ok] riferisce()
OK
[ok] visualizza()
OK
[not ok] errore()
[ok] mem()
OK
Il “Cliente” invoca il metodo consulta() per indicare che vuole consultare del “Materiale”. “Consulta” invoca il metodo crea() per indicare a “Consultazione” di inizializzarsi. Poi si invoca il metodo controlla() per verificare che il “Cliente” abbia il diritto di consultare. In caso positivo si invoca il metodo riferisce() per indicare a “Materiale” che si richiedono dati. Se la richiesta ha dato esito positivo si invoca il metodo visualizza(), altrimenti si invoca errore(). Successivamente si manda a “Consulta” un segnale per indicare se l’elaborazione ha avuto successo; in caso positivo si invoca il metodo mem() per memorizzare nella base di dati che è avvenuta una consultazione, si manda a “Cliente un segnale di OK per indicare che è terminata l’elaborazione e si conclude il processo.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-22-
Sequence diagram RICERCA ULTIMI 10 SERVIZI
CLIENTE ULTIMI 10SERVIZI
servizi()
RISULTATO
crea()
RIGHE
* collega()
SERVIZIO
cerca()
OK
impagina()
OK
OK
OK
Il “Cliente” invoca il metodo servizi() per indicare che vuole visualizzare gli ultimi 10 servizi. “Ultimi 10 servizi” comunica a “Risultato” di inizializzarsi con il metodo crea(); “Risultato” invoca più volte il metodo collega() per ottenere le righe che formeranno la pagina del servizio, il quale verrà impaginato con il metodo impagina(); “Righe” invoca il metodo cerca() per travare i dati dei servizi dalla classe “Servizio”. Ognuna delle istanze, una volta terminata la propria elaborazione, manda un segnale di OK all’istanza che l’ha invocata precedentemente in modo tale da far terminare il processo generale.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-23-
Sequence diagram RICERCA ULTIMI AGGIORNAMENTI
CLIENTE ULTIMIAGGIORNAMENT I
parole()
PAGINA
dati()
ok:= righe()
[ok] impagina()
ok
[ok] visualizza()
[not ok] errore()
end
Il “Cliente” invoca il metodo parole() per indicare che vuole trovare gli ultimi aggiornamenti. “Ricerca” invoca il metodo dati() in modo tale che il cliente possa immettere i parametri di ricerca; poi si invoca il metodo righe() e, in caso abbia dato esito positivo, impagina() per l’impaginazione della “Pagina” risultato. Se tutto è avvenuto senza errori viene visualizzata la pagina risultato con il metodo visualizza(), altrimenti si invoca il metodo errore(). In ogni caso si manda un segnale a “Cliente” per indicare che l’elaborazione è finita.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-24-
Activity diagrams Activity diagram FORNITORE
R
RICEVOMATERIALE
INCREMENTOPRPOPOSTI
CONSENSO MODIFICO
INCREMENT OACCETTATI
OK
NUOVAISTANZA
CHIUSURAPROCEDURA
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-25-
Activity diagram ABBONAMENTO
RICHIESTA
CONT ROLLO
[OK]
ERRORE
[NOT OK]
INVIOREGALO
ERRORE
CHIUSURAPROCEDURA
[OK] [NOT OK]
CONFERMOABBONAMENTO
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-26-
Activity diagram CONSULTAZIONE
RICHISTA
CONT ROLLO
RICHIESTADATI
ERRORE
VISUALIZZO ERRORE
TERMINORICHIESTA
[OK] [NOT OK]
[OK] [NOT OK]
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-27-
Activity diagram RICERCA ULTIMI 10 SERVIZI
RICHIESTA
TROVORISULTATI
CREOPAGINA
VISUALIZZO
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-28-
Activity diagram RICERCA ULTIMI AGGIORNAMENTI
RICHIESTA
SELEZIONORISULTATO
CREOPAGINA
VISUALIZZO
ERRORE
FINERICERCA
[OK] [NOT OK]
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-29-
Activity diagram FORNITORE (swimlines)
FORNITORE
RICEVOMATERIALE
AMMINISTRAZIONEINT ERNA
(GEST ISCE I FORNIT ORI)
REDAZIONECENTRALE
CONSENSO MODIFICOINCREMENTOP ROP OST I
INCREMENT O ACCETTATI
NUOVAISTANZA
CHIUSURAPROCEDURA
BASE DI DATI
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-31-
Activity diagram FORNITORE Dopo aver ricevuto il materiale, si svolgono tre attività in parallelo: - si incrementa il numero di materiale proposto relativamente al fornitore che lo ha proposto - si modifica eventualmente il materiale - si accetta il materiale, e in questo caso si incrementa il materiale accettato relativamente al fornitore che lo ha proposto. Infine si ricongiunge il parallelismo e si crea una nuova istanza. Activity diagram FORNITORE (swimlines) Questo diagramma rappresenta lo stesso contenuto informativo del precedente diagramma FORNITORE, con una ridistribuzione delle attività secondo il metodo delle corsie (swimlines), suddividendo i compiti previsti tra diverse entità agenti. Activity diagram ABBONAMENTO Quando arriva una richiesta per un nuovo abbonamento si controllano i vari parametri. Se tutto va bene si conferma l’abbonamento e si invia un cd-rom in regalo, altrimenti si comunica un errore; si comunica un errore anche in caso di mancato recapito del regalo. In ogni caso si manda si indica che l’elaborazione è terminata. Activity diagram CONSULTAZIONE Quando arriva una richiesta di consultazione si controllano i vari parametri. In caso positivo seleziono i dati, altrimenti mando un segnale di errore. Se tutto va bene visualizzo il risultato, altrimenti si comunica errore. In ogni caso si manda un segnale di conferma per indicare che l’elaborazione è terminata. Activity diagram RICERCA ULTIMI 10 SERVIZI Quando arriva la richiesta di ricerca degli ultimi 10 servizi si selezionano i risultati, si crea la pagina e la si visualizza. Activity diagram RICERCA ULTIMI AGGIORNAMENTI Quando arriva una richiesta degli ultimi aggiornamenti per un particolare argomento, si selezionano i risultati; in caso la ricerca dia esito positivo si crea la pagina e la si visualizza, altrimenti si comunica errore. In ogni caso si manda un segnale di conferma per indicare che l’elaborazione è terminata.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-32-
State charts State chart UTENTE
Nuovo Utente
entry:Inserisci Utente
Richiestanuovo Utente
Dati
CancellaUtente
Stand-by
Richiesta Dati
Fine Richiesta
Fine Inserimento
Modifiche Utente
entry:Modifica Utente
Richiesta Modifica UtenteModifica Terminata
Quando arriva una richiesta di immissione di un nuovo utente si entra nello stato NUOVO UTENTE dove si richiama la funzione Inserisci Utente. Al termine di ciò si passa allo stato STAND-BY; da qui si può uscire con una richiesta di dati e si passa nello stato DATI. Quando la richiesta è terminata si ritorna nello stato STAND-BY. Inoltre con una richiesta di modifica dallo stato STAND-BY si passa nello stato MODIFICA UTENTE dove si richiama la funzione Modifica Utente; alla fine delle modifiche si ritorna in STAND-BY. Con una richiesta di cancellazione dell’utente si esce definitivamente dallo stato STAND-BY.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-33-
State chart FORNITURA MATERIALE
Quando si riceve nuovo materiale si entra nello stato MATERIALE; qui vengono eseguite le funzioni Accetta e Modifica. Se il materiale viene accettato si passa allo stato MATERIALE ACCETTATO. Da qui si può uscire per poi passare nello stato LETTURA se arriva una richiesta di lettura; al termine di ciò si ritorna in MATERIALE ACCETTATO da cui si può uscire definitivamente se vi è una richiesta di cancellazione di materiale.
Materiale
entry:Accetta
Modifica
FornituraMateriale
MaterialeAccettato
Lettura
RichiestaLettura
TermineLettura
CancellazioneMateriale
Accettato
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-34-
State chart ABBONAMENTO
NuovoAbbonamento
entry:Controllo
RichiestaAbbonamento
ControlloFallito
AbbonamentoValido
entry:Invio Regalo
Attesa
do:Riprova Invio
Mancato Recapito
Abbonamento &Regalo
InviatoInviato
CancellazioneAbbonamento
ControlloSuperato
Quando avviene una richiesta per un nuovo abbonamento, si entra nello stato NUOVO ABBONAMENTO; appena entrati si esegue la funzione Controllo. Se il controllo fallisce si esce definitivamente dal diagramma; se invece il controllo da esito positivo si entra nello stato ABBONAMENTO VALIDO. Appena entrati si esegue la funzione Invio Regalo; se l’invio fallisce si passa allo stato ATTESA. Mentre si rimane in questo stato si invoca la funzione Riprova Invio e, quando l’invio è avvenuto, si entra nello stato ABBONAMENTO & REGALO da cui si esce definitivamente con una richiesta di cancellazione dell’abbonamento.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-35-
State chart CONSULTAZIONE
Consultazione
entry:Controllo
RichiestaConsultazione
ControlloFallito
ControlloSuperato
ConsultazioneAcconsentita
entry:Consulta
Attesa
do:Riprova
Consultazione Fallita
ConsultazioneAvvenuta
entry:Visualizza
Consultato
Consultato
Cancellazione
Quando arriva una richiesta di consultazione, si entra nello stato CONSULTAZIONE. Una volta entrati si esegue la funzione Controllo; se il controllo fallisce si esce definitivamente dal diagramma, altrimenti si passa allo stato CONSULTAZIONE ACCONSENTITA. Appena entrati si invoca la funzione Consulta: se fallisce si entra nello stato ATTESA; si esegue la funzione Riprova mentre si rimane in questo stato e, quando il prelievo avviene, si entra nello stato CONSULTAZIONE AVVENUTA dove si invoca la funzione visualizza. Da qui si esce definitivamente con una richiesta di cancellazione della consultazione.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-36-
State chart RICERCA
Quando arriva una richiesta per una ricerca si entra nello stato RICERCA; qui si esegue la funzione Trova Risultato. Se la ricerca da esito positivo si passa allo stato RISULTATO, altrimenti si esce dal diagramma. Appena entrati in questo stato si eseguono le funzioni Impagina e Visualizza. Da qui si esce definitivamente con una richiesta di cancellazione della ricerca.
Ricerca
entry:Trova Risultato
RichiestaRicerca
Ricerca Fallita
Trovato
Risultato
entry:ImpaginaVisualizza
Cancellazione
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-37-
Data flow diagrams Inserisco i data flow diagrams inerenti all’inserimento e alla cancellazione di un cliente perché si ritiene che questo tipo di diagramma illustri in maniera esauriente queste operazioni che non sono state trattate approfonditamente. Data flow diagram INSERIMENTO NUOVO CLIENTE
NUOVOCLIENTE
P ROCEDURANUOVO C L IE NT E
CONT ROLLODATI
GENERAZIONE C ODIC E C L IE NT E
COMUNICAZIONE
ME SSAGGIO E R R OR E
RichiestaInserimento
DatiCliente
[Dati Errati][Cliente già Esistente]]
Messaggio di errore
[Dati Corretti]
Codice Cliente
DATABASE_CLIENTI
Dati_clienti
Quando un cliente non inserito indica che si vuole registrare: la routine di verifica controlla che i dati immessi dal cliente siano corretti. Questa routine interagisce con il database dei clienti e, nel caso i dati siano corretti, genera il codice(username e password) del nuovo cliente. Se invece i dati sono errati o il cliente è già registrato, viene generato un messaggio di errore.
TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002
-38-
Data flow diagram CANCELLAZIONE CLIENTE
CLIENTEREGISTRATO
CONT ROLLO
CodiceCliente
SELEZIONEDATI CLIENTE
COMUNICAZIONE ME SSAGGIO E R R OR E
Messaggio di errore
[Codice ClienteErrato][Dati Corretti]
ELIMINAZIONEDATI CLIENTEI
Dati Cliente
DATABASE_CLIENTI
Codice Cliente
DatiCliente
DatiCliente
Un cliente registrato immette il suo codice che viene controllato da una routine; se i dati sono corretti si esegue il processo che seleziona, dal database dei clienti, i dati del cliente che si vuole cancellare, i quali verranno appunto eliminati. Se il codice del cliente è errato si genera un messaggio di errore.