2. Valutazione di qualità

Coupling

Cattura il grado di connessione tra classi: maggiore è, maggiore interdipendenza tra classi si ha e di conseguenza si avrà maggior difficoltà a modificare una classe.

Dovrebbe essere quindi il più basso possibile.

Coupling di interazione: si ha quando un metodo di una classe chiama metodi di altre classi.

Coupling di componenti: si ha quando una classe A contiene al suo interno attributi/parametri/metodi con variabili locali di tipo C.

Coupling di ereditarietà: si ha quando una classe è sottoclasse di un’altra.

Coesione

Riguarda il motivo per il quale più componenti sono all’interno dello stesso modulo: solo elementi fortemente collegati tra loro dovrebbero essere nello stesso modulo.

Coesione di metodo: è maggiore quando un metodo implementa una funzione singola e ben definita.

Coesione di classe: una classe dovrebbe rappresentare solo un concetto e tutti i suoi attributi devono contribuire alla sua descrizione.

Coesione di ereditarietà: è maggiore quando le relazioni di ereditarietà riguardano generalizzazione, specializzazione e riutilizzo.