35
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

Specifiche dei requisiti - progettoatena.it del software/Tesina di...TESINA DI INGEGNERIA DEL SOFTWARE A.A. 2001/2002 -3- Specifiche dei requisiti 1. Introduzione • Scopo:lo scopo

Embed Size (px)

Citation preview

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.