Corso di Ingegneria del Software. Metriche Parte I



Documenti analoghi
Ingegneria del Software MINR Giuseppe Santucci Il metodo dei FP

STIMA DEI COSTI DI SVILUPPO DEL SOFTWARE

Sistemi Informativi I Function Point Analisys

Software. Engineering

IT Project Management

Stima della size- Esercitazioni

La Metodologia adottata nel Corso

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

UNIVERSITÀ DEGLI STUDI DELL INSUBRIA

GESTIONE DEI PROGETTI

Guida rapida alla prima installazione

Raggruppamenti Conti Movimenti

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Sistemi Informativi I

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Strutturazione logica dei dati: i file

Software Size Estimation


GESTIONE DEI PROGETTI. Inizio

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Automazione Industriale (scheduling+mms) scheduling+mms.

Assicurazione di qualità dei dati di monitoraggio ecologico delle acque superficiali interne

MANUALE DELLA QUALITA Revisione: Sezione 4 SISTEMA DI GESTIONE PER LA QUALITA

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Laboratorio di Informatica I

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Sage Start Archivio file Guida. Dalla versione

GESTIONE FATTURE (VELINE)

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

La progettazione centrata sull utente nei bandi di gara

Corso di Informatica

Organizzazione delle informazioni: Database

Introduzione. Alberto Fortunato Pag. 1 di 137

Software project management.

Trasformazione dei Processi in Progetti DIB 1

Creare diagrammi di Gantt con Visio 2003

ECDL AM5 Access Advanced

Analisi a Function Points Ing. Thimoty Barbieri, thimoty@thimoty.it 1/1

I Sistemi Informativi

Introduzione al corso

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Linguaggi e Paradigmi di Programmazione

Guida all uso delle Web View su ios

I database relazionali (Access)

Progettazione esterna

MacBOOK. Gestionale per librerie Windows e Mac

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Ogni documento digitalizzato, carta attivo o passivo, viene di infatti accompagnato identità da una sorta di elettron

PORTALE CLIENTI Manuale utente

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

Aris TimeSheet. che guardano oltre. enti e aziende. Soluzioni per

Dynamic 07 -Software per la lettura ottica e data capture. G.Q.S. Srl Global Quality Service Via Bernini, 5/7 Corsico (MILANO)

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Controllo di Gestione - Guida Operativa

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Località. Piacenza. Progetto ECATE. Progetto E.C.A.T.E. Efficienza e Compatibilità Ambientale delle Tecnologie Energetiche

Fasi di creazione di un programma

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Sistemi informativi secondo prospettive combinate

Programma del Corso per Segretaria d Azienda:

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

esales Forza Ordini per Abbigliamento

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

Software per Helpdesk

MODULO 5 Appunti ACCESS - Basi di dati

Digital Printing and Imaging Association

1. BASI DI DATI: GENERALITÀ

Ata_NiAg02. Modulo Gestione Agenti

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

CONTROLLO DI GESTIONE DELLO STUDIO

Database. Si ringrazia Marco Bertini per le slides

Capitolo 1 Installazione del programma

FIRESHOP.NET. Gestione Lotti & Matricole.

Mon Ami 3000 Ratei e Risconti Calcolo automatico di ratei e risconti

Guida alla registrazione on-line di un DataLogger

Progettazione concettuale

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Professional Planner 2011

CANALI. Funzionalità. Riduzione dei tempi di lavoro

MANUALE PARCELLA FACILE PLUS INDICE

elicaweb manuali - Vendite: come iniziare - pagina 1 di 9

IL SISTEMA INFORMATIVO

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Organizzazione degli archivi

Elaborazione di una scheda di budget

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Metriche del software

IL SOFTWARE SECONDO LA NORMA UNI EN ISO :2008 (IIA PARTE) 1

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

INDUSTRY PROCESS AND AUTOMATION SOLUTIONS. Lo strumento universale per la messa in esercizio e la diagnosi

CHIUSURE di MAGAZZINO di FINE ANNO

Indice. Ventilazione Standard

GUFPI-ISMA. Evoluzione delle Linee Guida: l utilizzo contrattuale dei Function Points. Roberto Meli

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

Gestione del workflow

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico

Transcript:

Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it

Concetti di base Metriche Sommario 1. Concetti di base 2. METRICHE DIMENSIONALI 3. 4. METRICHE STRUTTURALI 5. Bibliografia

Concetti di base Concetti di base Valutare il processo di produzione del software COME PROCEDE IL PROCESSO? RISPETTO ALLE RISORSE IMPIEGATE in tempo, in ritardo usa più risorse del previsto i costi sono rispettati la produttività è idonea RISPETTO ALLA QUALITÁ

Concetti di base Concetti di base Valutare il processo di produzione del software Necessità di valutare lo sviluppo del processo di produzione del software per correggerlo o modificarlo. Necessità di MISURARE il processo di produzione del software

Concetti di base Concetti di base Valutare il processo di produzione del software Necessità di valutare lo sviluppo del processo di produzione del software per correggerlo o modificarlo. Necessità di MISURARE il processo di produzione del software

Concetti di base Concetti di base Valutare il processo di produzione del software Stima a priori Misurazione in corso o a posteriori

Concetti di base Concetti di base Le METRICHE Metodi di misura nel processo di produzione del software

Concetti di base Concetti di base Le METRICHE DIMENSIONE (es. LUNGHEZZA) FUNZIONALITÀ COMPLESSITÀ

Concetti di base Concetti di base Le METRICHE METRICHE DIMENSIONALI (es. LOC) Misurano le funzioni che il software deve svolgere. (es. FPA) METRICHE STRUTTURALI (es. Numero ciclomatico)

Concetti di base Concetti di base Altre misure Misura della documentazione

METRICHE DIMENSIONALI Metriche Sommario 1. Concetti di base 2. METRICHE DIMENSIONALI 3. 4. METRICHE STRUTTURALI 5. Bibliografia

METRICHE DIMENSIONALI METRICHE DIMENSIONALI Numero di linee di codice LOC Dimensione del programma =) numero di linee di codice (LOC) Commenti Numero di istruzioni eseguibili (ES) Numero di linee di codice sorgente (SLOC)

METRICHE DIMENSIONALI METRICHE DIMENSIONALI Numero di linee di codice : USO PRODUTTIVITÀ QUALITÀ LOC tempo LOC Errori rilevati

METRICHE DIMENSIONALI METRICHE DIMENSIONALI Numero di linee di codice : USO DOCUMENTAZIONE DENSITÀ DEI COMMENTI Pagine di documentazione LOC CLOC LOC

METRICHE DIMENSIONALI METRICHE DIMENSIONALI Numero di linee di codice Vantaggi e svantaggi Vantaggi: Intuitiva Semplice da calcolare Svantaggi: Dipende dal linguaggio e dal modo di programmare Calcolabile a fine progetto

METRICHE DIMENSIONALI METRICHE DIMENSIONALI Numero di linee di codice LOC Measuring programming progress by Lines of Code is like measuring aircraft building progress by weight. Bill Gates http://www.linfo.org/q_programming.html

Metriche Sommario 1. Concetti di base 2. METRICHE DIMENSIONALI 3. 4. METRICHE STRUTTURALI 5. Bibliografia

Function Point Analysis FPA indipendente dalla tecnologia software calcolabile anche nelle prime fasi del processo di sviluppo software

Function Point Analysis FPA Allan J. Albrecht IBM 1984 PUNTI FUNZIONE Misurano le funzionalità di cui si compone un applicazione in termini di elementi oggettivi ed enumerabili dall utente finale (Cosa fa il programma, non come è fatto; le funzionalità si misurano usando specifiche e non il codice). Rappresentano uno standard (Nel 1986 nasce l IFPUG International Function Point Users Group e la FPA diventa uno standard internazionale riconosciuto a livello ISO). Counting Practices Manual (rilasciato dal IFPUG) traduzione italiana a cura del GUFPI (Gruppo Utenti Function Point Italia).

Function Point Analysis FPA I Punti Funzione devono: Obiettivi della FPA 1. valutare il software indipendentemente dalla tecnologia utilizzata per lo sviluppo (linguaggi di programmazione, tools di sviluppo, ecc). 2. misurare tutte le funzioni richieste e consegnate all utente 3. fornire un fattore di normalizzazione che permetta il raffronto tra sistemi di organizzazioni diverse

Function Point Analysis La FPA considera le occorrenze pesate di 5 tipologie di funzionalità ritenute importanti nella determinazione della misura del software.

Function Point Analysis : Unadjusted Function Point (UFP) 1) Funzioni Dati ILF (Internal Logical File) file creati ed utilizzati internamente dal programma. EIF (External Interface File) file o di altri insiemi di dati scambiati dal programma con altri programmi. 2) Funzioni Transazionali EI (External Input) Permettono all utente di fornire input al software EO (External Output) Mandano output all esterno delĺıapplicazione software dopo una elaborazione. EQ (External Query) Mandare output all esterno dell applicazione, senza una elaborazione preventiva.

Function Point Analysis

Esempio Programma per gestione dati anagrafici 1 schermata (Cognome, Nome, Luogo NAscita, Data Nascita, CF) INS/MODIFICA CANCELLA query 1 file per memorizzare i dati 1 prospetto di stampa. Sul prospetto di stampa sono presenti i dati della schermata e l età media degli individui censiti nell anagrafe. Tutti i dati possono essere inseriti, modificati e cancellati dall utente. La ricerca è limitata allo scrolling delle anagrafiche.

Esempio 1. N. 3 funzioni elementari di input (EI) Inserisci, Modifica, Cancella 2. N. 1 funzione di output (EO) Stampa prospetto 3. N. 1 funzione di query Scroll / Visualizza dati anagrafici 4. N. 1 file interno (ILF) Dati anagrafici 5. nessun file d interfaccia esterno (EIF)

Function Point Analysis Da Pressman pag. 574

Function Point Analysis Giudizio di complessità Poichè alcune delle funzionalità possono essere più complesse di altre (e quindi richiedere più impegno per essere sviluppate), il metodo di conteggio IFPUG prevede che le occorrenze di queste funzionalità presenti nel software da dimensionare siano pesate da chi effettua il conteggio, in base a un giudizio di complessità semi-oggettivo (guidato da tabelle di riferimento). Il giudizio di complessità varia tra basso, medio e alto e il punteggio assegnabile alle funzioni varia tra 3 e 15.

Determinazione del grado di complessità Tabelle di orientamento DET (Data Element Type) RET (Record Element Type) per ILF e EIF FTR (File Type Referenced) DET (Data Element Type) per EI, EO e EQ

Determinazione del grado di complessità Record Element Type sottogruppo di dati riconoscibile dall utente all interno di un internal logic file o di un external interface file File Type Referenced tipo di file a cui si fa riferimento attraverso una transazione Data Element Type campo unico riconoscibile dall utente.

Tabelle di orientamento : ILF e EIF RET/DET 1-19 20-50 51-1 BASSA MEDIA ALTA 2-5 BASSA MEDIA ALTA 6- BASSA MEDIA ALTA COMPLESSITÀ ILF EIF BASSA 7 5 MEDIA 10 7 ALTA 15 10

Tabelle di orientamento : EI FTR/DET 1-4 5-15 16-0-1 BASSA BASSA MEDIA 2 BASSA MEDIA ALTA 3- MEDIA ALTA ALTA COMPLESSITÀ EI BASSA 3 MEDIA 4 ALTA 6

Tabelle di orientamento : EO FTR/DET 1-5 6-19 20-0-1 BASSA BASSA MEDIA 2-3 BASSA MEDIA ALTA 4- MEDIA ALTA ALTA COMPLESSITÀ EO BASSA 4 MEDIA 5 ALTA 7

Tabelle di orientamento : EQ FTR/DET 1-4 5-15 16-0-1 BASSA BASSA MEDIA 2 BASSA MEDIA ALTA 3- MEDIA ALTA ALTA FTR/DET 1-5 6-19 20-0-1 BASSA BASSA MEDIA 2 BASSA MEDIA ALTA 3- MEDIA ALTA ALTA Tabella: Lato input/lato output COMPLESSITÀ EQ BASSA 3 MEDIA 4 ALTA 6

Esempio Programma per gestione dati anagrafici 1 schermata (Cognome, Nome, Luogo NAscita, Data Nascita, CF) INS/MODIFICA CANCELLA query 1 file per memorizzare i dati 1 prospetto di stampa. Sul prospetto di stampa sono presenti i dati della schermata e l età media degli individui censiti nell anagrafe. Tutti i dati possono essere inseriti, modificati e cancellati dall utente. La ricerca è limitata allo scrolling delle anagrafiche.

Esempio 1. 3 funzioni elementari di input (EI) Inserisci, Modifica, Cancella 2. una funzione di output (EO) Stampa prospetto 3. una funzione di query Scroll / Visualizza dati anagrafici 4. un file interno (ILF) Dati anagrafici 5. nessun file d interfaccia esterno (EIF)

Esempio Elemento N. di DET N. di RET/FTR Inserisci (EI) 6 1 Modifica (EI) 6 1 Cancella (EI) 6 1 Scroll/vis (EQ) 1 Inp/5 Out 1 Dati anagrafici (ILF) 5 1 Stampa (EO) 6 1

Esempio EI x 3 = 9 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 PF (1 FTR, 1/5 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 PF (1 FTR, 5 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 4 TOTALE PF (UFP) = 23

Esempio EI x 3 = 9 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 PF (1 FTR, 1/5 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 PF (1 FTR, 5 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 4 TOTALE PF (UFP) = 23

Esempio EI x 3 = 9 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 PF (1 FTR, 1/5 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 PF (1 FTR, 5 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 4 TOTALE PF (UFP) = 23

Esempio EI x 3 = 9 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 PF (1 FTR, 1/5 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 PF (1 FTR, 5 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 4 TOTALE PF (UFP) = 23

Esempio EI x 3 = 9 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 PF (1 FTR, 1/5 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 PF (1 FTR, 5 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 PF (1 FTR, 6 DET) ) complessità bassa ) peso = 4 TOTALE PF (UFP) = 23

Function Point Analysis Fattore correttivo Al conteggio base dei punti funzione si applica un fattore correttivo che tiene conto della complessità del progetto (in termini organizzativi e tecnici), fattore che può incidere fino al 35% del conteggio base.

Function Point Analysis : Fattori di aggiustamento Fattori di aggiustamento (VAF Value Adjustment Factors): 1. Il sistema richiede procedure di recovery e backup affidabili? 2. E richiesta la trasmissione di dati? 3. Vi sono funzionalità che richiedono elaborazioni distribuite? 4. Le prestazioni sono critiche? 5. Il programma funzionerà in un ambiente operativo già pesantemente utilizzato? 6. Il sistema richiede funzionalità avanzate per l emissione e la consultazione in linea di dati? 7. Le funzionalità di immissione dei dati devono essere costruite tramite interfacce a finestre? 8. Gli archivi principali sono aggiornati in tempo reale? 9. Le informazioni scambiate tra utente e programma sono complesse? 10. Il codice del programma è complesso? 11. Il codice è scritto per essere riusabile? 12. Nel progetto sono incluse anche le attività di installazione e conversione? 13. Il programma è stato progettato per essere installato presso diversi utenti? 14. Il programma è stato progettato per facilitare l uso e le modifiche da parte dell utente?

Function Point Analysis : Fattori di aggiustamento 1. F1 - Comunicazione Dati 0: Semplice elaborazione batch 5: Transazionale con più di un front end e più protocolli di comunicazione 2. F2 - Distribuzione della elaborazione 0: Nessuna funzione presente 5: Elaborazione distribuita dinamicamente 3. F3 - Prestazioni 0: Nessun requisito 5: Requisiti molto stringenti (appl. time critical) 4. F4 - Utilizzo della Configurazione 0: Nessun vincolo 5: Utilizzo di molte configurazioni con pesanti vincoli sulle risorse 5. F5 - Frequenza delle Transazioni 0: Nessun picco di utilizzo 5: Vari picchi e stringenti livelli di servizio 6. F6 - Inserimento dati interattivo 0: Tutto batch 5: Le transazioni per inserimento dati sono > 30% di quelle presenti nella applicazione 7. F7: Efficienza per l utente finale 0: Nessun supporto per l utente 5: Altissima usabilità

Function Point Analysis : Fattori di aggiustamento 1. F8: Aggiornamento interattivo 0: Non fornisce nessun aggiornamento interattivo 5: Altissima protezione contro la perdita dei dati, con procedure automatiche 2. F9: Complessità elaborativa 0: Nulla 5: Elaborazioni matematiche o logiche complesse 3. F10: Riusabilità 0: non esiste codice riusabile 5: alta necessità di riusabilità e parametrizzazione del codice 4. F11: Facilità di installazione 0: Non sono richieste particolari inizializzazioni 5: Sono necessarie guide e strumenti di installazione e conversione 5. F12: Facilità di gestione operativa 0: Nessuna esigenza 5: Applicazione per operazioni non presidiate 6. F13: Molteplicità dei siti 0: Un solo sito (appl. stand alone) 5: Molti siti caratterizzati da ambienti hw/sw eterogenei 7. F14: Facilità di modifica 0: Applicazione rigida 5: Esistono molti strumenti interni alla appl. per permetterne una facile modifica (macro, tabelle, ecc.)

Function Point Analysis : calcolo FP = FP = UFP VAF UFP = 5X i=1 VP i VAF = 0:65 + 0:01 5X X14 F i i=1 X14 VP i (0:65 + 0:01 i=1 i=1 F i )

Function Point Analysis : calcolo FP = FP = UFP VAF UFP = 5X i=1 VP i VAF = 0:65 + 0:01 5X X14 F i i=1 X14 VP i (0:65 + 0:01 i=1 i=1 F i )

Function Point Analysis : calcolo FP = FP = UFP VAF UFP = 5X i=1 VP i VAF = 0:65 + 0:01 5X X14 F i i=1 X14 VP i (0:65 + 0:01 i=1 i=1 F i )

Function Point Analysis Gli F i sono fattori di regolazione della complessità del programma, che non riguardano tanto la funzionalità (VP i ) quanto lo sforzo aggiuntivo che dovrgià essere fatto per rispondere ai 14 requisiti non funzionali.

Esempio : Programma gestione magazzino Una sola schermata per l immissione dati: Codice Cliente, CF, Nome Organizzazione, Nom. Prefisso, Telefono, Telefax, Data Inserimento referente, Indirizzo,

Esempio CALCOLO PF PASSO 1) Rilevare le occorrenze dei 5 tipi di funzioni elementari (EI, EQ, EO, ILF, EIF). PASSO 2) Assegnare a queste occorrenze il livello di complessità PASSO 3) Determinare il numero di punti funzione base (unadjusted). PASSO 4) Valutare il grado di complessità VAF del software. PASSO 5) Calcolare il numero definitivo di PF moltiplicando PFbase x VAF

Esempio : Programma gestione magazzino Una sola schermata per l immissione dati: DATI: Codice Cliente, CF, Nome Organizzazione, Nom. Indirizzo, Prefisso, Telefono, Telefax, Data Inserimento referente, FUNZIONI: INSERISCI ANNULLA RICERCA (per data di inserimento)

Esempio : Programma gestione magazzino PASSO 1 1. 2 funzioni elementari di input (EI) Inserisci, Annulla 2. una funzione di output (EO) Stampa 3. una funzione di query (EQ) Ricerca 4. un file interno (ILF) Dati anagrafici 5. nessun file d interfaccia esterno (EIF)

Esempio : Programma gestione magazzino PASSO 2 Elemento N. di DET N. di RET/FTR Inserisci (EI) 10 1 Modifica (EI) 10 1 Ricerca (EQ) 9 1 Dati anagrafici (ILF) 9 1 Stampa (EO) 9 1

Esempio : Programma gestione magazzino PASSO 3 EI x 3 = 6 UPF (1 FTR, 10 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 4 TOTALE UPF = 20

Esempio : Programma gestione magazzino PASSO 3 EI x 3 = 6 UPF (1 FTR, 10 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 4 TOTALE UPF = 20

Esempio : Programma gestione magazzino PASSO 3 EI x 3 = 6 UPF (1 FTR, 10 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 4 TOTALE UPF = 20

Esempio : Programma gestione magazzino PASSO 3 EI x 3 = 6 UPF (1 FTR, 10 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 4 TOTALE UPF = 20

Esempio : Programma gestione magazzino PASSO 3 EI x 3 = 6 UPF (1 FTR, 10 DET) ) complessità bassa ) peso = 3 EQ x 3 = 3 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 3 ILF x 7 = 7 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 7 EO x 4 = 4 UPF (1 FTR, 9 DET) ) complessità bassa ) peso = 4 TOTALE UPF = 20

Esempio : Programma gestione magazzino PASSO 4) Valutare il grado di complessità VAF del software. 1. F1 - Comunicazione Dati: 0 2. F2 - Distribuzione della elaborazione: 0 3. F3 - Prestazioni: 2 4. F4 - Utilizzo della Configurazione: 0 5. F5 - Frequenza delle Transazioni: 2 6. F6 - Inserimento dati interattivo: 2 7. F7: Efficienza per l utente finale: 2

Esempio : Programma gestione magazzino PASSO 4) Valutare il grado di complessità VAF del software. 1. F8: Aggiornamento interattivo: 0 2. F9: Complessità elaborativa: 0 3. F10: Riusabilità: 4 4. F11: Facilità di installazione: 3 5. F12: Facilità di gestione operativa: 0 6. F13: Molteplicità dei siti: 0 7. F14: Facilità di modifica: 5

Esempio : Programma gestione magazzino PASSO 5) X14 i=1 F i = 20 VAF = 0.85 PF = UPF * VAF = 20 * 0.85 = 17

Esempio : Programma gestione magazzino PASSO 5) X14 i=1 F i = 20 VAF = 0.85 PF = UPF * VAF = 20 * 0.85 = 17

Esempio : Programma gestione magazzino PASSO 5) X14 i=1 F i = 20 VAF = 0.85 PF = UPF * VAF = 20 * 0.85 = 17

Function Point Analysis I valori di FP possono essere utilizzati per quantificare la dimensione del programma e per ricavare le altre misure indirette.

Function Point Analysis Vantaggi e svantaggi Vantaggi: Utilizzabile nei contratti Indipendente dalla tecnologia Usati effettivamente nelle gare d appalto Possibilità di essere trasformati in LOC (backfiring); quindi possono essere applicati i modelli di costo basati su LOC

Function Point Analysis Vantaggi e svantaggi Svantaggi: Più difficile da calcolare rispetto al LOC. Il calcolo non è semplice e deve essere fatto da esperti e con strumenti adeguati Poco raffinata perchè non fa riferimento alla complessità dell algoritmo: ad es. data una funzione con un certo input e un certo output, ci possono essere algoritmi molto semplici o molto complessi: il loro FP resta invariato. Principalmente applicati in software di tipo gestionale ove la parte dati e funzioni Ë sufficiente per descrive i requisiti del software e il software; esiste poca esperienza con software ove il parallelismo e i vincoli temporali sono importanti

Function Point Analysis Relazione tra la grandezza del codice e i Punti Funzione: LINGUAGGIO NUMERO COMANDI PER FP Assembler 320 C 150 Algol 106 COBOL 106 (110) FORTRAN 106 Pascal 91 RPG 80 PL/1 80 (65) MODULA 2 71 LISP 64 BASIC 64 C++ 29 APL 32 SMALLTALK 21 QUERY Languages 16

Backfiring Capers Jones, Backfiring: Converting Lines of Code to Function Points. IEEE Computer 28(11):

Backfiring : correzione Aspetti usati nella correzione: 1. Complessità del problema 1: Solo algoritmi e calcoli semplici 5: Molti algoritmi e calcoli complessi 2. Complessità delle strutture dati 1: Poche variabili scarsamente correlate tra di loro 5: Struttura dei file complessa con molte interrelazioni tra file 3. Complessità del codice 1: Non Procedurale 2: Molto strutturato con moduli riusabili 5: Scarsamente strutturato

Backfiring : correzione Backfiring = UV C a C a = 0:7 + 0:05 (C t 3) dove C t = Complessità del problema + Complessità delle strutture dati + Complessità del codice

Backfiring : correzione Backfiring = UV C a C a = 0:7 + 0:05 (C t 3) dove C t = Complessità del problema + Complessità delle strutture dati + Complessità del codice

Backfiring : esempio Applicazione software di 45 Punti Funzione Linguaggio C++ Complessità Problema: Semplice Complessità Dati: Struttura complessa Complessità programma: Molto strutturato

Backfiring : esempio Coefficiente medio di backfiring di C++ = 53 LOC x PF Complessità problema = 1 Complessità codice = 2 Complessità strutture dati = 5 UV = 45 53 = 2:385 C t = 8 Ca = 0:7 + 0:05 (8 3) = 0:95 Backfiring = 2:385 0:95 = 2:266LOC

Backfiring : esempio Coefficiente medio di backfiring di C++ = 53 LOC x PF Complessità problema = 1 Complessità codice = 2 Complessità strutture dati = 5 UV = 45 53 = 2:385 C t = 8 Ca = 0:7 + 0:05 (8 3) = 0:95 Backfiring = 2:385 0:95 = 2:266LOC

Backfiring : esempio Coefficiente medio di backfiring di C++ = 53 LOC x PF Complessità problema = 1 Complessità codice = 2 Complessità strutture dati = 5 UV = 45 53 = 2:385 C t = 8 Ca = 0:7 + 0:05 (8 3) = 0:95 Backfiring = 2:385 0:95 = 2:266LOC