Cohesion
Fix-xjenza tal-komputer, cohesion huwa l-kejl ta' kemm il-kontenut ta' module ġo programm huwa relatat. Inqas ma jkun relatat, iktar ħa jkun hemm cans li jkollok bzonn tuża parti minn dik il-module bħala biċċa indipendenti fil-programm. Għalhekk hu mixtieq li l-livell ta' cohesion jkun għoli ħafna b'hekk il-kontenut jkun relatat ħafna.
Hemm kuntrast bejn Cohesion u Coupling minħabba li jmorru kontra xulxin.
Meta module jkollha ħafna cohesion, tkun tista tintuża ġo modules oħra, l-importanti li kull module bażika (mhix magħmula minn modules oħra) jkollha ħafna cohesion. B'hekk kull module tkun tista tużaha għal funzjonalita bażika biss u mhux jkollok tuża varjeta ta' funzjonalitajiet oħra li mhux mixtieqa.
Tipi ta' Cohesion
immodifika- Coincidental (Ftit cohesion u l-agħar)
Meta l-kontenut ta' module jkun hemm b'kumbinazzjoni u m'hemm l-ebda raġuni għalfejn qiegħed hemm u mhux ġo module oħra.
Eżempju: Taqbad programm mingħajr modules u kull ammont ta' linji tiġborhom f'module.
- Logical
Meta l-kontenut ta' module jkun magħmul minn affarijit relatati kategorikament jew loġikament imma ma jkunux relatati funzjonalment. Meta tgħajjat lill-module ħafna drabi trid tispeċifika liem parti tal-module trid tuża.
Eżempju: Tagħmel module magħmula minn messaġġi ta' errors differenti u tagħżel liem error trid turi jew module li tagħmel initialisations kollha.
- Temporal
Meta l-kontenut ta' module jkun magħmul minn affarijiet li għandhom jsiru flimkien imma fejn l-ordni ta' kif jsiru mhux importanti.
Eżempju: Tagħmel module li tieħu ħsieb ir-reazzjoni għal error, fosthom li tibgħat messaġġ lill-user, terġa tibda l-programm li ġralu l-error, iżżom nota tal-error ġo database u/jew tibgħatu lid-developers tal-programm.
- Procedural
Meta l-kontenut ta' module jkun magħmul minn affarijit li għandhom jsiru wara xulxin.
Eżempju: Tagħmel module li tiftaħ fajl minn diska u li trid l-ewwel tara li d-diska qiegħda hemm, imbagħad tara li l-fajl qiegħed hemm, tara wkoll b'liema format huwa miktub il-fajl u fl-aħħar tiftaħ il-file bil-metodu neċessarju.
- Communicational
Meta l-kontenut ta' module jkun magħmul minn affarijiet li jaċċettaw l-istess input jew jirritornaw l-istess output.
Eżempju: Tagħmel module li taċċetta record minn database u tirritorna l-fields kollha li fih (ma tistax tieħu field waħda biss).
- Sequential
Meta l-output li tiproduċi xi ħaġa ġo module tintuża bħala input minn parti oħra ġo l-istess module. Ovvjament it-tieni parti ma tagħmilx sens li toqgħod waħedha peress li għandha bżonn l-input ta' dik ta' qabilha.
Eżempju: Tagħmel module li tikkalkula l-persentaġġ lest minn proċess wara li ssib fejn wasal il-proċess. Ma tagħmilx sens li tikkalkula persentaġġ lest minn proċess mingħajr ma tkun taf fhiex wasal.
- Functional (Ħafna cohesion u l-aħjar)
Meta module tkun tagħmel ħaġa waħda, sempliċi u bażika u ma tagħmilx sens li tifred il-kontenut ta' din il-module għal ġo module oħra.
Eżempju: Module li tikkalkula s-sine ta' numru.