Progetto di un multivocabolario linguistico. Documentazione del

CONSIDERAZIONI SUI COSTI DI SVILUPPO DEL PROGETTO
La determinazione dello sforzo di sviluppo del software, in termini di costo
(mesi-uomo) e tempo complessivo , costituisce una fase fondamentale della
progettazione del software.
Gli strumenti utilizzati in questa fase di pianificazione sono :
- Function Points analisys
- Construnctive Cost Model (Cocomo)
Partendo dalle specifiche formali del problema si sono individuati i punti
funzione del progetto.
La stima dei mesi-uomo e la durata della fase di sviluppo si ottengono con il
metodo Cocomo, ma per utilizzare tale metodo è necessario conoscere in
anticipo il numero delle linee di codice.
Tale dato, ovviamente sconosciuto nella fase iniziale di pianificazione, è stato
ottenuto mediante coefficienti di backfire, considerando JAVA come linguaggio
di sviluppo.
La realizzazione del progetto complessivo ha previsto 4 cicli di spirale.
Per ciò che riguarda la mnautenzione evolutiva, le funzionalità aggiunte in ogni
nuova fase, non hanno modificato né cancellato le funzionalità esistenti, ma si
sono integrate alla struttura già realizzata.
Per ciascun ciclo si sono determinate le specifiche dei dati e le specifiche
applicative andando così ad individuare le entità coinvolte nel progetto.
E' stato inoltre delineato il confine dell'applicazione a ciascuna iterazione,
indispensabile per l'individuazione dei file logici interni, dei file di interfaccia
esterna e delle relazioni esistenti fra le entità coinvolte nel progetto.
Si è scelto JAVA come linguaggio di programmazione per la realizzazione del
progetto. Esso ha un coefficiente di backfiring pari a 30, che lo rende molto
vicino alla rapida copertura delle funzionalità richieste dal progetto.
Nella stima della determinazione dello sforzo di sviluppo si è adottato il modello
COCOMO base e organico (interamente basato sulle linee di codice LOC).
ANALISI DEL PROGETTO AL PRIMO GIRO DI SPIRALE
Le specifiche di progetto per la prima fase sono:
- realizzazione del MV a struttura parametrica e riusabile
- traduzione semplice di un termine
- traduzione con descrizione
- statistiche del sistema
Analisi dei punti funzione
Specifiche dei dati
La gestione del MultiVocabolario(Lingue) prevede che per ogni parola
memorizzata in ciascun dizionario vengano mantenute le seguenti informazioni:
-
termine
classificazione
descrizione
Il database della struttura MultiVocabolario(Lingue) per ogni termine mantiene
la corrispondente traduzione nelle lingue supportate:
-
italiano
inglese
francese
portoghese
tedesco
(dominio1)
(dominio2)
(dominio3)
(dominio4)
(dominio5)
Per gestire le statistiche del sito si mantengono le seguenti informazioni:
-
numero dei termini
letture effettuate
ultimo accesso
ultimo azzeramento
Specifiche applicative
L’utente che si collega al sito di Oracolo può richiedere la semplice traduzione
della parola di interesse, specificando la lingua di origine e la lingua di
destinazione, entrambe vengono selezionate mediante un menu a tendina.
Inoltre l'utente selezionando l'apposita casella, può richiedere la descrizione
della parola inserita: in tal caso Oracolo provvederà ad individuare la
descrizione della parola nell'opportuno dizionario.
Ogni utente può controllare le statistiche del sito. I dati sono memorizzati nel
database di gestione del sito di Oracolo.
CONFINE DELL'APPLICAZIONE AL PRIMO CICLO DI SPIRALE
UTENTE
UTENTE
TRADUZIONE
AMMINISTRAZIONE
ORACOLO
STATISTICHE
Uso MV(Lingue)
Database
Termini
Dizionari
Italiano
Inglese
Francese
Portoghese
Tedesco
Identificazione Internal Logical File (ILF) ed External Interface File (EIF)
- ILF parola
RET 1
DET 3
- ILF lingue
RET 1
DET 5
- ILF statistiche
RET 1
DET 4
Determinazione della complessità:
3 ILF a complessità BASSA(peso 7)  21
Identificazione External Inquiries (EQ)
Sono state individuate le 3 interrogazioni esterne:
Traduzione: la semplice traduzione di una parola inserendo il termine, la lingua
di origine e la lingua di destinazione. Nell'input non si fa riferimento ad alcun
file ma è fornito direttamente dall'utente che riempie i 3 campi nel form html.
Traduzione con descrizione: l'utente richiede insieme alla semplice traduzione
della parola anche il suo significato (descrizione). L'input è costituito dai 4
campi del form html inseriti dall'utente. Gli outputs traduzione e descrizione
provengono dai due database.
Statistiche: l'utente accede alle statistiche del sistema mediante un link nella
home page del sito Oracolo.
- Traduzione
- Traduzione
- Traduzione con descrizione
- Traduzione con descrizione
- Statistiche
- Statistiche
input
output
input
output
input
output
Determinazione della complessità:
Traduzione: BASSA
Traduzione con descrizione: BASSA
Statistiche: BASSA
3 EQ a complessità BASSA(peso 3)  9
Quadro riassuntivo dei FP non pesati:
1.
2.
3.
4.
5.
Funzioni
Funzioni
Funzioni
Funzioni
TOTALE
dati ILF EIF
EI
EO
EQ
 21
 0
 0
 9
30
FTR
FTR
FTR
FTR
FTR
FTR
0
1
0
2
0
1
DET 3
DET 1
DET 4
DET 2
DET 1
DET 4
Caratteristiche generali del sistema
Ulteriori caratteristiche generali del sistema, necessarie per la valutazione del
Fattore di Aggiustamento:
1. L'applicazione è più di un front-end, ma supporta un solo tipo di protocollo di
comunicazione TP
2. La distribuzione di dati ed elaborazioni è interattiva e bidirezionale
3. Sono stati dichiarati requisiti prestazionali e di progettazione che non
comportano azioni particolari
4. Limitazioni operative esplicite impongono per l'applicazione vincoli particolari
sull'unità centrale, ovvero un elaboratore dedicato. In aggiunta, vi sono
vincoli particolari per l'applicazione nei componenti distribuiti del sistema
5. Non è previsto un periodo di picco delle transazioni
6. Le transazioni per l'inserimento dati in modalità interatttiva sono tipiche di
un'applicazione on-line (> 30%)
7. I requisiti di efficienza dichiarati dall'utente finale sono abbastanza forti da
richiedere strumenti e procedure particolari
8. In questa release del prodotto non è previsto nessun aggiornamento on-line
dei file ILF.
9. E' prevista una scarsa complessità elaborativa per l'applicazione
10. L'applicazione è stata appositamente realizzata e/o documentata per un
facile riuso, inoltre è personalizzabile dall’utente a livello di codice.
11. L'utente non ha espresso considerazioni particolari, e l'installazione non
richiede speciali inizializzazioni
12. L'applicazione è disegnata per operazioni non presidiate
13. Nella progettazione è stata considerata la necessità di più siti, e
l'applicazione è progettata per operare in ambienti hardware e software
differenti
14. L’applicazione presenta una media facilità di modifica.
Caratteristica
Grado
1.
Comunicazione dati
2.
Distribuzione dell’elaborazione
3.
Prestazioni
4.
Utilizzo intensivo della configurazione
5.
Frequenza delle transazioni
6.
Inserimento dati interattivo
7.
Efficienza per l’utente finale
8.
Aggiornamento interattivo
9.
Complessità elaborativa
10. Riusabilità
11. Facilità di installazione
12. Facilità di gestione operativa
13. Molteplicità di siti
14. Facilità di modifica
Totale TDI



TDI = 39
Value Adjustment Factor = 0.65 + ( 0.01 * TDI ) = 1.04
AFP = 30 * 1.04 = 31.2
Analisi con COCOMO
Determinazione delle linee di codice
Coefficiente di backfiring per JAVA = 30
COMPLESSITA':
1. problema a bassa complessità elaborativa: 1
2. strutture dati complesse e correlate: 4
3. codice molto strutturato, con moduli riusabili: 2
Totale: 7
Coeff. di aggiustamento  0,7 + 0,05 ( 7 - 3 ) = 0.9
Coeff. di applicazione  30 * 0,9 = 27
Dimensione dell'applicazione: 27 * 31,2 = 840 LOC
Determinazione dello sforzo
Applicazione del metodo di COCOMO su base semplice:

1,05
2,4 X 0,84
=
2 MM

2,5 X
0,38
2
=
3,2 M
4
4
1
5
0
5
5
0
0
4
0
5
3
3
39
ANALISI DEL PROGETTO AL SECONDO GIRO DI SPIRALE
Le specifiche del progetto per la seconda fase sono:
- traduzione e ricerca delle parole con tutte le opzioni
- ricerca di parole simili, usando caratteri wildcards
- i collaboratori possono accedere al sistema in remoto
- i collaboratori (linguisti) possono inserire parole nel dizionario
Analisi dei punti funzione
Specifiche dei dati
Le strutture dati utilizzate non sono cambiate dalla prima fase del progetto, però
ad esse si sono aggiunte le strutture dati necessarie al riconoscimento dei
collaboratori. Per ogni collaboratore si mantengono le informazioni:
-
nome
cognome
e-mail address
qualifica
password
Le informazioni sui collaboratori sono memorizzate in un apposito database.
Specifiche applicative
L'interfaccia utente-sistema della funzione di traduzione è stata migliorata:
permettendo all'utente di inserire la parola da tradurre utilizzando anche degli
eventuali wildcards.
E' inoltre possibile inserendo una parola contenente dei caratteri wildcards
ricercare la lista di parole simili contenute nei vari dizionari specificati.
Da questa seconda fase di sviluppo è prevista la presenza di un nuovo soggetto
il collaboratore linguista. Il linguista collabora con il sistema direttamente in
remoto: accedendo alla sezione inserimenti dopo una procedura di
riconoscimento (password). Ad esso spetta il compito di arricchire i dizionari
con nuove parole.
CONFINE
SPIRALE
DELL'APPLICAZIONE
AL
SECONDO
CICLO
DI
UTENTE
UTENTE
UTENTE
LINGUISTA
RICERCA
TRADUZIONE
AMMINISTRAZIONE
INSERIMENTO
STATISTICHE
ORACOLO
Uso MV(Lingue)
Database
Termini
Dizionari
Italiano
Inglese
Francese
Portoghese
Tedesco
Identificazione Internal Logical File (ILF) ed External Interface File (EIF)
Le informazioni sui collaboratori prevedono :
- ILF
collaboratore
RET 1
DET 5
Determinazione della complessità:
1 ILF a complessità BASSA(peso 7)  7
Identificazione External Inputs (EI)
Sono state aggiunte 2 nuove funzionalità:
Inserimento parola(MV) : il collaboratore linguista inserisce nel database del
MultiVocabolario la nuova parola, riempiendo fino ad un massimo di 5 campi.
Inserimento parola(dizionario) : il collaboratore inserisce nei dizionari la nuova
parola e la relativa descrizione.
Determinazione della complessità:
- Inserimento parola(MV)
FTR 1
- Inserimento parola(dizionario) FTR 5
DET 5
DET 2
Inserimento parola(MV): BASSA(peso 3)
Inserimento parola(dizionario): ALTA(peso 6)
2 EI con complessità totale  9
Identificazione External Inquiries (EQ)
Sono state aggiunte 3 nuove interrogazioni esterne:
Traduzione con wildcards : è stata migliorata la funzione di traduzione,
consentendo all'utente di non specificare interamente la parola da tradurre.
Traduzione con descrizione e wildcards
entrambe le caratteristiche
: simile alle precedenti, ma con
Ricerca parole simili : l'utente può ricercare nei vari dizionari parole simili a
quella inserita. L'input è fornito dall'utente, l'output proviene dai database del
sistema.
Accesso collaboratore : il collaboratore inserisce da tastiera i propri dati di
riconoscimento, il sistema controlla la validità dei dati nel database di
identificazione ed eventualmente garantisce l'accesso.
-
Traduzione con wildcards
Traduzione con wildcards
Traduzione descr. wildc.
Traduzione descr. wildc.
Ricerca parole simili
input
FTR 0
output FTR 1
input
FTR 0
output FTR 2
input
FTR 0
DET
DET
DET
DET
DET
3
1
4
2
2
- Ricerca parole simili
- Accesso collaboratore
- Accesso collaboratore
output FTR 1
input
FTR 0
output FTR 1
Determinazione della complessità:
Traduzione con wildcards: BASSA
Traduzione descr. wildc.
BASSA
Ricerca parole simili
BASSA
Accesso collaboratore
BASSA
4 EQ a complessità BASSA(peso 3) 
DET 1
DET 5
DET 0
12
Quadro riassuntivo degli FP non pesati:
1.
2.
3.
4.
5.
Funzioni
Funzioni
Funzioni
Funzioni
TOTALE
dati ILF EIF
EI
EO
EQ
 7
 9
 0
 12
28
Caratteristiche generali del sistema
Ulteriori caratteristiche del sistema, necessarie per la valutazione del Fattore di
Aggiustamento :
Caratteristica
Grado
1. Comunicazione dati
2. Distribuzione dell'elaborazione
3. Prestazioni
4. Utilizzo intensivo della configurazione
5. Frequenza delle transazioni
6. Inserimento dati interattivo
7. Efficienza per l'utente finale
8. Aggiornamento interattivo
9. Complesstità elaborativa
10. Riusabilità
11. Facilità di installazione
12. Facilità di gestione operativa
13. Molteplicità di siti
14. Facilità di modifica
Totale TDI



TDI = 42
Value Adjustment Factor = 0.65 + ( 0.01 * TDI ) = 1.07
AFP = 28 * 1.07 = 30
4
4
1
5
0
5
5
3
0
4
0
5
3
3
42
Analisi con COCOMO
Determinazione delle linee di codice
Coefficiente di backfiring per JAVA = 30
COMPLESSITA':
1. problema a bassa complessità elaborativa: 1
2. strutture dati complesse e correlate: 4
3. codice molto strutturato, con moduli riusabili: 2
Totale: 7
Coeff. di aggiustamento  0,7 + 0,05 ( 7 - 3 ) = 0.9
Coeff. di applicazione  30 * 0,9 = 27
Dimensione dell'applicazione: 27 * 30 = 810 LOC
Determinazione dello sforzo
Applicazione del metodo di COCOMO su base semplice:

1,05
2,4 X 0,81

2,5 X
0,38
1,9
=
1,9 MM
=
3,1 M
(Mesi uomo)
(Tempo complessivo)
ANALISI DEL PROGETTO AL TERZO CICLO DI SPIRALE
Le specifiche del progetto per la terza fase sono:
- gli utenti possono inserire nuove parole nei dizionari (inserimenti sospetti)
- i collaboratori linguisti controllano gli inserimenti sospetti e inseriscono le
parole corrette nel dizionario affidabile
Analisi dei punti funzione
Specifiche dei dati
Per gestire gli inserimenti di parole da parte degli utenti viene creato un
dizionario di termini sospetti (dizionario inaffidabile). Le informazioni di
questo dizionario hanno la seguente struttura:
-
lingua
termine
descrizione
applicazione
Specifiche applicative
La terza fase del progetto è caratterizzata dall'introduzione di una nuova
funzionalità: l'inserimento dei termini da parte degli utenti. Le nuove parole
inserite (inserimenti sospetti) vengono memorizzate in un dizionario
temporaneo (dizionario inaffidabile) .
I linguisti sottopongono a controllo i
termini del dizionario inaffidabile. In caso di parole corrette e non presenti nel
MultiVocabolario di Oracolo ne provvedono al loro inserimento.
Gli utenti accedono al sistema inserendo i propri dati (nome, cognome, e-mail)
e specificando nel campo qualifica utente.
CONFINE DELL'APPLICAZIONE AL TERZO CICLO DI SPIRALE
UTENTE
UTENTE
UTENTE
LINGUISTA
RICERCA
TRADUZIONE
AMMINISTRAZIONE
INSERIMENTO
STATISTICHE
ORACOLO
Uso MV(Lingue)
Database
Termini
Dizionario
Inaffidabile
Dizionari
CONTROLLO
Italiano
Inglese
Portoghese
LINGUISTA
Francese
Tedesco
Identificazione Internal Logical File (ILF) ed External Interface File (EIF)
Le informazioni sui termini sospetti prevedono:
- ILF termine sospetto
RET 1
DET 4
Determinazione della complessità:
1 ILF a complessità BASSA(peso 7)  7
Identificazione External Inputs (EI)
E' stata aggiunta la seguente funzionalità:
Inserimento termine sospetto : l'utente inserisce nel dizionario inaffidabile il
termine sospetto. Sono presenti 4 campi.
Determinazione della complessità:
- Inserimento termine sospetto
FTR 1
DET 4
1 EI con complessità BASSA(peso 3)  3
Identificazione External Inquiries (EQ)
E' stata aggiunta una nuova interrogazione esterna:
Controllo termine sospetto: il collaboratore preleva dal dizionario inaffidabile i
termini sospetti, li controlla ed eventualmente li inserisce nel MultiVocabolario.
Controllo termine sospetto
Controllo termine sospetto
input
output
FTR 1
FTR 2
DET 4
DET 3
Determinazione della complessità:
Controllo termine sospetto : BASSA
1 EQ a complessità BASSA(peso 3)  3
Quadro riassuntivo degli FP non pesati:
1. Funzioni dati ILF EIF
 7
2. Funzioni EI
 3
3. Funzioni EO
 0
4. Funzioni EQ
 3
5. TOTALE
13



TDI = 42
Value Adjustment Factor = 0.65 + ( 0.01 * TDI ) = 1.07
AFP = 13 * 1.07 = 14
Analisi con COCOMO
Determinazione delle linee di codice
Coefficiente di backfiring per JAVA = 30
COMPLESSITA':
1. problema a bassa complessità elaborativa: 1
2. strutture dati complesse e correlate: 4
3. codice molto strutturato, con moduli riusabili: 2
Totale: 7
Coeff. di aggiustamento  0,7 + 0,05 ( 7 - 3 ) = 0.9
Coeff. di applicazione  30 * 0,9 = 27
Dimensione dell'applicazione: 27 * 14 = 400 LOC
Determinazione dello sforzo
Applicazione del metodo di COCOMO su base semplice:

1,05
2,4 X 0,4

0,38
0,9
2,5 X
=
0,9 MM
=
2,4 M
(Mesi uomo)
(Tempo complessivo)