Coesione e accoppiamento sia misura il rapporto fra gli elementi del software del computer . Misure di coesione come i componenti di un modulo software o una classe di oggetti software in relazione tra loro . Accoppiamento misura il rapporto tra classi e moduli separati . Buona programmazione aumenta la coesione e diminuisce la quantità di accoppiamento. Coesione
Una classe o modulo è alta coesione , se tutte le responsabilità , i dati ed i metodi che comprende sono strettamente correlati . Se un modulo di progetto di pianificazione comprende solo i metodi o funzioni relative alla programmazione , è altamente coesivo , se include anche organigrammi e un database dei clienti , è meno coesa . Per misurare la coesione , calcolare il numero di campi condivisi che i metodi - subroutine - in una classe devono accedere e confrontarlo con il numero di campi non collegati che utilizzano. Maggiore è il numero di campi comuni , maggiore è la coesione
Importanza
Se un modulo deve gestire più operazioni - . Sicurezza, infrastrutture , regole di rete - diventa più difficile da lavorare rispetto se tutto nel modulo si concentra su un unico scopo . Con un modello a bassa coesione , potrebbe essere necessario effettuare più modifiche non correlate perché ogni parte ha bisogno di una correzione o una patch diversa . Al contrario, se le funzioni relative sono divisi in diversi file piuttosto che un singolo file coesa , potrebbe essere necessario apportare modifiche identiche ripetute ogni file invece di un singolo fix in un unico file .
accoppiamento
Quando il vostro disegno software utilizza stretto accoppiamento tra classi o sottosistemi , che significa che sono interconnessi : sistema a non può svolgere il suo lavoro senza conoscere i dettagli su ciò che sta facendo il sistema B , e un cambiare per B significa a deve cambiare. Con accoppiamento lasco , è possibile modificare un sistema più facilmente . E ' anche più difficile da studiare il codice per A se non riesci a capirlo senza analizzare il codice per la B e la loro relazione .
Efficiency
accoppiamento basso rende la codifica più efficiente perché è possibile riutilizzare più codice : Se il sistema A e sistema B non sono interdipendenti , è possibile copiare il codice per uno di loro in un altro programma senza difficoltà . Software che include codifica duplicati per funzioni duplicate è un altro segno di inefficienza . Sei spesso meglio se si riscrive il programma per eliminare le funzioni duplicate , quindi assegnare la funzione al proprio modulo coesa. Più basso è il livello di accoppiamento , le più facili tali cambiamenti radicali diventano.