Che cos'è la coesione nell'ingegneria del software?
I significati letterari della parola "coesione" sono consistenza e organizzazione di diverse unità. In informatica e ingegneria del software, la coesione si riferisce al livello di forza e unità con cui i diversi componenti di un programma software sono correlati tra loro. È rimasta una norma nell'ingegneria del software che i programmi software siano sviluppati attraverso diverse funzioni (o moduli) interconnessi e ciascuno di questi moduli ha compiti separati ad essi associati. La coesione di qualsiasi software determina la forza del suo codice sorgente e può essere ulteriormente compresa esplorando i suoi principi associativi, tipi e metodi di calcolo.
Fondamenti
Il concetto di coesione viene introdotto per catturare le caratteristiche di "qualità", "concisione" ed "efficacia" di un programma nel dominio dell'ingegneria del software. Questo concetto rende facile determinare quanto sia strettamente collegato ciascun modulo del programma software, il che indica la velocità con cui può eseguire i diversi compiti assegnatigli. L'aumento della coesione di un programma software si ottiene attraverso operazioni molto identiche eseguite dai suoi diversi moduli, ed è inversamente proporzionale al numero ridotto di moduli. Ciò significa che un programma software progettato per eseguire più attività tramite più moduli ha una maggiore probabilità di avere una coesione inferiore, il che influisce negativamente sulle sue prestazioni complessive e sull'efficacia sulle macchine informatiche.
Principi associativi
I principi associativi della coesione del software si riferiscono ai tipi di relazione tra un modulo software e le azioni corrispondenti (operazioni). Questi principi costituiscono collettivamente la coesione di qualsiasi programma software e variano a seconda delle sue diverse esigenze operative. Esistono sette principi associativi formalizzati per sette tipi di coesione del software, che include coesioni coincidenti, logiche, temporali, procedurali, comunicative, sequenziali e funzionali. Ciascuno di questi tipi di coesione ha un principio associativo univoco ad esso associato, che ne definisce le proprietà di azione per qualsiasi modulo software.
Proprietà
Ci sono alcune proprietà predefinite associate alla coesione nell'ingegneria del software. Ad esempio, se un software è costituito da tre moduli diversi e tutti sono simili tra loro in termini di azioni, la coesione complessiva del programma software aumenta. Allo stesso modo, la coesione diminuisce se questi moduli hanno azioni completamente diverse e uniche ad essi associate. Inoltre, la coesione dei programmi software dipende anche dai tipi di dati che elabora ed è inversamente proporzionale all'aumento del numero di tipi di dati.
Analisi
La coesione di un programma software può essere analizzata attraverso metodi sia quantitativi che qualitativi. Nel processo di misurazione qualitativa, il codice testuale del programma software viene analizzato prelevando i suoi diversi campioni e valutandoli secondo gli standard di codifica del rispettivo linguaggio di programmazione. Al contrario, la valutazione quantitativa della coesione identifica il numero di moduli costituiti all'interno di un programma software e ne valuta le azioni secondo scale predefinite.