Misurare la struttura

La misurazione delle proprietà strutturali di un software è importante per stimare lo sforzo di sviluppo e per la manutenzione del prodotto. La struttura dei requisiti, del design e del codice aiuta a comprendere la difficoltà che sorge nella conversione di un prodotto in un altro, nel testare un prodotto o nel prevedere gli attributi del software esterno dalle prime misure interne del prodotto.

Tipi di misure strutturali

La struttura del software ha tre parti. Sono -

  • Control-flow structure - È la sequenza in cui le istruzioni vengono eseguite in un programma.

  • Data-flow structure - È il comportamento dei dati mentre interagisce con il programma.

  • Data structure - È l'organizzazione degli elementi di dati sotto forma di elenchi, code, stack o altre strutture ben definite insieme all'algoritmo per crearli, modificarli o eliminarli.

Misurazione della struttura del flusso di controllo

Le misure del flusso di controllo sono solitamente modellate con un grafo diretto, dove ogni nodo o punto corrisponde alle istruzioni del programma e ogni arco o bordo diretto indica il flusso di controllo da un'istruzione all'altra. Questi grafici sono chiamati grafico di flusso di controllo o grafico diretto.

Se ‘m’ è una misura strutturale definita in termini di modello del diagramma di flusso e se programma A è strutturalmente più complesso del programma B, quindi la misura m(A) dovrebbe essere maggiore di m(B).

Misurazione della struttura del flusso di dati

Il flusso di dati o il flusso di informazioni può essere inter-modulare (flusso di informazioni all'interno dei moduli) o intra-modulare (flusso di informazioni tra i singoli moduli e il resto del sistema).

A seconda del modo in cui i dati si muovono attraverso il sistema, possono essere classificati come segue:

  • Local direct flow - Se un modulo richiama un secondo modulo e gli passa informazioni o il modulo invocato restituisce un risultato al chiamante.

  • Local indirect flow - Se il modulo richiamato restituisce informazioni che vengono successivamente passate a un secondo modulo richiamato.

  • Global flow - Se le informazioni fluiscono da un modulo all'altro attraverso una struttura dati globale.

La complessità del flusso di informazioni può essere espressa secondo Henry e Kafura come,

Information flow complexity (M) = length (M) × fan-in (M) × (fan-out (M))2

Dove,

  • Fan-in (M) - Il numero di flussi locali che terminano in M ​​+ il numero di strutture dati da cui le informazioni vengono recuperate da M.

  • Fan–out (M) - Il numero di flussi locali che emanano da M + il numero di strutture dati che vengono aggiornate da M.

Misurazione della struttura dei dati

La struttura dei dati può essere entrambe le cose local e global.

Locally, verrà misurata la quantità di struttura in ogni elemento di dati. Un approccio basato sulla teoria dei grafici può essere utilizzato per analizzare e misurare le proprietà delle singole strutture di dati. In questo modo semplici tipi di dati come numeri interi, caratteri e booleani sono visti come numeri primi e vengono prese in considerazione le varie operazioni che ci consentono di costruire strutture di dati più complesse. Le misure della struttura dati possono quindi essere definite gerarchicamente in termini di valori per i numeri primi e valori associati alle varie operazioni.

Globally, verrà misurato un conteggio del numero totale di variabili definite dall'utente.