Comments
Transcript
IT Project Management - Lezione 4 - Stima della Size
Software Size Estimation IT Project Management Lezione 4 – Software Sizing Estimation Federica Spiga A.A. 2009-2010 1 Stima del software Concezione Prima Stima Analisi & Design Raffinamento della Stima Test Implementazione Raffinamento della Conteggio Stima e conteggio della parte già sviluppata Incertezza Rilascio Analisi post mortem Incertezza E’ necessario stimare l’effort in più momenti: • Durante la fase di Concezione del progetto per dare un prezzo al cliente => E’ il momento più critico perchè si deve fissare un prezzo quando i requirement non sono del tutto chiariti •Durante il progetto per raffinare la stima •Alla fine per progetto per verificare lo scostamento tra “planned” e “actual” 2 1 Software Size Estimation Incertezza della stima 3 Richiami sui metodi di stima Non esiste un metodo semplice per effettuare una stima precisa dell’effort necessario per sviluppare un sistema software • Le stime iniziali si basano su informazioni inadeguate (ad esempio, la definizione dei requisiti utente) •Le persone che lavorano al progetto possono essere non note a priori •Le stime dei costi del progetto possono essere auto-verificate • La stima definisce il budget e il prodotto viene modificato per rispettare il budget •Ogni metodo ha punti di forza e debolezze •La stima dovrebbe basarsi su molti metodi •Se i metodi non restituiscono approssimativamente lo stesso risultato, si hanno informazioni insufficienti per poter effettuare una stima •Si cerca di ottenere ulteriori informazioni e quindi eseguire stime più precise 4 2 Software Size Estimation Tecniche di stima Giudizio dell’esperto: Si consulta un esperto del dominio e delle tecniche di sviluppo che fornisce le stime dell’effort in base alla propria esperienza Il giudizio di esperti (Metodo Delphi):. Il metodo Delphi consiste in un processo di stima collettiva che avviene in modo strutturato e progressivo. Viene formato un gruppo di stimatori. Ogni stimatore riceve le medesime informazioni di partenza sul progetto e stima l'effort, indipendentemente e in modo anonimo. Un coordinatore raccoglie le stime, elabora dati di sintesi (medie, minimi, massimi, …) e le presenta per confronto agli stimatori. Viene effettuata un'analisi congiunta, che porta tendenzialmente allo scarto dei valori estremi, e favorisce l'approfondimento dei fattori critici. Il giro di stima successivo conduce generalmente ad una convergenza delle stime. Stima per analogia: si stima la size o l’effort sfruttando le analogie con progetti precedenti o utilizzando database pubblici che contengono dati storici (ISBSG) Modello algoritmico: utilizza algoritmi matematici per calcolare l’effort a partire dalle dimensioni del software, es COCOMO 5 Tecniche di stima – alcuni commenti il PMBOK ordina le tecniche per la stima della durata delle attività di un progetto per preferenza e maggiore utilizzo 1. expert judgement (singolo o Delphi) 2. stima per analogia (analogous estimating) 3. Criterio quantitativo (quantitatively based durations), dato dalla moltiplicazione di una qualsivoglia unità di conteggio tecnica per il livello medio di produttività. Però negli ultimi 25 anni la comunità dell’Ingegneria del Software ha indirizzato notevoli sforzi al tema della stima. La diffusione ed applicazione di modelli basati sull’analisi di regressione quali COCOMO per esempio utilizza una relazione tra effort e size : Effort= f(size) Quindi un punto di partenza per il calcolo dell’effort è la size del software 6 3 Software Size Estimation Metriche per il dimensionamento del software •Esistono vari tipi di metriche per il dimensionamento del software •Metriche dimensionali •Metriche funzionali •Metriche Object Oriented 7 7 Metriche dimensionali •Forniscono una misurazione “diretta” del software. Definiscono le dimensioni del prodotto software in funzione del numero di occorrenze di un determinato oggetto generato nel processo di sviluppo. Le più usate sono: •Linee di Codice (LOC) •Numero di Programmi •Altre (numero report, numero strutture dati, ecc) Vantaggi: •Facilità nel calcolo Svantaggi •Non si possono usare nelle fasi alte del progetto di sviluppo •Le misure ottenute sono poco significative per valutare l’efficienza del processo di sviluppo, in quanto sono condizionate da fattori: •Soggettivi (es. stile del programmatore) •Tecnologici (es. linguaggio usato) •Architetturali 8 8 4 Software Size Estimation Metriche funzionali Forniscono una misurazione “indiretta” del software. Definiscono le dimensioni di un prodotto software in termini di funzionalità fornite all’utente. Si basano su formule empiriche, stabilite su base statistica, tre requisiti informativi del prodotto e complessità del software. Le metriche più conosciute sono: Function Point Feature Point Full Function Point 9 9 Function Point • E’ la prima metrica funzionale, proposta nel 1979 da A.J.Albrecht in IBM • Presidiata dall’ International Function Point User Group (IFPUG), che è l’organismo responsabile dell’emanazione e dell’aggiornamento delle regole standard di conteggio (standard attuale è descritto nel Counting Pratice Manual Versione 4.2) Vantaggi •Conta le funzionalità sviluppate, indipendentemente dal linguaggio • Non misura il software ma i requisiti da cui lo si deriva Svantaggi •Considera solo l’I/O e tiene in poco conto la complessità algoritmica •E’ soggettivo. Persone diverse possono arrivare a stime/conteggi differenti 10 10 5 Software Size Estimation Function Point Analysis–Obiettivi La Function Point Analysis è una metrica standard per la misurazione delle applicazioni software viste dal punto di vista dell’utente. L’approccio è guidato dai seguenti obiettivi: • Misurare le funzionalità che il cliente richiede e riceve • Misurare lo sviluppo e la manutenzione del software indipendentemente dalla tecnologia usata per l’implementazione. Inoltre: • Può essere utilizzata nelle fasi alte del processo ed essere poco onerosa nell’applicazione • Ottiene misurazioni consistenti nell’ambito di progetti e organizzazioni diversi (anche se mantiene una certa soggettività) 11 11 Elementi Base Il metodo dei Function Point consiste nell’identificare e contare le funzionalità che l’applicazione deve fornire: • Funzioni tipo Dati: • Internal Logical File (ILF) • External Interface File (EIF) Users Input Output Inquiry • Funzioni tipo Transazione: Input • External Input (EI) • External Output (EO) • External Inquiry (EQ) Logical Files Measured Application Output Inquiry Logical Files External Application Interface 12 12 6 Software Size Estimation Definizioni Generali Utente: E’ il soggetto che fornisce i requirement funzionali del sistema e che interagisce con il sistema Vista Utente:Descrizione delle necessità informative dell’utente del sistema espresse nel linguaggio dell’utente. I progettisti software traducono queste necessità in soluzioni tecnologiche Identificativo per l’utente:Requirement, relativo alle informazioni trattate o ai processi di trattamento logico di tali informazioni, compreso e riconosciuto sia dagli utenti finali che dai progettisti software Ambito del conteggio:Definisce la porzione di software che deve essere misurato.E’ determinato dallo scopo del conteggio, identifica quali funzioni devono essere incluse nel processo di conteggio. Puo’ includere più di una applicazione Processo elementare:E’ la più piccola unità di lavoro significativa per l’utente. E’ autonomo e lascia l’applicazione in uno stato di consistenza funzionale. Informazione di controllo:E’ il dato che influenza il processo elementare. Specifica cosa, come e quando il dato deve essere processato 13 13 Tipologia di conteggio La metrica dei Function point si può applicare: Progetti di sviluppo nuova applicazione Determina la dimensione funzionale per la stima di impegno e costo complessivo del progetto Misura le funzionalità richieste dall’utente Previste più fasi di revisione del conteggio nei momenti differenti del processo di sviluppo Progetti di manutenzione evolutiva Determina l’entità dell’intervento di mnautenzione evolutiva al fine di stimare impegno e costo di realizzazione Misura la dimensione delle variazioni funzionali da apportare all’applicazione Fornisce gli elementi per aggiornare la dimensione in FP dell’applicazione in modo che rifletta i cambiamenti apportati con l’intervento di manutenzione Applicazioni già esistenti Determina la dimensione funzionale di una applicazione software esistente Misura le funzionalità in esercizio Utile per monitorare la crescita del patrimonio software e stimare impegni e costi necessari per la 14 manutenzione ordinaria 14 7 Software Size Estimation Processo di conteggio Count Data Function: ILF and EIF Determine the Unadjusted FP count Identify the counting scope and application boundary Determine the type of count Determine the adjusted FP count Count transactional functions: EI, EO and EQ 1. Determinare il tipo di conteggio 2. Determinare i confini dell’applicazione Determine the Value of Adjustment Factor (VAF) 3. Identificare le funzioni di tipo dato 4. Identificare le funzioni di tipo transazione 5. Determinare il numero dei FP non pesati 6. Determinare il fattore di aggiustamento (VAF) 7. Determinare il numero dei FP pesati 15 15 Identificare l’ambito del conteggio L’Ambito del conteggio individua il dominio funzionale preso in considerazione, in relazione allo scopo e alle finalità del conteggio: • Nuova applicazione: comprenderà tutte le funzionalità che dovranno essere rilasciate • Manutenzione evolutiva: comprenderà solo le funzionalità da aggiungere, modificare o cancellare • Applicazione esistente: conprenderà tutte le funzionalità che rientrano nella finalità del conteggio (tutte le funzionalità / solo le funzionalità utilizzate) 16 16 8 Software Size Estimation Identificare il confine dell’applicazione Il Confine dell’applicazione delimita il sistema oggetto della misurazione, tracciando una linea di demarcazione tra il sistema stesso e l’utente o gli altri sistemi software • È l’interfaccia concettuale tra l’applicazione e il mondo esterno • E’ la “membrana” attraverso la quale passano i dati di input e di output dell’applicazione • Racchiude i file logici mantenuti dall’applicazione e consente di identificare i file logici referenziati ma non mantenuti dall’applicazione Regole per identificare il confine dell’applicazione: • Il confine dell’applicazione deve rispettare la visione che l’utente ha del sistema • La separazione delle funzionalità in applicazioni distinte deve essere fatta in base a criteri funzionali e non tecnologici • Deve essere stabilito in modo indipendente dall’ambito del conteggio 17 17 Conteggio delle Funzioni di tipo Dati Le funzioni di Tipo Dati rappresentano le funzionalità fornite all’utente per soddisfare i requisiti informativi da lui espressi. • ILF: Internal Logical File • Gruppo di dati logicamente collegati o di informazioni di controllo, riconoscibili dall’utente , mantenuti all’interno dell’applicazione • EIF: External Interface File • Gruppo di dati logicamente collegati o di informazioni di controllo, riconoscibili dall’utente, referenziati dall’applicazione ma mantenuti all’interno del confine di applicazione di un’altra applicazione 18 18 9 Software Size Estimation Regole identificazione ILF Si definisce un File Interno Logico (ILF) un gruppo di dati o informazioni di controllo per il quale devono essere soddisfatte contemporaneamente le seguenti condizioni • Logico, significativo per l’utente, rispondente ai requisiti funzionali • Mantenuto all’interno del confine dell’applicazione attraverso un processo elementare dell’applicazione stessa 19 19 Esempi di ILF • ILF corretti • • • • • Dati di dominio dell’applicazione Dati relativi alla sicurezza dell’applicazione Informazioni di Help gestite con funzioni della propria applicazione Tabelle di decodifica dei messaggi di errore, gestite da funzioni della applicazione Tabelle di parametri gestite da funzioni della propria applicazione • ILF scorretti • • • • Work files File temporanei File legati alla tecnologia usata Strutture dati usate per implementare legami logici esistenti tra le entita’ (a meno che non abbiano attributi propri) • File di edit, Help, decodifica errori che non siano mantenuti dall’applicazione. 20 20 10 Software Size Estimation Regole identificazione EIF Si definisce un File Esterno di Interfaccia (EIF) un gruppo di dati o informazioni di controllo per il quale devono essere soddisfatte contemporaneamente le seguenti condizioni • Logico, significativo per l’utente, rispondente ai requisiti funzionali • Esterno al confine dell’applicazione e da essa referenziato • Non mantenuto all’interno del confine dell’applicazione • Considerato ILF da almeno un’altra applicazione 21 21 Esempi di EIF • EIF corretti • Dati di dominio di altre applicazioni, referenziati all’interno dell’applicazione • Dati relativi alla sicurezza dell’applicazione gestiti da funzioni di utility esterne all’applicazione • Informazioni di Help gestite con funzioni esterne alla propria applicazione • Tabelle di decodifica dei messaggi di errore, gestite con funzioni esterne alla propria applicazione • EIF scorretti • Dati provenienti dall’esterno dell’applicazione utilizzati per aggiornare uno o piu’ ILF dell’applicazione • Dati dell’applicazione formattati ed inviati ad altre applicazioni • File legati alla tecnologia usata 22 22 11 Software Size Estimation Regole Complessità ILF-EIF Per valutare la complessità degli ILF-EIF bisogna considerare due caratteristiche • Record Element Type (RET): sottogruppo logico di dati all’interno dell’ILF-EIF, riconoscibile dall’utente. • Data Element Type (DET):informazioni logiche distinte e significative per l’utente presenti nell’ILF-EIF 23 23 Contare i RET e DET Per ogni ILF-EIF contare un Record Element Type (RET) per ciascun sottogruppo logico di informazioni: •Obbligatorio: Insieme di attributi che l’utente deve necessariamente utilizzare per descrivere totalmente le proprietà di una entità •Opzionale: Insieme di attributi che l’utente potrebbe utilizzare per descrivere le proprietà di una entità Se l’ ILF-EIF possiede un solo sottogruppo di informazioni si deve considerare un solo RET Per ogni ILF-EIF contare un solo Data Element Type (DET) per ogni informazione: • Significativa per l’utente, non ricorsiva •Mantenuta o referenziata attraverso un processo elementare dell’applicazione •Necessaria per mantenere una relazione logica con un altro ILF-EIF Devono essere conteggiate una sola volta le informazioni: • Presenti più volte per ragione tecniche-realizzative • Denormalizzate per ragioni di efficienza elaborative 24 24 12 Software Size Estimation Complessità ILF Record Element Types (RET) 1 RET 2 to 5 RET 6 or More RET Data Elements 1 to 19 20 - 50 51 or More Low Low Average Low Average High Average High High Complexity Unadjusted FP Low 7 Average 10 High 15 25 25 Complessità EIF Record Element Types (RET) Data Elements 1 to 19 20 - 50 51 or More Average 1 RET Low Low 2 to 5 RET Low Average High Average High High 6 or More RET Complexity Unadjusted FP Low 5 Average 7 High 10 26 26 13 Software Size Estimation Conteggio delle Funzioni di tipo Transazione Le funzioni di Tipo Dati rappresentano le funzionalità fornite all’utente per il trattamento dei dati dell’applicazione. Gli elementi di conteggio sono identificati come: EI: External Input • Processo elementare che elabora i dati o le informazioni di controllo provenienti dall’esterno del confine dell’applicazione EO: External Output • Processo elementare che genera dati o informazioni di controllo che vengono inviati all’esterno del confine dell’applicazione attraverso una logica elaborativa piu’ complessa di un semplice reperimento dati EQ: External Inquiry • Processo elementare che genera dati o informazioni di controllo che vengono inviati all’esterno del confine dell’applicazione attraverso un semplice reperimento dati 27 27 Esempi di EI EI corretti • Transazioni sincrone e asincrone che aggiornano un ILF o forniscono informazioni di controllo • Input che aggiornano un ILF dell’applicazione • Messaggi provenienti da altre applicazioni che innescano elaborazioni all’interno dell’applicazione • Input fisici (analogici o digitali) che attivano funzionalita’ dell’applicazione EI scorretti • • • • Dati provenienti dall’esterno dell’applicazione utilizzati in sola lettura Richieste di visualizzazioni di dati Videate che assolvono alla sola funzione di Logon, Menu’ o aiuto navigazionale Risposte di messaggi che chiedono conferma di una operazione 28 28 14 Software Size Estimation Regole identificazione EI Si definisce un External Input (EI) un processo logico elementare dell’applicazione, il cui intento primario e’ di mantenere uno o piu’ ILF dell’applicazione. Deve soddisfare tutti i seguenti requisiti • I dati o le informazioni di controllo che elabora sono provenienti dall’esterno dell’applicazione • Deve aggiornare i dati di almeno un ILF dell’applicazione • E’ univoco nell’ambito dell’applicazione: • Per il tipo di trattamento logico dei dati • Per il tipo di ILF o EIF trattati • Per il tipo di dati elementari trattati 29 29 Regole Complessità EI (1) Per ciascun EI identificato deve essere conteggiato un File Type Referenced (FTR) per: • Ogni ILF aggiornato nel corso dell’elaborazione • Ciascun ILF, EIF letto nel corso dell’elaborazione Per ciascun EI identificato deve essere conteggiato un Data Element Type (DET) per ogni informazione : • Significativa per l’utente, non ricorsiva (duplicata) • Che attraversa il confine dell’applicazione ed e’ necessaria a completare il processo logico Deve essere contato come UN SOLO DET • L’insieme dei messaggi di errore e di conferma emessi nel corso dell’elaborazione • L’insieme degli input con i quali viene attivato il processo o specificata una azione da intraprendere (tasto del mouse, tastiera, ecc) Non devono essere conteggiati come DET • Le informazioni generate nell’ambito del processo e memorizzate in un ILF se queste non attraversano il confine dell’applicazione 30 30 15 Software Size Estimation Regole Complessità EI (2) Files Type Referenced (FTR) Data Elements 1-4 5-15 Greater than 15 Less than 2 Low Low Average 2 Low Average High Greater than 2 Average High High Complexity Unadjusted FP Low 3 Average 4 High 6 31 31 Regole identificazione EO Si definisce un External Output (EO) un processo logico elementare dell’applicazione, il cui intento primario e’ di presentare delle informazioni ad un utente del sistema. Deve soddisfare tutti i seguenti requisiti • I dati o le informazioni di controllo sono mandate all’esterno del confine dell’applicazione • Deve aggiornare i dati di almeno un ILF dell’applicazione • E’ univoco nell’ambito dell’applicazione: • Per il tipo di trattamento logico dei dati • Per il tipo di ILF o EIF trattati • Per il tipo di dati elementari trattati L’EO deve inoltre soddisfare almeno uno dei seguenti requisiti: • Nel trattamento dei dati deve includere almeno una formula di calcolo matematico • Nel trattamento logico dei dati vengono creati dei dati derivati • Nel trattamento logico dei dati viene aggiornato almeno un ILF • Nel trattamento logico dei dati deve modificare il comportamento del sistema 32 32 16 Software Size Estimation Esempi di EO • EO corretti • Report complessi (che fanno uso di algoritmi complessi o di calcolo) • File o messaggi dell’applicazione inviati ad altre applicazioni • Risultati di interrogazioni che contengono dati derivati o calcolati • EO scorretti • Report semplici (visualizzazione) • Report ottenuti direttamente dall’utente con meccanismi di query (SQL, ..) • File di lavoro che si scambiano client e server all’interno della stessa applicazione 33 33 Regole Complessità EO Per ciascun EO identificato deve essere conteggiato un File Type Referenced (FTR) per: • Ciascun ILF, EIF letto nel corso dell’elaborazione • Ogni ILF aggiornato nel corso dell’elaborazione Sono considerati UNA sola volta gli ILF sia letti che aggiornati Per ciascun EO identificato deve essere conteggiato un Data Element Type (DET) per ogni informazione : • Significativa per l’utente, non ricorsiva (duplicata) • Che attraversa il confine dell’applicazione ed e’ necessaria per specificare quando, quali e/o come i dati devono essere estratti o generati nell’ambito del processo elementare • In output al processo 34 34 17 Software Size Estimation Regole Complessità EO (2) Deve essere contato come UN SOLO DET • Le informazioni presenti sia in input che in output • L’insieme dei messaggi di errore e di conferma emessi nel corso dell’elaborazione • L’insieme degli input con i quali viene attivato il processo o specificata una azione da intraprendere (tasto del mouse, tastiera, ecc) Non devono essere conteggiati come DET • Le informazioni generate nell’ambito del processo e memorizzate in un ILF se queste non attraversano il confine dell’applicazione • I dati fissi • Le informazioni accessorie generate dal sistema (numero pagina, data elaborazione, ecc..) 35 35 Regole Complessità EO (4) Files Type Referenced (FTR) Data Elements 1-5 6-19 Greater than 19 less than 2 Low Low Average 2 or 3 Low Average High Greater than 3 Average High High Complexity Unadjusted FP Low 4 Average 5 High 7 36 36 18 Software Size Estimation Regole identificazione EQ Si definisce un External Output (EQ) un processo logico elementare dell’applicazione, il cui intento primario e’ di presentare delle informazioni ad un utente del sistema. Deve soddisfare tutti i seguenti requisiti • I dati o le informazioni di controllo sono mandate all’esterno del confine dell’applicazione • E’ univoco nell’ambito dell’applicazione: • Per il tipo di trattamento logico dei dati • Per il tipo di ILF o EIF trattati • Per il tipo di dati elementari trattati L’EQ deve inoltre soddisfare almeno uno dei seguenti requisiti: • Nel trattamento dei dati NON deve includere almeno una formula di calcolo matematico • Nel trattamento logico dei dati NON vengono creati dei dati derivati • Nel trattamento logico dei dati NON viene aggiornato almeno un ILF • Nel trattamento logico dei dati NON deve modificare il comportamento del sistema 37 37 Esempi di EQ • EQ corretti • • • • Report semplici (visualizzazione) Report ottenuti direttamente dall’utente con meccanismi di query (SQL, ..) Dati ottenuti tramite funzioni di browsing Lite e finestre di dati visualizzati allo scopo di selezione • EQ scorretti • • • • File di lavoro che si scambiano client e server all’interno della stessa applicazione File o messaggi dell’applicazione inviati ad altre applicazioni Risultati di interrogazioni che contengono dati derivati o calcolati Report complessi (che fanno uso di algoritmi complessi o di calcolo) 38 38 19 Software Size Estimation Regole Complessità EQ Per ciascun EQ identificato deve essere conteggiato un File Type Referenced (FTR) per: Ciascun ILF, EIF letto nel corso dell’elaborazione Per ciascun EQ identificato deve essere conteggiato un Data Element Type (DET) per ogni informazione : Significativa per l’utente, non ricorsiva (duplicata) Che attraversa il confine dell’applicazione ed e’ necessaria per specificare quando, quali e/o come i dati devono essere estratti o generati nell’ambito del processo elementare In output al processo 39 39 Regole Complessità EQ (2) Per ciascun EO identificato deve essere conteggiato un Data Element Type (DET) per ogni informazione : Significativa per l’utente, non ricorsiva (duplicata) Che attraversa il confine dell’applicazione ed e’ necessaria per specificare quando, quali e/o come i dati devono essere estratti o generati nell’ambito del processo elementare In output al processo 40 40 20 Software Size Estimation Regole Complessità EQ (3) Files Type Referenced (FTR) Data Elements 1-5 6-19 Greater than 19 less than 2 Low Low Average 2 or 3 Low Average High Greater than 3 Average High High Complexity Unadjusted FP Low 3 Average 4 High 6 41 41 Determinare i FP non pesati Individuato il tipo ed il grado di complessita’ di ogni elemento, e assegnato ad essi uno specifico valore (riportato nelle varie tabelle con il valore in FP), si e’ in grado di calcolare il numero totale dei FP NON PESATI. La somma dei contributi relativi a tutte le funzioni considerate nell’ambito della FP Analysis costituisce la dimensione in Function Point non pesati (UFP- Unadjusted Function Point) dell’applicazione 42 42 21 Software Size Estimation Esempio Sistema integrato di gestione avvocati. • A : applicazione di gestione anagrafica degli avvocati • Informazioni: nome, cognome, data nascita, specializzazione, orario lavorativo (disponibilità) • Funzionalità: Aggiungi nuovo avvocato, modifica esistente, visualizza dettagli avvocato, cancella avvocato, verifica disponibilità per giorno e ora. • B: applicazione di gestione appuntamenti avvocati • Informazioni: tipo di incarico, cliente, data, avvocato, costo. • Funzionalità: Prenota nuovo appuntamento, Modifica data appuntamento, Stampa report appuntamento, Stampa saldo ore fatturate avvocato per data, Visualizza il totale degli appuntamenti per data. 43 43 Esempio Poniamo il confine sull’applicazione di prenotazione appuntamenti (B): Le informazioni di dominio possono essere tutte contenute all’interno di un ILF (File logico Appuntamenti) Tipo Appuntamento Cliente Data Avvocato Costo Visita Consulenza Civile M.Rossi 22/04/2010 P. Verdi 130 € Le informazioni relative all’anagrafica avvocati sono anch’esse contenute in un File Logico (File logico Avvocati). Non essendo manutenuto da B, tale file è un EIF Nome Marco Cognome Data Nascita Specializzazione Disponibilità Bianchi 10/10/1970 Civilista Lun - Ven 44 44 22 Software Size Estimation Esempio Funzionalità richieste dall’utente per B: 1. Prenota nuovo appuntamento EI (inserisci tipo, cliente, data, avvocato, costo) 2. Modifica data prenotazione appuntamento EI (modifica data) 3. Assegna appuntamento ad un altro avvocato EI (modifica avvocato) 4. Stampa il report dell’appuntamento EQ (Richiesta dettagli all’applicazione) 5. Stampa saldo ore fatturate avvocato EO 6. Visualizza il totale degli appuntamenti per data EO type RET DET FTR Complexity FP ILF 1 5 N.A. Low 7 Avvocati EIF 1 5 N.A. Low 5 1 EI N.A. 6 2 Low 3 2 EI N.A. 2 1 Low 3 3 Ei N.A. 2 2 Low 3 4 EQ N.A. 6 1 Low 3 5 EO N.A. 2 2 Low 4 6 EO N.A. 3 2 Low 4 Appuntamenti = 32 UFP 45 Determinare i FP non pesati – Metodo ACE •Nella pratica, soprattutto quando si stima nelle fasi iniziali non è sempre semplice individuare tutti i RET, DET e FTR. •Si utilizza allora la tecnica ACE: Average Complexity Estimation, che associa ai processi elementari all’interno delle stessa categoria lo stesso peso medio • I pesi medi sono standard e sono calcolati facendo la media tra i 7200 progetti dell’ ISBSG UFPACE = #ILF*7.4+#EIF*5.5+#EI*4.3+#EO*5.4+#EQ*3.8 46 46 23 Software Size Estimation Esempio pecedente – calcolo ACE Funzionalità richieste dall’utente per B: 1. Prenota nuovo appuntamento EI (inserisci tipo, cliente, data, avvocato, costo) 2. Modifica data prenotazione appuntamento EI (modifica data) 3. Assegna appuntamento ad un altro avvocato EI (modifica avvocato) 4. Stampa il report dell’appuntamento EQ (Richiesta dettagli all’applicazione) 5. Stampa saldo ore fatturate avvocato EO 6. Visualizza il totale degli appuntamenti per data EO type FP ILF 7.4 Avvocati EIF 5.5 1 EI 4.3 2 EI 4.3 3 Ei 4.3 4 EQ 3.8 5 EO 5.4 6 EO 5.4 Appuntamenti = 40,4 UFP 47 Determinare il fattore di aggiustamento (VAF) Al valore in FP non pesati, e’ applicato un coefficiente correttivo (VAF – Value of Adjustement Factor), ottenuto valutando il grado di influenza di 14 fattori specifici detti Caratteristiche Generali del Sistema (GSC) che rappresentano i requisiti non funzionali del sistema. 48 48 24 Software Size Estimation Caratteristiche Generali del Sistema GCS Degree of influence Data communications 0-5 Distributed data processing 0-5 Performance 0-5 Heavily used configuration 0-5 Transaction rate 0-5 On-Line data entry 0-5 End-user efficiency 0-5 On-Line update 0-5 Complex processing 0-5 Reusability 0-5 Installation ease 0-5 Operational ease 0-5 Multiple sites 0-5 Facilitate change 0-5 Total Degree of Influence (TDI) 0-70 49 49 Grado di influenza Il Grado di influenza di ciascuna GSC puo’ assumere i seguenti valori: 0 Caratteristica non presente o ininfluente 1 Influenza limitata o secondaria 2 Influenza moderata 3 Influenza media 4 Influenza significativa 5 Influenza forte e generalizzata 50 50 25 Software Size Estimation Calcolare il VAF VAF = (65 + TDI)/100 Dove il TDI e’ il Total Degree of Influence 51 51 Calcolare il Numero di FP Pesati Il numero di FP Pesati (AFP – Adjusted Function Point), dipende dal tipo di conteggio Progetti di nuovo sviluppo AFP = UAF * VAF Interventi di manutenzione evolutiva AFP = (UFP[funzioni aggiunte]+UFP[funzioni modificate]) * VAF[postmodifiche]+UFP[funzioni modificate] *VAF[antemodifiche] Applicazioni in esercizio AFP = UAF * VAF 52 52 26