Samhørighed og kobling både måle forholdet mellem elementer af computersoftware. Samhørighed måler, hvor komponenterne i et softwaremodul eller en klasse af software objekter relaterer til hinanden . Kobling måler forholdet mellem separate klasser og moduler. God programmering øger samhørigheden og nedsætter mængden af koblingen . Samhørighed
En klasse eller modul har en høj sammenhængskraft , hvis alle ansvarsområder , data og metoder, det omfatter nært beslægtede . Hvis et projekt - planlægning modul omfatter kun metoder eller funktioner vedrørende planlægning, er det meget sammenhængende , hvis det omfatter også organisationsdiagrammer og en kundedatabase , det er mindre sammenhængende . For at måle samhørighed beregne antallet af delte felter, metoder - subrutiner - i en klasse har adgang til og sammenligne det med det antal uafhængige felter , de bruger. Jo større antallet af fælles felter , jo større samhørighed
Betydning
p Hvis et modul har til at håndtere flere operationer - . Sikkerhed, infrastruktur , netværk reglerne - bliver det sværere at arbejde med , end hvis alt i modulet fokuserer på et enkelt formål . Med en lav - samhørighed model , kan du nødt til at foretage flere uafhængige ændringer, fordi hver del har brug for en anden fix eller plaster . Omvendt, hvis relaterede funktioner er opdelt i flere filer snarere end en enkelt sammenhængende filer , kan du nødt til at foretage gentagne identiske ændringer til hver fil i stedet for en enkelt rettelse til en enkelt fil.
kobling
Når din software design bruger tæt kobling mellem klasser eller delsystemer , der betyder, at de er indbyrdes forbundne : System A kan ikke udføre sit arbejde uden at vide detaljer om, hvad System B gør, og en skifte til B betyder A har til at ændre så godt. Med løs kobling , kan du ændre System A lettere . Det er også sværere at studere koden for A , hvis du ikke kan forstå det, uden at analysere koden til B , og deres forhold.
Efficiency
Lav kobling gør kodning mere effektiv, fordi du kan genbruge mere kode : Hvis System A og System B ikke indbyrdes afhængige , kan du kopiere koden til en af dem ind i et andet program uden besvær. Software, som indeholder dublerede koder for dobbeltfunktioner er endnu et tegn på ineffektivitet. Du er ofte bedre stillet, hvis du omskrive programmet til at fjerne dobbeltfunktioner , derefter tildele funktionen til sin egen sammenhængende modul. Jo lavere niveauet for koblingen , jo lettere sådanne gennemgribende ændringer blive.