Accoppiamento e coesione
-
09-06-2019 - |
Soluzione
Accoppiamento
Sciolto:Tu e il ragazzo del minimarket.Comunichi attraverso un protocollo ben definito per raggiungere i tuoi rispettivi obiettivi: paghi soldi, lui ti lascia uscire con il sacchetto di Cheetos.Ciascuno di voi può essere sostituito senza interrompere il sistema.
Stretto:Tu e tua moglie.
Coesione
Basso:Il minimarket.Ci vai per qualsiasi cosa, dal gas al latte al bancomat.Prodotti e servizi hanno poco in comune e la comodità di averli tutti in un unico posto potrebbe non essere sufficiente a compensare il conseguente aumento dei costi e la diminuzione della qualità.
Alto:Il negozio di formaggi.Vendono formaggio.Nient'altro.Non posso batterli quando si tratta di formaggio.
Altri suggerimenti
Accoppiamento - Una misura di quanto un modulo (pacchetto, classe, metodo) si basa su altri moduli.È auspicabile ridurre l'accoppiamento o ridurre la quantità di dipendenza di un dato modulo dagli altri moduli di un sistema.
Coesione - Una misura di quanto strettamente correlati i membri (classi, metodi, funzionalità all'interno di un metodo) di un modulo sono rispetto agli altri membri dello stesso modulo.È auspicabile aumentare la coesione poiché ciò indica che un modulo ha un compito molto specifico e svolge solo quel compito.
Una delle discussioni più complete sui concetti di progettazione del software relativi all'OO (compresi questi) è quella di Bertrand Meyer Costruzione di software orientato agli oggetti.
Per quanto riguarda l'accoppiamento, fornisce la regola sull'accoppiamento debole/interfacce piccole come segue:
Se due moduli comunicano, dovrebbero scambiarsi meno informazioni possibile.
Il materiale di Meyer relativo alla coesione non si riduce mai a una singola affermazione concisa, ma penso che questa frase di Steve McConnell Codice completato lo riassume abbastanza bene:
La coesione si riferisce a quanto tutte le routine di una classe o tutto il codice di una routine supportano uno scopo centrale
Accoppiamento significa dipendenza dagli altri.
Coesione significa completezza con se stessi.
Un modo rapido e sporco per misurare l'accoppiamento è misurare il tuo import
(o simili) affermazioni.
"L'accoppiamento è una misura di interdipendenze tra i moduli, che dovrebbero essere minimizzate" "La coesione, una qualità da massimizzare, si concentra sulle relazioni tra le attività svolte da ciascun modulo."
citato da questo articolo: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf