Kuunganisha dhidi ya Mshikamano
Kuunganisha na kuunganishwa ni dhana mbili zinazopatikana katika Java (na lugha zingine zote zinazolenga vitu). Kuunganisha hupima ni kiasi gani kila moduli za programu zinategemea moduli zingine za programu. Uwiano hupima jinsi kila moja ya vitendaji vinavyohusiana kwa nguvu ndani ya moduli. Kwa kweli, lugha yoyote inayolengwa na kitu (ikiwa ni pamoja na Java) ina malengo makuu mawili ya kuongeza mshikamano na kupunguza uunganishaji kwa wakati mmoja, ili kuendeleza programu zinazofaa zaidi. Vipimo hivi viwili vya uhandisi wa programu viliundwa na Larry Constantine ili kupunguza gharama ya kurekebisha na kudumisha programu.
Mshikamano ni nini?
Muunganisho hupima jinsi kila moja ya vipengele inavyohusiana katika sehemu ya programu. Madarasa yaliyopangwa vizuri husababisha programu zenye mshikamano. Ikiwa darasa fulani linatekeleza seti ya vitendaji vinavyohusiana sana, darasa hilo linasemekana kuwa na mshikamano. Kwa upande mwingine, ikiwa darasa linafanya rundo la utendaji ambao hauhusiani kabisa hiyo inamaanisha kuwa darasa halina mshikamano hata kidogo. Ni muhimu kuelewa kwamba kutokuwa na mshikamano haimaanishi kuwa programu ya jumla haina utendakazi unaohitajika. Ni kwamba tu bila mshikamano, itakuwa ngumu sana kudhibiti utendakazi kwa sababu watatawanyika katika sehemu nyingi zisizo sahihi kadiri ugumu wa programu unavyoongezeka kwa wakati. Kudumisha, kurekebisha na kupanua mienendo iliyosambaa kote kwenye msimbo ni jambo gumu sana hata kwa watengenezaji programu wenye uzoefu zaidi.
Kuunganisha ni nini?
Kuunganisha hupima ni kiasi gani kila sehemu ya programu inategemea moduli zingine za programu. Mwingiliano kati ya vitu viwili hutokea kwa sababu kuna kuunganisha. Programu zilizounganishwa kwa urahisi ziko juu katika kubadilika na upanuzi. Uunganisho thabiti haufai kamwe kwa sababu kitu kimoja kinaweza kutegemea sana kitu kingine. Hii ni ndoto mbaya wakati msimbo unarekebishwa, kwa sababu uunganisho wa juu unamaanisha kuwa waandaaji wa programu wanahitaji kufanya kazi kwenye maeneo kadhaa ya msimbo hata kwa marekebisho moja ya tabia. Uunganisho thabiti daima husababisha programu zilizo na unyumbufu mdogo na upanuzi mdogo. Walakini, katika lugha za programu kama Java, kuzuia kabisa kuunganishwa haiwezekani. Lakini inashauriwa kwamba waandaaji wa programu watoe juhudi zao nzuri ili kupunguza uunganisho iwezekanavyo. Pia kuna uwezekano wa kuwa na viambatanisho ili kusaidia vitu kuingiliana bila kuathiri uzani na unyumbulifu wake.
Kuna tofauti gani kati ya Kuunganishwa na Mshikamano?
Ingawa kuunganisha na kuunganishwa kunashughulika na ubora wa sehemu katika uhandisi wa programu, ni dhana tofauti kabisa. Mshikamano huzungumza kuhusu ni kiasi gani utendakazi unahusiana ndani ya moduli, huku uunganishaji hushughulika na kiasi gani moduli moja inategemea moduli nyingine za programu ndani ya programu nzima. Ili kuwa na programu bora zaidi, mshikamano na uunganisho unapaswa kufikia ncha mbili tofauti za wigo wao. Kwa maneno mengine, kuunganisha huru na mshikamano wenye nguvu hutoa programu bora zaidi. Kuwa na sehemu za faragha, madarasa yasiyo ya umma na mbinu za kibinafsi hutoa uunganishaji huru, huku ikiwafanya washiriki wote kuonekana ndani ya darasa na kuwa na kifurushi kama mwonekano chaguomsingi hutoa uwiano wa juu.