Lezione 6 – Richiami sulle metriche
Ingegneria del software
Modulo 2 - Il software come prodotto
Unità didattica 2 - I costi del software
Ernesto Damiani
Università degli Studi di Milano
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
• 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
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
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
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
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
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
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
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
Stima della produttività
• Sistemi embedded e real-time, 40-160 LOC/Pmese
• 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
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
Scarica

Richiami sulle metriche