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 = , con 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.