Ingegneria del software e Metriche del software

Ingegneria del software e Metriche del software

Ingegneria del software e Metriche del software

In qualsiasi disciplina scientifica è importante poter misurare, infatti la finalità di una misura è di ottenere risultati oggettivi da eventuali esperimenti, in modo da poter rendere un determinato processo ripetibile e confrontabile; inoltre, da una serie di misure si possono ricavare modelli matematici utili per la disciplina in esame.

Le valutazioni metriche dei processi e dei progetti sono misure quantitative che consentono di conoscere l’efficacia dei processi e dei progetti software. I dati di base sono raccolti relativamente alla qualità e alla produttività. Tali dati sono poi analizzati, confrontati con le medie precedenti e usati per determinare se si sono verificati miglioramenti nella qualità e/o nella produttività. Le valutazioni sono utilizzate anche per evidenziare aree critiche in modo da realizzare soluzioni e migliorare il processo di sviluppo del software.

Se non si eseguono queste misure, ogni giudizio può basarsi esclusivamente su valutazioni personali e quindi soggettive. Invece, con l’ausilio di misure, è possibile individuare tendenze positive o negative, stimare meglio le operazioni e ottenere dei miglioramenti nel tempo.

Anche se i termini misura, misurazione e metrica sono spesso considerati sinonimi, è importante sottolineare le sottili differenze. Nell’ambito dell’ingegneria del software, una misura fornisce un’indicazione quantitativa del grado, ammontare, dimensione, capacità di un attributo di un prodotto o di un processo. La misurazione è l’atto di determinare una misura. Un glossario stilato dall’IEEE definisce così il termine metrica: “una misura quantitativa del grado in cui un sistema, componente o processo possiede un certo attributo”.

Le metriche del software giocano un ruolo chiave nell’ingegneria del software. Per poter migliorare le prestazioni, la produttività e la qualità, le organizzazioni necessitano di poter “misurare” il software a ogni stadio del ciclo di vita. Il ricorso alle metriche dovrebbe facilitare lo sviluppo di modelli capaci di descrivere, ma anche predire, le dimensioni attributi di processo e di prodotto.

In generale le metriche del software sono utili per:

  • Migliorare il processo software
  • Pianificare, seguire e controllare l’andamento di un progetto
  • Valutare la qualità di un prodotto
  • Stimare lo sforzo richiesto per sviluppare un sistema software

Le metriche del software dovrebbero essere indipendenti dello sviluppo tecnico e dalle scelte di implementazione, così da poter essere utilizzate per confrontare la produttività di differenti tecnologie e tecniche. Le metriche del software dovrebbero essere:

  • Semplici
  • Oggettive
  • Ottenibili ad un costo ragionevole
  • Valide
  • Robuste

Le misurazioni del software possono essere classificate utilizzando la stessa classificazione delle misurazioni del mondo fisico. In particolare individuiamo due famiglie: misure dirette (ad esempio la lunghezza di un chiodo) e misure indirette (ad esempio la “qualità” dei chiodi prodotti, misurata contando quelli scartati) .

Le misure dirette del processo software comprendono il costo e l’impegno impiegato. Le misure dirette del prodotto comprendono le righe di codice prodotte (LOC), la velocità di esecuzione, la memoria occupata e i difetti rilevati in un dato intervallo temporale. Le misure indirette del prodotto comprendono funzionalità (Function Point), qualità, complessità (Complessità Ciclomatica), efficienza, affidabilità, facilità di manutenzione.

LOC (Line of Code)

LOC o SLOC (Source Lines of Code) è la metrica dimensionale più semplice e conta tutte le line fisiche del codice sorgente. Questa definizione di LOC non è rigorosa in quanto su di una riga si possono trovare più di un’istruzione o parti di istruzioni. Questa metrica non tiene conto della diversa potenza dei linguaggi e non fornisce una relazione tra produttività e qualità.

NCNB (Nessun commento- Nessun spazio)

Questa metrica conteggia tutte le linee effettive del codice sorgente, non sono conteggiate le linee di commento e quelle vuote.

Viene spesso indicata con i seguenti acronimi:

  • NCNB: Non-Comment Non-Blank
  • NLOC: Non Comment Lines Of Code
  • ELOC: Effective Lines Of Code

EXEC (Excecute Statement)

Questa metrica conta solo le linee di comando del codice indipendentemente dalle linee fisiche. Tra le metriche basate sul conteggio delle righe del codice, l’EXEC è quella meno dipendente dal programmatore o dallo stile di programmazione, pertanto risulta più adatta quando un programma è scritto con più linguaggi diversi.

CLOC (Comment Lines Of Code)

Questa metrica conta solo le line di commento del codice.

CP (Comment Percentage)

La metrica Percentuale di Commenti è definita come la percentuale di linee di commento rispetto a tutte le linee di codice (escluse le linee vuote): CP = CLOC / (NLOC + CLOC).

Data l’utilità dei commenti, questa metrica è usata per valutare gli attributi di comprensibilità, riuso, e manutenzione.

Complessità Ciclomatica

La complessità ciclomatica (CC) è usata per valutare la complessità di un algoritmo ed è interamente basata sulla struttura del grafo che rappresenta l’algoritmo stesso.

Function Point

I Function Point (FP) o Punti Funzione sono una metrica del software di tipo “funzionale”, cioè definiscono le dimensioni del prodotto software in termini di funzionalità fornite all’utilizzatore.

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *