Metriche di produttività

12
Ingegneria del software Modulo 2 - Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Lezione 6 – Richiami sulle metriche

description

Metriche di produttività. Dimensionali: basate su un output dal processo software Ad esempio, linee di codice sorgente consegnato Funzionali: basate su una stima della funzionalità del software consegnato Ad esempio, i punti funzione. Richiami ai problemi di misura. - PowerPoint PPT Presentation

Transcript of Metriche di produttività

Page 1: Metriche di produttività

Ingegneria del software

Modulo 2 - Il software come prodotto

Unità didattica 2 - I costi del software

Ernesto Damiani

Università degli Studi di Milano

Lezione 6 – Richiami sulle metriche

Page 2: Metriche di produttività

Metriche di produttività

• Dimensionali: basate su un output dal processo software

– Ad esempio, linee di codice sorgente consegnato

• Funzionali: basate su una stima della funzionalità del software consegnato

– Ad esempio, i punti funzione

Page 3: Metriche di produttività

Richiami ai problemi di misura

• Stima dei valori della metrica (ad esempio, il numero di punti funzione)

• Stima del numero totale di mesi impiegati dal programmatore

• Stima della produttività della parte contraente (ad esempio, team di documentazione) e inserimento di questa stima nella stima complessiva

Page 4: Metriche di produttività

Linee di codice

• Metrica proposta inizialmente quando i programmi venivano digitati su schede con una linea per scheda

• Presuppone che ci sia un rapporto lineare tra dimensioni del sistema e volume di documentazione

Page 5: Metriche di produttività

LOC e produttività

• Più il linguaggio è di basso livello e più il programmatore è produttivo

– La stessa funzionalità implementa più codice in un linguaggio di livello basso che in un linguaggio di livello alto

• Più il programmatore è prolisso e più alta è la produttività

– Le metriche di produttività basate su linee di codice suggeriscono che i programmatori che scrivono codici prolissi siano più produttivi di quelli che scrivono codici compatti

Page 6: Metriche di produttività

Punti funzione (1)

• Si basano su una combinazione di caratteristiche di programma:

– output e input esterni

– interazioni utente

– interfacce esterne

– file usati dal sistema

• A ognuno di questi elementi è associato un peso e i punti funzione vengono calcolati moltiplicando ogni valore grezzo per il peso e poi sommando tutti i valori

Page 7: Metriche di produttività

Punti funzione (2)

• Il calcolo dei punti funzione tiene conto della complessità del progetto

• I punti funzione possono essere usati per stimare le LOC a seconda del numero medio di LOC per punti funzione per un linguaggio dato

– LOC = AVC * numero di punti funzione

– AVC è un fattore che dipende dal linguaggio e varia da 200-300 per linguaggio di assemblaggio a 2-40 per un 4GL

• I punti funzione sono molto soggettivi e dipendono da chi esegue la stima

– Il conteggio automatico dei punti funzione è impossibile

Page 8: Metriche di produttività

Punti oggetto (1)

• I punti oggetto (chiamati anche punti applicazione) sono una metrica relativa alle funzioni alternativa ai punti funzione quando per lo sviluppo vengono usati 4GL o linguaggi orientati agli oggetti

Page 9: Metriche di produttività

Punti oggetto (2)

• Il numero di punti oggetto in un programma è una stima pesata del numero di

– schermate visualizzate

– report prodotti dal sistema

– moduli di programma che devono essere sviluppati oltre al codice dei database

Page 10: Metriche di produttività

Stima dei punti oggetto

• I punti oggetto rispetto ai punti funzione sono più facili da stimare, perché riguardano semplicemente le schermate, i report e i moduli di linguaggio di programmazione

– Possono quindi essere stimati nelle prime fasi nel processo di sviluppo

• Nelle fasi preliminari è molto difficile stimare il numero di linee di codice che avrà il sistema

Page 11: Metriche di produttività

Stima della produttività

• Sistemi embedded e real-time, 40-160 LOC/P-mese

• Programmi di sistema, 150-400 mese

• Applicazioni commerciali, 200-900 LOC/P-mese

• In termini di punti oggetto, la produttività è stata misurata tra 4 e 50 punti oggetto/mese a seconda del supporto di tool e delle capacità dello sviluppatore

Page 12: Metriche di produttività

Qualità e produttività

• Generalmente la produttività può essere aumentata solo a scapito della qualità

• Non è chiaro però come siano correlate le metriche di qualità e la produttività

• Tutte le metriche che si basano su tempo unitario e volume sono deboli perché non tengono conto della qualità

• Se i requisiti cambiano continuamente, un approccio basato sul conteggio delle linee di codice non è significativo, perché il programma stesso non è statico

FINE