Le metriche CK e MOOD di un progetto software

Le metriche Ck e Mood di un progetto software

In questo articolo trattero nello specifico le metriche Ck e le metriche Mood utilizzate dall’ingegneria del software per valutare la qualità di un progetto software. Essi sono due insiemi di metriche che ci misurano gli stessi aspetti, più o meno nove aspetti diversi che secondo Whitmare sono i più rilevanti per dare una caratterizzazione di un progetto orientato agli oggetti.

Vediamo quali sono queste caratteristiche:

  1. Dimensioni;
  2. Complessità;
  3. Accoppiamento;
  4. Sufficienza;
  5. Completezza, è un parametro implicito. Insieme di caratteristiche rispetto a cui vogliamo confrontare l’astrazione o il componente.
  6. Coesione, aspetto molto importante misurabile legato in maniera inversa all’accoppiamento. Infatti quanto più due parti sono lascamente accoppiate tanto più alta sarà la coesione interna di ciascuno. Se la Classe A ha poche interazioni con la classe B, sicuramente al suo interno è altamente coesa;
  7. Primitività, ci dice quanto un’operazione è atomica;
  8. Similarità;
  9. Volatilità: misura della probabilità che si verifichi una modifica.

Le metriche CK

Delle caratteristiche appena esposte quelle più significative sono dimensione, complessità, accoppiamento e coesione. Vediamo la categoria delle metriche CK, acronimo dei due ideatori. La prima delle metriche di questo test è quella dei metodi pesati per classe (WMC=Weighted Method per Class).

La formula corrispondente è la seguente:

WMC = Σ ci          i=1,…,n

Supponiamo di avere n metodi ciascuno di complessità c1…cn,  la metrica è ottenuta come sommatoria delle ci al variare di n. Il problema quindi sta nel valutare la complessità del metodo, e per fare ciò si utilizzano altre metriche.

La metrica utilizzata è quella della complessità ciclomatica (VG(c)), una misura che ci calcola sul grafo di controllo il numero di link all’interno del grafo. Posso eventualmente utilizzare anche l’insieme dei metodi implementati nella classe (Mim(c)). Il valore del WMC deve essere basso.

La seconda misura è il DIT , ossia la profondità dell’albero di ereditarietà, che misura quanto un nodo dista dalla radice dell’albero di ereditarietà. E’ preferibile che la profondità dell’albero sia bassa.

La terza misura è il numero di figli (NOC), ossia il numero di sottoclassi figlie di una superclasse, può essere alto ma è sempre preferibile che sia basso. Al crescere di questa misura, cresce anche il numero di casi test da effettuare.

La quarta misura è data dalle risposte per classe, ossia il numero di metodi che possono essere eseguiti in risposta ad un messaggio ricevuto da un oggetto della classe. Il suo valore deve essere basso.

La quinta misura è l’accoppiamento, ossia il numero di collaborazioni tra classi. Si può avere l’accoppiamento anche tra altre parti software. Più il valore è basso, più la classe è indipendente e quindi riusabile.

Sesta misura: LCOM (Lack of Coesion in Methods), ossia mancanza di coesione nei metodi. Questo parametro deve essere basso.

Le metriche MOOD

La seconda famiglia di metriche ha più o meno metriche che valutano gli stessi parametri, è stata realizzata nel 1998 e sono le metriche MOOD.

Le metriche sono le seguenti:

  1. MIF, fattore di ereditarietà del metodo. Essa mi da un’indicazione sulla manutenibilità.
  2. Fattore di accoppiamento. Questo fattore deve essere basso.

 

Precedente Ingegneria del software e metriche di prodotto software Successivo Le metriche Laurence e Kidd di un progetto software

Lascia un commento

*