Mi a kohézió a szoftverfejlesztésben?
A "kohézió" szó irodalmi jelentése a különböző egységek konzisztenciája és szervezettsége. A számítástechnikában és a szoftverfejlesztésben a kohézió azt az erőt és egységet jelenti, amellyel egy szoftverprogram különböző összetevői egymással kapcsolatban állnak. A szoftverfejlesztésben továbbra is bevett szokás, hogy a szoftverprogramokat különböző, egymással összefüggő funkciókon (vagy modulokon) keresztül fejlesztik, és ezekhez a modulokhoz külön-külön feladatok tartoznak. Bármely szoftver kohéziója meghatározza a forráskód erősségét, és jobban megérthető az asszociációs elvek, típusok és számítási módszerek feltárásával.
Alapok
A kohézió fogalmát a program „minőségi”, „tömörsége” és „hatékonysága” jellemzőinek megragadására vezették be a szoftverfejlesztés területén. Ez a koncepció megkönnyíti annak meghatározását, hogy a szoftverprogram egyes moduljai milyen szorosan kapcsolódnak egymáshoz, ami azt jelzi, hogy milyen gyorsan képesek végrehajtani a hozzájuk rendelt különböző feladatokat. Egy szoftverprogram megnövekedett kohéziója a különböző moduljai által végrehajtott nagyon azonos műveletek révén érhető el, és fordítottan arányos a modulok számának csökkenésével. Ez azt jelenti, hogy egy szoftverprogramnak, amelyet több feladat több modulon keresztül történő végrehajtására terveztek, nagyobb a valószínűsége annak, hogy kisebb a kohéziója, ami negatívan befolyásolja az általános teljesítményt és hatékonyságot a számítástechnikai gépeken.
Asszociációs alapelvek
A szoftverkohézió asszociatív elvei a szoftvermodul és a megfelelő műveletek (műveletek) közötti kapcsolattípusokra vonatkoznak. Ezek az elvek együttesen alkotják bármely szoftverprogram kohézióját, és a különböző működési követelményeknek megfelelően változnak. A szoftverkohézió hét típusára hét asszociatív elv van formalizálva, amelyek magukban foglalják a véletlenszerű, logikai, időbeli, eljárási, kommunikációs, szekvenciális és funkcionális kohéziókat. Ezen kohéziós típusok mindegyikéhez tartozik egy egyedi asszociációs elv, amely meghatározza bármely szoftvermodul működési tulajdonságait.
Tulajdonságok
A szoftverfejlesztésben bizonyos előre meghatározott tulajdonságok kapcsolódnak a kohézióhoz. Például, ha egy szoftver három különböző modulból áll, és mindegyik hasonló egymáshoz a műveleteket illetően, a szoftverprogram általános kohéziója nő. Hasonlóképpen csökken a kohézió, ha ezekhez a modulokhoz teljesen eltérő és egyedi cselekvések kapcsolódnak. Ezenkívül a szoftverprogramok kohéziója a feldolgozott adatok típusától is függ, és fordítottan arányos az adattípusok számának növekedésével.
Elemzés
Egy szoftver kohéziója lehet kvantitatív és kvalitatív módszerekkel egyaránt. A kvalitatív mérési folyamat során a szoftver szöveges kódját elemzik a különböző minták vételével és az adott programozási nyelv kódolási szabványai szerinti kiértékelésével. Ezzel szemben a kohézió kvantitatív értékelése azonosítja a szoftverprogramon belüli modulok számát, és előre meghatározott skálák szerint értékeli azok tevékenységét.