Programiranje

Načrt za spremembe: sklopitev in kohezija v objektno usmerjenih sistemih

Spajanje in kohezija sta dva pogosto napačno razumljena izraza v programskem inženirstvu. To so izrazi, ki se uporabljajo za označevanje kvalitativne analize modularnosti sistema in nam pomagajo prepoznati in izmeriti zasnovo zapletenosti objektno usmerjenih sistemov.

Vendar pa je dobro poznavanje obeh potrebno za izdelavo sistemov, ki so razširljivi, obvladljivi in ​​jih je mogoče sčasoma razširiti. V tem prispevku bom razpravljal o obeh; V prihodnjih objavah na to temo bom predstavil primere kode.

V čem se razlikujeta kohezija in spenjanje? Kako sta kohezija in povezovanje konceptov povezana z dobrimi ali slabimi zasnovami programske opreme? Preden raziskujemo kohezijo in spajanje ter kako vplivajo na zasnove programske opreme, razjasnimo, kaj je vsak od teh konceptov in njihove vrste.

Sklopka

Sklop je mogoče opredeliti kot stopnjo soodvisnosti med programskimi moduli in kako tesno sta med seboj povezana. V bistvu sklopitev kaže na moč medsebojne povezanosti med programskimi moduli. Ko je ta sklopka visoka, lahko domnevamo, da so programski moduli medsebojno odvisni, tj. Brez drugega ne morejo delovati. Obstaja več dimenzij sklopke:

  • Vsebinsko povezovanje - to je vrsta povezovanja, pri katerem lahko določen modul dostopa do vsebine katerega koli drugega modula ali ga spreminja. V bistvu, ko komponenta posreduje parametre za nadzor aktivnosti neke druge komponente, obstaja nadzorna sklopka med obema komponentama.
  • Skupno povezovanje - to je vrsta povezovanja, pri katerem imate več modulov dostop do skupnih globalnih podatkov
  • Spojitev žiga - to je vrsta spenjanja, pri kateri se podatkovna struktura uporablja za posredovanje informacij iz ene komponente v sistemu v drugo
  • Krmilna sklopka - to je vrsta sklopke, pri kateri lahko en modul spremeni tok izvajanja drugega modula
  • Povezovanje podatkov - pri tej vrsti povezovanja dva modula sodelujeta z izmenjavo ali posredovanjem podatkov kot parametra

Kohezija

Kohezija označuje raven medsebojne odvisnosti med elementi programskega modula. Z drugimi besedami, kohezija je merilo stopnje, do katere odgovornosti posameznega modula ali komponente tvorijo smiselno enoto. Kohezija je naslednjih vrst:

  • Naključna kohezija - to je nenačrtovana naključna kohezija, ki je lahko posledica razbijanja modula na manjše module.
  • Logična kohezija - to je vrsta kohezije, pri kateri je več logično povezanih funkcij ali podatkovnih elementov postavljenih v isto komponento
  • Časovna kohezija - to je vrsta kohezije, pri kateri so elementi modula združeni na način, da se obdelujejo v istem trenutku. Primer je lahko komponenta, ki se uporablja za inicializacijo nabora predmetov.
  • Proceduralna kohezija - to je vrsta kohezije, pri kateri so funkcije v komponenti razvrščene tako, da omogočajo njihovo zaporedno izvajanje in postanejo postopkovno povezane
  • Komunikacijska kohezija - pri tej vrsti kohezije so elementi modula logično združeni tako, da se izvajajo zaporedno in delajo na istih podatkih
  • Zaporedna kohezija - pri tej vrsti kohezije so elementi modula združeni tako, da izhod enega od njih postane vhod naslednjega - vsi se izvajajo zaporedno. V bistvu, če je izhod enega dela komponente vhod drugega, pravimo, da ima komponenta zaporedno kohezijo.
  • Funkcionalna kohezija - to je najboljša in najbolj zaželena vrsta kohezije, pri kateri je stopnja kohezije najvišja. Pri tej vrsti kohezije so elementi modula funkcionalno združeni v logično enoto in delujejo skupaj kot logična enota - to tudi spodbuja prilagodljivost in ponovno uporabo.

Najboljše prakse

Tesno spenjanje poveča stroške vzdrževanja, saj je težko, spremembe ene komponente pa bi vplivale na vse druge komponente, ki so z njo povezane. Torej je preoblikovanje kode težavno, saj bi morali predelati vse druge komponente v povezani verigi, da se funkcionalnost ne bi zlomila. Ta postopek je okoren in traja veliko dolgočasnega truda in časa.

Razviti bi morali razrede, ki vsebujejo manjše število spremenljivk primerka, tj. Zasnova vašega razreda je "dobra", če vsebuje majhno število spremenljivk primerka. V idealnem primeru bi morala vsaka od metod v vašem razredu manipulirati z eno ali več od teh spremenljivk primerka. Teoretično je razred maksimalno skladen, če vsako spremenljivko primerka razreda uporablja ali manipulira vsaka od metod tega razreda. Ko je kohezija v razredu visoka, so metode in podatkovni člani razreda soodvisni in delujejo skupaj kot ena logična enota. Vendar v resnici takšnih razredov ni mogoče načrtovati ali bi bolje rekel, ni priporočljivo oblikovati razredov, ki so maksimalno povezani.

$config[zx-auto] not found$config[zx-overlay] not found