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)