Cos'è la coesione nell'ingegneria del software
Il significato letterale di "coesione" è coerenza e organizzazione di unità diverse. In informatica e ingegneria del software, la coesione indica il livello di forza e unità con cui i diversi componenti di un programma sono interrelati. È norma che i programmi siano sviluppati tramite funzioni o moduli interrelati, ognuno con compiti separati. La coesione determina la robustezza del codice sorgente e si comprende attraverso principi associativi, tipi e metodi di calcolo.
Fondamenti
Il concetto cattura 'qualità', 'concisenza' ed 'efficacia' di un programma. Facilita nel determinare quanto strettamente collegati siano i moduli, indicando quanto rapidamente eseguano i compiti. Maggiore coesione si ottiene con operazioni molto simili tra moduli, ed è inversamente proporzionale al numero di moduli. Un programma con molti moduli per molti compiti ha probabilità di coesione inferiore, influendo negativamente su prestazioni ed efficacia.
Principi associativi
Si riferiscono ai tipi di relazione tra un modulo software e le relative azioni. Costituiscono collettivamente la coesione e variano secondo requisiti operativi. Esistono sette principi formalizzati per sette tipi di coesione: coincidenziale, logica, temporale, procedurale, comunicazionale, sequenziale, funzionale. Ogni tipo ha un principio unico che definisce le proprietà d'azione del modulo.
Proprietà
Se un software ha tre moduli simili nelle azioni, la coesione aumenta. Diminuisce se i moduli hanno azioni completamente diverse. La coesione dipende anche dai tipi di dati processati, ed è inversamente proporzionale all'aumento dei tipi di dati.
Analisi
La coesione si analizza con metodi quantitativi e qualitativi. Quelli qualitativi analizzano il codice testuale prendendo campioni e valutandoli secondo standard del linguaggio. Quelli quantitativi identificano il numero di moduli e valutano le loro azioni secondo scale predefinite.