La coesione è una misura qualitativa, il che significa che il codice sorgente da misurare viene esaminato usando una rubrica per determinare una classificazione. I tipi di coesione, dal peggiore al migliore, sono i seguenti:
Coesione coincidente (peggiore) La coesione coincidente è quando parti di un modulo sono raggruppate arbitrariamente; l’unica relazione tra le parti è che sono state raggruppate insieme (ad esempio, una classe “Utilities”). Esempio:
/*Groups: The function definitionsParts: The terms on each function*/Module A{ /* Implementation of r(x) = 5x + 3 There is no particular reason to group functions in this way, so the module is said to have Coincidental Cohesion. */ r(x) = a(x) + b(x) a(x) = 2x + 1 b(x) = 3x + 2}
/*Groups: The function definitionsParts: The terms on each function*/Module A { /* Implementation of arithmetic operations This module is said to have functional cohesion because there is an intention to group simple arithmetic operations on it. */ a(x, y) = x + y b(x, y) = x * y}Module B { /* Module B: Implements r(x) = 5x + 3 This module can be said to have atomic cohesion. The whole system (with Modules A and B as parts) can also be said to have functional cohesion, because its parts both have specific separate purposes. */ r(x) = .a(.b(5, x), 3)}
/*Groups: The function definitionsParts: The terms on each function*/Module A { /* Implementation of r(x) = 2x + 1 + 3x + 2 It's said to have perfect cohesion because it cannot be reduced any more than that. */ r(x) = 5x + 3}
Anche se la coesione è una scala di tipo ranking, i ranghi non indicano una progressione costante di miglioramento della coesione. Studi di varie persone tra cui Larry Constantine, Edward Yourdon e Steve McConnell indicano che i primi due tipi di coesione sono inferiori; la coesione comunicazionale e quella sequenziale sono molto buone; e la coesione funzionale è superiore.
Mentre la coesione funzionale è considerata il tipo di coesione più desiderabile per un modulo software, potrebbe non essere raggiungibile. Ci sono casi in cui la coesione comunicazionale è il massimo livello di coesione che può essere raggiunto nelle circostanze.