+ All Categories
Home > Documents > Programmazione Doc Gest, Analisi

Programmazione Doc Gest, Analisi

Date post: 02-Jul-2015
Category:
Upload: alartzero
View: 235 times
Download: 3 times
Share this document with a friend
16
ANALISI: 1. Traccia del problema: Si richiede il progetto realizzativo e test di un programma (in Java) per l’organizzazione di documenti in formato digitale (es.PDF). Aggiungere uno o più documenti all’elenco, ciascuno descritto tramite: Numero progressivo Titolo Autore/i Argomento Data pubblicazione Nome del file Elencare, su richiesta, i documenti (ciascuno con le relative informazioni) relativi ad un certo argomento o ad un certo autore; Cercare le informazioni relative ad un certo documento in base al suo titolo, al numero progressivo o ad uno dei suoi autori, consentendo di i. Eliminarlo dall’elenco ii. Modificare le relative informazioni 2. Obiettivo del problema: Viene richiesta la gestione di un archivio di documenti in formato digitale, permettendo nello specifico di elencare, su richiesta, i documenti relativi ad un certo argomento o ad un certo autore e ricercare le informazioni relative ad un certo documento rispetto al titolo, numero progressivo o autore, consentendone la modifica, di determinati dati, o la sua eliminazione. 3. Ambiguità e imprecisioni: Analizzando la realtà del problema sono sorte le seguenti ambiguità ed imprecisioni: non viene specificata la dimensione massima dell’ archivio di documenti; per ovviare a tale problema è stato scelto di fissare tale dimensione a n elementi; nel momento in cui vi è la richiesta di elencazione dei documenti, non è chiaro in che modo questi devono essere visualizzati nel caso in cui la ricerca deve avvenire secondo titolo, autore o argomento; per ovviare a tale problema tutti i documenti verranno visualizzati secondo la loro posizione nell’ archivio; 1
Transcript
Page 1: Programmazione   Doc Gest, Analisi

ANALISI:

1. Traccia del problema:

Si richiede il progetto realizzativo e test di un programma (in Java) per l’organizzazione di

documenti in formato digitale (es.PDF).

• Aggiungere uno o più documenti all’elenco, ciascuno descritto tramite:

Numero progressivo

Titolo

Autore/i

Argomento

Data pubblicazione

Nome del file

• Elencare, su richiesta, i documenti (ciascuno con le relative informazioni) relativi ad

un certo argomento o ad un certo autore;

• Cercare le informazioni relative ad un certo documento in base al suo titolo, al

numero progressivo o ad uno dei suoi autori, consentendo di

i. Eliminarlo dall’elenco

ii. Modificare le relative informazioni

2. Obiettivo del problema:

Viene richiesta la gestione di un archivio di documenti in formato digitale, permettendo

nello specifico di elencare, su richiesta, i documenti relativi ad un certo argomento o ad un

certo autore e ricercare le informazioni relative ad un certo documento rispetto al titolo,

numero progressivo o autore, consentendone la modifica, di determinati dati, o la sua

eliminazione.

3. Ambiguità e imprecisioni: Analizzando la realtà del problema sono sorte le seguenti ambiguità ed imprecisioni:

• non viene specificata la dimensione massima dell’ archivio di documenti; per ovviare

a tale problema è stato scelto di fissare tale dimensione a n elementi;

• nel momento in cui vi è la richiesta di elencazione dei documenti, non è chiaro in che

modo questi devono essere visualizzati nel caso in cui la ricerca deve avvenire

secondo titolo, autore o argomento; per ovviare a tale problema tutti i documenti

verranno visualizzati secondo la loro posizione nell’ archivio;

1

Page 2: Programmazione   Doc Gest, Analisi

• non viene specificato come deve avvenire la ricerca del documento nell’archivio e se

tale ricerca si deve fermare nel momento in cui viene trovato il primo elemento,

oppure se devono essere individuati tutti gli elementi; nella nostra implementazione

la ricerca si ferma al primo elemento trovato ;

• quando viene richiesta la cancellazione, una volta eliminato l’elemento, non è

specificato se l’intera lista di documenti dell’archivio deve essere slittata oppure se

nel successivo inserimento tale spazio viene riempito dal nuovo documento; si è

optato per lo slittamento dei documenti con relativo aggiornamento del numero

progressivo;

• nella modifica delle informazioni del singolo documento non viene specificato se

devono essere modificati tutti i campi di tale documento, oppure alcuni di essi; per

ovviare a tale problema viene consentita la modifica di tutti i campi del documento;

• non viene specificato la struttura intera del file archivio che deve contenere i

documenti;

• non è esplicitato se l’archivio è gia creato o se deve essere creato ex novo;

• non è specificato se tale archivio deve risiedere su supporto fisico o su supporto

volatile.

4. Output:

Una lista composta da uno o più documenti gestiti secondo un determinato parametro fissato

che garantirà l’univocità di ogni singolo elemento. Tale campo sarà il campo numero

progressivo.

Ogni documento viene descritto da un campo contenente un numero progressivo che ne

rappresenta la sua univocità, da un campo titolo che ne descrive la dominazione, il campo

autore che contiene appunto le informazioni sull’identità dell’autore del documento, il

campo argomento che contiene il contenuto di carattere generale, il campo data

pubblicazione che contiene il giorno, il mese e l’anno di sottoscrizione del documento, e il

campo nome file che contiene il nome e l’estensione con cui viene memorizzato sul

supporto fisico.

Nel caso in cui vi è la richiesta di elencazione dei documenti secondo un determinato

campo, viene creata una lista di documenti facendo in modo che ne vengano visualizzati

tutti i dati relativi.

Sarà permesso l’aggiornamento della lista mediante le operazioni di cancellazione o

modifica in base ad un attributo del documento scelto dall’utente.

2

Page 3: Programmazione   Doc Gest, Analisi

5. Punti Chiave:

Dominio dei dati:

• Numero progressivo, numero intero, [0…n] dove n indica il numero massimo di

documenti, identifica i documenti in maniera univoca; l’ordinamento scelto è

crescente;

• Titolo, Stringa[0…25caratteri], identifica il documento in maniera generale;

• Autore/i, Stringa[0…25caratteri], identifica il/i creatore/i del documento;

• Argomento, Stringa[0…25caratteri], identifica il contenuto del documento;

• Data di Pubblicazione, Stringa, identifica il giorno, il mese e l’anno di pubblicazione

del documento;

• Nome del file,Stringa[0…25caratteri], identifica in maniera univoca il path del file.

Risultati:

• Lista i cui campi sono stati descritti sopra, ordinati in maniera crescente in base al

numero progressivo;

• Singolo elemento preso dell’ archivio, che risponde alle specifiche definite

dall’utente, consentendone la modifica o la cancellazione dei suoi campi.

6. Errori e casi limite:

Ci possono essere errori relativi all’input di ciascun campo, come ad esempio argomenti

vuoti o assegnazioni di valori che non appartengono al dominio di definizione del campo

relativo; per ovviare a tale problema saranno previsti dei check di validità su ogni campo del

documento nel momento dell’ inserimento.

Nel momento in cui ci saranno più di n elementi nella lista ci sarà un controllo che non

permetterà l’inserimento di ulteriori elementi da parte dell’ utente.

L’archivio dei documenti può non contenere alcun documento, in questo caso viene inviato

un opportuno messaggio di diagnostica all’utente.

Nella ricerca di un documento secondo un determinato parametro, possiamo non avere alcun

documento che risponde a quella chiave di ricerca. Anche in questo caso l’utente verrà

informato di questo risultato.

3

Page 4: Programmazione   Doc Gest, Analisi

PROGETTAZIONE

• Problema: Inserimento di un nuovo documento nell’archivio.

• Input: Titolo, Autore/i, Argomento, Data Pubblicazione, Nome del file

• Output: File Archivio;

• Organizzazione inserimento:

Nella fase di inserimento il numero progressivo viene definito in maniera automatica

dal programma.

Su ogni campo vengono effettuati i seguenti controlli:

Per i campi stringa viene controllato che tale campo non sia vuoto o che non

superi la sua capacità (pari a 25 caratteri).

Per il campo data pubblicazione vengono controllati i range prestabiliti per i

giorni, i mesi e gli anni; in particolare il giorno deve essere compreso tra 1 e

31, il mese deve essere compreso tra 1 e 12 mentre l’anno deve essere

compreso tra il 1800 e il 2007)

• Il file deve essere ad accesso casuale per permettere di accedere direttamente a un

determinato documento.

ALGORITMO(inserimento)

Dimensione quanti elementi ci sono nel file

Numero progressivo Dimensione

Ripeti

Leggi il campo Titolo

Finche ((Titolo==0)||(Titolo>=25))

Ripeti

Leggi il campo Autore

Finche ((Autore==0)||(Autore>=25))

Ripeti

Leggi il campo Argomento

Finche ((Argomento==0)|| (Argomento>=25))

Ripeti

4

Page 5: Programmazione   Doc Gest, Analisi

Leggi il campo Nome File

Finche ((Nome File==0)|| (Nome File>=25))

Ripeti

Leggi campo Data pubblicazione

Seleziona il giorno

Seleziona il mese

Selezione dell’anno

Finche ((((giorno>31)||(giorno<1)) || ((mese<1)||(mese>12))) || ((anno>2007) ||(anno<1800)))

Posizioniamo il carrello alla posizione di numero progressivo

Scriviamo tutti i campi nella posizione di numero progressivo

Dimensione Dimensione+1

Chiudiamo il file aperto in scrittura

• Problema: Elencare i documenti inerenti ad argomento o ad un certo autore.

• Input: Argomento, Autore, File Archivio,Scelta

• Output: Tutti i campi del documento

• Organizzazione elenco documenti:

Vengono fatti visualizzare tutti i campi del documento in maniera consecutiva

,ordinati secondo il campo numero progressivo.

Nel caso in cui il documento non è presente all’interno dell’archivio, l’utente sarà

avvisato mediante un messaggio a video.

• Per permettere l’elencazione dei documenti utilizziamo una ricerca di tipo sequenziale,

effettuando uno screening di tutto il file in base alla chiave di ricerca , inviando quindi in

output tutti gli elementi trovati e le informazioni associate.

ALGORITMO(elencazione)

Leggi il contenuto del campo scelto

Contatore 0

Test Falso

Fintanto che (Contatore<Dimensione)

Leggi il documento dal file in posizione Contatore

Se (Documento. campo scelto == campo scelto)

Allora Stampa tutti i campi del documento a video

5

Page 6: Programmazione   Doc Gest, Analisi

Test Vero

Contatore Contatore+1

Chiudiamo il file aperto in lettura

Se (Test == Falso)

Allora Avvisa l’utente che non e presente il documento nell’archivio con il campo

selezionato

• Problema: Cercare le informazioni relative ad un documento in base a titolo, numero

progressivo o autori consentendo quindi l’eliminazione dall’elenco oppure la modifica delle

informazioni associate.

• Input: Titolo, Numero progressivo, Autore, File Archivio, Scelta;

• Output: File Archivio;

• Organizzazione Ricerca:

Effettuiamo una ricerca sequenziale in cui sarà preso in considerazione solo il primo

elemento trovato; nel caso in cui la ricerca dia esito positivo, avviseremo l’utente del

risultato.

A questo punto all’utente saranno consentite due operazioni:

eliminazione dell’elemento

modifica dati

In caso di eliminazione del documento verrà utilizzato un file di appoggio che ci

consentirà l’aggiornamento del vecchio archivio.

Nel caso in cui la ricerca venga effettuata secondo il numero progressivo,

utilizzeremo il carrello del file per posizionarci direttamente sul documento da

manipolare.

ALGORITMO(ricerca)

Leggi il campo selezionato

Test Falso

Contatore 0

Fintanto che ((Contatore<Dimensione) && (!Test))

Leggi documento dall’ archivio in posizione Contatore

Se (Documento. campo selezionato==campo scelto)

Allora Test Vero

6

Page 7: Programmazione   Doc Gest, Analisi

Leggi scelta

Se (scelta==”M”)

Allora Modifica

Se(scelta==”E”)

Allora Eliminazione

Contatore Contatore+1

Se (Test==Falso)

Allora Avvisa l’utente che non e presente il documento nell’archivio con il

campo selezionato

Chiudere il file

ALGORITMO(eliminazione)

Apriamo un file in appoggio in scrittura

Contatore 0

Fintanto che (Contatore<numero progressivo del documento da eliminare)

Leggi il documento dal file principale in posizione contatore

Scrivi il documento nel file di appoggio in posizione contatore

Contatore Contatore+1

Contatore Contatore+1

Se il contatore non ha superato la dimensione dell‘ archivio

Allora

Fintato che(Contatore<Dimensione del file principale)

Leggi il documento dal file principale in

posizione contatore

Scrivi il documento nel file di appoggio in

posizione contatore-1 aggiornando in numero

progressivo

Ricopiamo il file di appoggio nel file principale

Diminuiamo la dimensione del file principale

Chiudiamo il file di appoggio

7

Page 8: Programmazione   Doc Gest, Analisi

ALGORITMO(modifica)

Richiamiamo l’algoritmo di inserimento passando come parametro il numero progressivo

del documento da modificare

• Archivio: File ad accesso casuale

TOP-DOWN

DocGest

Inserimento

Elenco Ricerca

Eliminazione

Modifica

TEST Per eseguire i test si e scelto il metodo a scatola nera e quindi le seguenti classi di equivalenza:

Per l’operazione di inserimento avremo:

Classe 1 :

Input : file vuoto e gli elementi da inserire

Output : file aggiornato con i nuovi elementi

Fig 1.1 Il file archivio è vuoto e non

contiene documenti

8

Page 9: Programmazione   Doc Gest, Analisi

Fig 1.2 Vengono presi in input i campi del documento

Fig 1.3: Il file archivio viene aggiornato non i valori inseriti in input

Classe 2 :

Input : file contente documento non completamente pieno e elementi da inserire

Output : file con aggiunti in coda i nuovi elementi

Fig 2 Il file archivio contiene un documento e nel momento dell’ inserimento in nuovo documento

viene inserito in cosa.

9

Page 10: Programmazione   Doc Gest, Analisi

Classe 3 :

Input : file completamente pieno e elementi da inserire

Output : non viene consentita l’operazione di inserimento

Fig 3 Nel caso di archivio pieno sono consentite soltanto queste operazioni

Classe 4 :

Input : file inesistente

Output : file creato

Fig4.1 Il file archivio non esiste nella directory del programma

Fig. 4.2 Il file viene creato nella directory e viene dato un messaggio

10

Page 11: Programmazione   Doc Gest, Analisi

Classe 5:

Input : campo titolo non conforme alle specifiche

Output : reinserimento del campo

Fig 5 Viene prima inserito un campo vuoto, poi un campo con un numero di caratteri superiore e 25

e poi uno compreso tra 0 e 25 caratteri.

Classe 6:

Input : campo argomento non conforme alle specifiche

Output : reinserimento del campo(come per il caso del titolo)

Classe 7:

Input : campo nome del file non conforme alle specifiche

Output : reinserimento del campo(come per il caso del titolo)

Classe 8:

Input : campo data pubblicazione non conforme alle specifiche

Output : reinserimento del campo(come per il caso del titolo)

Classe 9:

Input : campo autore non conforme alle specifiche

Output : reinserimento del campo(come per il caso del titolo)

Per l’ operazione di elencazione avremo:

Classe 1:

Input : il file possiede più elementi,di cui molti hanno il campo scelto

Output : tutti gli elementi trovati con quel parametro

Fig 1 Nell’archivio sono presenti 2 documento che rispondono al campo argomento sotto il nome

“MANUALE JAVA”

11

Page 12: Programmazione   Doc Gest, Analisi

Classe 2 :

Input : il file possiede più elementi ma un solo elemento con il campo scelto

Output : l’elemento trovato

Fig 2 L’archivio contiene due documenti e uno solo di questi ha per campo Argomento il

nominativo “MANUALE JAVA”

Classe 3 :

Input : il file possiede più elementi nessuno dei quali contiene il

parametro scelto

Output : messaggio a video del documento non presente

Fig 3 Nel caso in cui non e presente un documento che risponde a quel campo viene mandato a

video un messaggio.

Classe 4 :

Input : il file contiene un solo elemento che contiene il parametro scelto

Output : l’elemento trovato

Fig 4 Il file archivio contiene un documento con campo argomento che risponde al nominativo di

“MANUALE JAVA”

12

Page 13: Programmazione   Doc Gest, Analisi

Classe 5:

Input: il file contiene un solo elemento che non contiene il parametro scelto

Output:messaggio a video del documento non presente

Fig 5 Nell’ archivio di un solo elemento è presente un documento che non risponde al campo dato

in input.

Per l’operazione di ricerca avremo:

Classe 1:

Input : il file possiede più elementi,di cui molti hanno il campo scelto

Output : il primo degli elementi trovati

Fig 1 Nell’archivio sono presenti documenti aventi lo stesso titolo,viene analizzato solo il primo

degli elementi

Classe 2 :

Input : il file possiede più elementi ma un solo elemento con il campo scelto

Output : l’elemento trovato

Fig 2 Nell’archivio sono presenti dei documenti ma solo uno di loro risponde al campo prescelto

13

Page 14: Programmazione   Doc Gest, Analisi

Classe 3 :

Input : il file possiede più elementi nessuno dei quali contiene il

parametro scelto

Output : messaggio a video del documento mancante

Fig 3 Nell’ archivio sono presenti dei documenti,pero nessuno di loro risponde al parametro preso

in input, per questo ne viene visualizzato un messaggio di avviso.

Classe 4 :

Input : il file contiene un solo elemento che contiene il parametro scelto

Output : l’elemento trovato

Fig 4 Nell’archivio è presente un solo documento che risponde al parametro preso in input

Classe 5 :

Input : il file contiene un solo elemento che non e il valore cercato

Output : elemento non trovato

Fig 5 Nell’archivio è presente un solo documento che non risponde al parametro preso in input

14

Page 15: Programmazione   Doc Gest, Analisi

Per l’ operazione di eliminazione:

Classe 1:

Input : l’elemento da eliminare si trova all’ interno del file

Output : eliminiamo il documento dal file

Fig 1.1 Nell’archivio sono presenti dei documenti

Fig 1.2 Dopo l’eliminazione, nell’ archivio sono presenti i restanti documenti

Classe 2:

Input : l’elemento da eliminare si trova in coda al file

Output : eliminiamo il documento dal file(come per la classe 1)

Classe 3:

Input : il file contiene un solo elemento e risponde al parametro definito

Output : il file risulta vuoto

Fig 3.1 Il file archivio contiene un solo documento

15

Page 16: Programmazione   Doc Gest, Analisi

Fig 3.2 Dopo l’eliminazione dell’elemento il file archivio risulta vuoto e per questo vi e consentito

solo l’inserimento di un nuovo elemento

Per l’operazione di modifica:

Classe 1:

Input:elemento da modificare si trova all’interno del file

Output:vengono modificati i campi di quel documento

Fig 1.1 Sono presenti dei documenti all’interno dell’archivio

Fig 1.2 Nel momento della modifica dei dati vengono fatti visualizzare prima tutti i vecchi campi

del documento e poi vengono richiesti i nuovi campi del documento

16


Recommended