Coesione (informatica)
![Abbozzo](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Puzzle_stub.svg/45px-Puzzle_stub.svg.png)
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.
Note
- ^ W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13 (2), 115-139, 1974.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)