3. Metriche

Sono misure che permettono di valutare la qualità del codice scritto.

Weighted Methods per Class (WMC): la complessità di una classe dipende dal numero di metodi presenti al suo interno.

WMC = ci\sum c_i, con cic_i complessità di ogni singolo metodo presente nella classe.

Depth of Inheritance Tree (DIT): è il percorso più corto nell’albero delle dipendenze di una classe.

Number of Children (NOC): numero di sottoclassi di livello 1.

Coupling Between Classes (CBC): riduce la modularità e rende i cambiamenti più complessi.

Response for a Class (RFC): numero totale di metodi che possono essere invocati da un oggetto di una certa classe.

Lack of Cohesion in Methods (LCOM): è il numero di coppie di metodi che non sono coesi meno il numero di coppie di metodi che sono coesi.

Sintomi di un progetto fatto male

Rigidità: tendenza del codice ad essere difficilmente soggetto a cambiamenti. Ogni cambiamento causa una cascata di cambiamenti a sua volta.

Fragilità: tendenza del codice a rompersi in punti diversi ogni volta che si effettua un cambiamento.

Immobilità: impossibilità di riusare codice di altri progetti o del progetto stesso.

Viscosità: si ha quando l’uso di scorciatoie è più semplice dell’uso di metodi che rispettano il design.