In informatica, la coesione è una misura di quanto strettamente correlate siano le varie funzionalità messe a disposizione da un singolo modulo. I metodi per misurare la coesione variano da misure qualitative, che classificano il codice sorgente del modulo in esame effettuandone la rubricazione seguendo un approccio ermeneutico, a misure quantitative che esaminano le caratteristiche testuali del codice sorgente per derivarne un valore numerico di coesione. La coesione è una misura ordinale ed è solitamente indicata nelle discussioni come "alta coesione" o "bassa coesione". Moduli con alta coesione sono solitamente preferibili in quanto l'alta coesione è spesso associata a varie caratteristiche desiderabili in un programma quali la robustezza, l'affidabilità, la riusabilità e la comprensibilità, mentre la bassa coesione è spesso associata a caratteristiche non desiderabili come il rendere difficoltose la manutenzione, le verifiche, la riusabilità e la comprensibilità.
La coesione è solitamente messa in contrapposizione all'accoppiamento. Un alto grado di coesione corrisponde spesso ad un basso grado di accoppiamento e viceversa. Le misure di qualità del software di accoppiamento e coesione furono inventate da Larry Constantine [1], basandosi sulle caratteristiche della "buona" programmazione che riduce il costo di mantenimento e di modifica di un software.