Viktigheten av Cohesion & Kobling i Software Design

Samhold og kobling både måle forholdet mellom elementer av dataprogrammer. Kohesjonsegenskaper måler hvor komponentene i en programvaremodul eller en klasse av programvareobjekter forholder seg til hverandre. Koblings måler forholdet mellom egne klasser og moduler. God programmering øker kohesjonen og reduserer mengden av koplingen.

Cohesion

En klasse eller modul har høy samhold hvis alle ansvar, data og metoder som er inkludert er nært beslektet. Hvis et prosjekt-planlegging modul omfatter bare metoder eller funksjoner knyttet til planlegging, er det svært sammenhengende; hvis den inneholder også org diagrammer og en kundedatabase, er det mindre sammenhengende. For å måle samhold, beregne antall delte felt som metoder - subrutiner - i en klasse har tilgang til og sammenligne den med antall urelaterte områder de bruker. Jo større antall felles felt, jo større kohesjon.

Betydning

Hvis en modul har til å håndtere flere operasjoner - sikkerhet, infrastruktur, nettverk regler - det blir vanskeligere å jobbe med enn om alt i modulen fokuserer på ett enkelt formål. Med en lav-samhold modell, må du kanskje gjøre flere urelaterte endringer fordi hver del trenger en annen løsning eller lapp. Derimot, hvis relaterte funksjoner er delt inn i flere filer i stedet for en enkelt sammenhengende filer, kan det hende du må gjøre gjentatte identiske endringer i hver fil i stedet for en enkelt løsning til en enkelt fil.

kobling

Når programvaren design bruker tett kopling mellom klasser eller delsystemer, som betyr at de er koblet sammen: System A kan ikke utføre jobben sin uten å vite detaljer om hva System B gjør, og en endring i B betyr en har til å endre så vel . Med løs kobling, kan du endre system En lettere. Det er også vanskeligere å studere koden for A hvis du ikke kan forstå det uten å analysere koden for B og deres forhold.

Effektivitet

Lav kobling gjør koding mer effektiv fordi du kan bruke mer kode: Hvis System A og System B er ikke avhengige av hverandre, kan du kopiere denne koden til ett av dem inn i et annet program uten problemer. Programvare som inkluderer duplikat koding for dobbeltfunksjoner er et annet tegn på ineffektivitet. Du er ofte bedre hvis du skrive om programmet for å fjerne dupliserte funksjoner, deretter tilordne funksjonen til sin egen sammenhengende modul. Jo lavere nivå av koblingen, de enklere slike omfattende endringer bli.