Analisi dei punti funzione - Dipartimento di Matematica e Informatica
Transcript
Analisi dei punti funzione - Dipartimento di Matematica e Informatica
Analisi dei punti funzione FPA è un metodo per suddividere i sistemi in componenti più piccole in modo che questi possano essere capiti e analizzati meglio I punti funzione sono un tipo di misura funzionale, capace di quantificare un’applicazione software dal punto di vista dell’utente ricavando un indice delle dimensioni di un programma mediante la misura indiretta delle funzionalità che deve fornire Approccio: Alan Albrecht Punti funzione Il metodo dei punti funzione fornisce una misura che assiste nella valutazione, progettazione, amministrazione e controllo della produzione software • Misurano le funzionalità utente • Misurano il ritmo dello sviluppo e del mantenimento del software indipendentemente dalla tecnologia usata per l’implementazione • Consentono di convertire la dimensione di un’applicazione in qualsiasi linguaggio (in linee di codice) nella dimensione dell’applicazione equivalente scritta in un altro linguaggio • Consentono di misurare la produttività di un progetto scritto con più linguaggi Processo elementare • Un’applicazione software è essenzialmente un insieme definito di processi elementari • Quando questi processi elementari vengono combinati insieme, interagiscono per formare ciò che chiamiamo un sistema software (o un’applicazione software) • Un processo elementare non è totalmente indipendente, ma i processi elementari sono intrecciati insieme diventando interdipendenti In un’applicazione software: – Dati in movimento (external input, external output, external inquiries) – Dati in riposo (internal logic file, external interface file) Tipi di conteggi di punto funzione Il conteggio dei punti funzione può essere associato a diversi tipi di progetti software – Sviluppo – Miglioramento – Applicazione Produttività “Rapporto output/input nell’ambito di un periodo di tempo” La produttività può essere migliorata 1. Incrementando gli output con gli stessi input 2. Decrementando gli input con gli stessi output 3. Incrementando gli output ed decrementando gli input PRODUTTIVITA’ SOFTWARE: punti funzione/Input Passi per il conteggio dei punti funzione 1. 2. 3. 4. 5. 6. Determinare il tipo di conteggio di punto funzione Determinare i confini dell’applicazione Identificare e valutare i tipi di funzione di transizione per determinare il loro contributo al conteggio dei punti funzione Identificare e valutare i tipi di funzione dato per determinare il loro contributo al conteggio dei punti funzione Determinare il valore del fattore di aggiustamento Calcolare Confini dell’applicazione • Poiché è comune per i sistemi informatici interagire con altri sistemi e con utenti, bisogna determinarne i confini prima di classificare le componenti • Questi confini devono essere dedotti dal punto di vista dell’utente sofisticato • Il confine indica il limite fra il progetto o applicazione che viene misurata e le applicazioni esterne o dominio utente • Una volta che il confine è stato stabilito, le componenti possono essere classificate e contate RET, DET, FTR • Record Element Type: è un sotto gruppo di dati riconoscibile dall’utente all’interno di un internal logic file o di un external interface file • File Type Referenced: FTR è un tipo di file a cui si fa riferimento attraverso una transazione • Data Element Type: è un campo unico riconoscibile dall’utente. Un DET è un’informazione dinamica. Valutazioni Tutte le componenti vengono valutate rispetto ai DET, FRT e RET Component RET’s External Inputs (EI) External Outputs (EO) External Inquiries (EQ) External Interface Files (EIF) External Logical Files (ELF) √ √ FTR’s √ √ √ DET’s √ √ √ √ √ External input • E’ un processo elementare in cui i dati attraversano i confini dell’applicazione dall’esterno all’interno • Se un input esterno aggiunge, cambia e cancella (mantiene) informazione su un file logico interno allora questo rappresenta tre input esterni 1-4 5-15 Greater than 15 Less than 2 Low (3) Low(3) Average(4) 2 Low(3) Average(4) High(6) Greater than 2 Average(4) High(6) High(6) Esempio Esempio External input possono essere: • Dati di business: nome del cliente, indirizzo, telefono • Dati di controllo: • Le informazioni di controllo cambiano o alterano lo stato (o comportamento) dell’applicazione External output • Un processo elementare in cui i dati derivati passano attraverso i confini dell’applicazione dall’interno all’esterno • Può anche aggiornare un ILF • I dati creano dei report o file di output mandati ad altre applicazioni Valutazione degli output esterno Basata sul numero dei DET e dei FTR 1-4 6-19 Greater than 19 Less than 2 Low (4) Low(4) Average(5) 2 or 3 Low(4) Average(5) High(7) Greater than 3 Average(5) High(7) High(7) Esempi • Generalmente business data, ma anche • Messaggi di notifica • Dati derivati Data Elements ed FTR • DET sono – Messaggi di errore o di conferma – Dati derivati – Valori su report che vengono letti da un file logico interno o da un file di interfaccia esterno • File Types Referenced – Un FTR deve essere un ILF o un EIF Esempio External Inquiry • Un processo elementare con entrambe componenti input e output che risultano in recupero dati da uno o più file logici interni e file di interfaccia esterna • Il processo di input non aggiorna o mantiene FTR (ILF o EIF) e la parte di output non contiene dati derivati Rating • Come tutte le componenti, le EQ vengono valutate e ad esse viene assegnato un punteggio 1-4 6-19 Greater than 19 Less than 2 Low (3) Low(3) Average(4) 2 or 3 Low(3) Average(4) High(6) Greater than 3 Average(4) High(6) High(6) Data elements Input • Click del mouse • Valori di ricerca • Bottoni dei comandi • Messaggi di errore • Messaggi di conferma • … Output • Valori letti da un file logico interno • Valori letti da un file di interfaccia esterno • Messaggi di errore • Messaggi di conferma File logici interni Un gruppo di dati collegati logicamente, identificabili dall’utente che risiede interamente all’interno dei confini dell’applicazione e che viene mantenuto dagli input esterni – Il rating degli ILF è basato sul numero di elementi di dati (DET) e tipi di record (RET) 1-19 20-50 51 or more 1 RET Low (7) Low(7) Average(10) 2 to 5 RET Low(7) Average(10) High(15) 6 or more RET Average(10) High(15) High(15) RET • L’idea dietro i RET è di quantificare relazioni di dati complessi mantenute in un singolo FTR • Gran parte dei RET dipendono da una relazione padre/figlio Esempio • Si immagini un file cliente che contiene Nome, Indirizzo e così via • In aggiunta, tutte le carte di credito e i numeri delle carte di credito del cliente sono contenute nel file • La carta di credito e i numeri sarebbero senza significato se non fossero collegate al cliente Determine type of Count Identify Boundary Count Transactional Function Types Count Data Function Types Determine Unadjusted Function Point Count Determine Adjusted Function Point Count L’applicazione User Domain External Inputs (EI) External Outputs (EO) External Inquiries (EQ) EQ Internal Logical Files (ILF) Application Boundary EI EO External Interface Files (EIF) Other Applications File di interfaccia esterna • Sono un gruppo di dati collegati logicamente, identificabili dall’utente, che vengono usati solo a scopo di riferimento. I dati risiedono interamente fuori dai confini dell’applicazione e vengono mantenuti dagli input esterni di altre applicazioni • Il file di interfaccia esterna è un file logico interno per un’altra applicazione • Un’applicazione può contenere un file come un EIF o un ILF ma non entrambi • Ogni EIF incluso nel conteggio dei punti funzione deve essere incluso come FTR di una transizione Rating • La valutazione si basa su DET e RET 1-19 20-50 51 or more 1 RET Low (5) Low(5) Average(7) 2 to 5 RET Low(5) Average(7) High(10) 6 or more RET Average(7) High(10) High(10) Caratteristiche generali di sistema Il value adjustment factor è basato su 14 caratteristiche generali di sistema (GSC’s) che valutano la funzionalità generale dell’applicazione che viene conteggiata Ogni caratteristica ha delle descrizioni associate per determinare i gradi di influenza Rating • • • • • • 0: non è presente, oppure non ha influenza 1: influenza casuale 2: influenza moderata 3: influenza media 4: influenza significativa 5: influenza forte Le GSC possono essere valutate relativamente presto nel ciclo di vita del software. Se l’utente non riesce a rispondere a queste 14 domande l’intero progetto deve essere rivisto Value adjustment factor Una volta che si è risposto a tutte le 14 GSC, queste ultime vengono utilizzate per calcolare il value adjustment factor: 14 VAF = 0.65 + [(Σ Ci)] i=1 Oppure VAF = (65 + TDI) /100, dove TDI è la somma dei risultati per ogni domanda Caratteristiche generali del sistema • • • GSC’s at a Glance: General System Characteristic 1. Data communications • 2. Distributed data processing • 3. Performance • 4. Heavily used configuration • 5. Transaction rate • 6. On-Line data entry Brief Description How many communication facilities are there to aid in the transfer or exchange of information? How are distributed data and processing functions handled? Did the user require response time or throughput? How heavily used is the current hardware platform where the application will be executed? How frequently are transactions executed daily, weekly, monthly, etc.? What percentage of the information is entered On-Line? Caratteristiche generali del sistema • 7. End-user efficiency • 8. On-Line update • 9. Complex processing • 10. Reusability • 11. Installation ease • 12. Operational ease • 13. Multiple sites • 14. Facilitate change Was the application designed for end-user efficiency? How many ILF’s are updated by On-Line transaction? Does the application have extensive logical or mathematical processing? Was the application developed to meet one or many user’s needs? How difficult is conversion and installation? How effective and/or automated are startup, back up, and recovery procedures? Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations? Was the application specifically designed, developed, and supported to facilitate change? Dati di comunicazione • Score • 0 Application is pure batch processing or a stand-alone PC. • 1 • 2 • 3 Application is batch but has remote data entry or remote printing. Application is batch but has remote data entry and remote printing. Application includes online data collection or TP (teleprocessing) front end to a batch process or query system. Application is more than a front-end, but supports only one type of TP communications protocol. Application is more than a front-end, and supports more than one type of TP communications protocol. • 4 • 5 Processing dei dati distribuiti • Score • 0 • 1 • 2 • 3 • 4 • 5 Application does not aid the transfer of data or processing function between components of the system. Application prepares data for end user processing on another component of the system such as PC spreadsheets and PC DBMS. Data is prepared for transfer, then is transferred and processed on another component of the system (not for end user processing). Distributed processing and data transfer are online and in one direction only. Distributed processing and data transfer are online and in both directions. Processing functions are dynamically performed on the most appropriate component of the system. Performance • • Score 0 • 1 • 2 • 3 • 4 • 5 No special performance requirements were stated by the user. Performance and design requirements were stated and reviewed but no special actions were required. Response time or throughput is critical during peak hours. No special design for CPU utilization was required. Processing deadline is for the next business day. Response time or throughput is critical during all business hours. No special design for CPU utilization was required. Processing deadline requirements with interfacing systems are constraining. In addition, stated user performance requirements are stringent enough to require performance analysis tasks in the design phase. In addition, performance analysis tools were used in the design, development, and/or implementation phases to meet ùthe stated user performance requirements. Conteggio punti funzione Functional Complexity Low Average High External Inputs __x 3 =__ __x 4 =__ __x 6 =__ External Outputs __x 4 =__ __x 5 =__ __x 7 =__ External Inquiries __x 3 =__ __x 4 =__ __x 6 =__ Internal Logical Files __x 7 =__ __x 10 =__ __x 15=__ External Interface Files __x 5 =__ __x 7 =__ __x 10 =__ Total Unadjusted Function Points Multiplied by Value Adjustment Factor X 1.0 Adjusted Function Points Conteggio dei punti funzione FP = UFP * VAF UFP = conteggio dei punti funzione non aggiustato VAF = value adjustment factor