130 likes | 272 Views
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.
E N D
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 puntiapplicazione) 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/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
FINE 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