Kohézió (számítástechnika)
A számítógépes programozásban a kohézió azt mutatja, hogy a modulon belüli elemek mennyire tartoznak össze. Bizonyos értelemben ez egy osztály metódusai és adatai, valamint az osztály által szolgált egyesítő cél vagy fogalom közötti kapcsolat erősségének mérőszáma. Más értelemben az osztály módszerei és adatai közötti kapcsolat erősségének mérőszáma. A kohézió egy ordinális típusú mérés, és általában a "nagy kohézió" vagy az "alacsony kohézió" jelzővel írják le. A magas kohézióval rendelkező modulok általában előnyösebbek, mivel a magas kohézió a szoftver számos kívánatos tulajdonságával jár együtt, beleértve a robusztusságot, a megbízhatóságot, az újrafelhasználhatóságot és az érthetőséget. Ezzel szemben az alacsony kohézió olyan nemkívánatos tulajdonságokkal jár együtt, mint a nehezen karbantartható, tesztelhető, újrafelhasználható vagy akár érthető. A kohéziót gyakran szembeállítják a csatolással, amely egy másik fogalom. A nagy kohézió gyakran korrelál a laza csatolással, és fordítva. A csatolás és a kohézió szoftveres mérőszámait Larry Constantine találta ki az 1960-as évek végén a strukturált tervezés részeként, a karbantartási és módosítási költségeket csökkentő "jó" programozási gyakorlatok jellemzői alapján. A strukturált tervezés, a kohézió és a csatolás a Stevens, Myers & Constantine (1974) című cikkben és a Yourdon & Constantine (1979) című könyvben jelent meg; az utóbbi két kifejezés később a szoftverfejlesztés standard fogalmaivá vált. Nagy kohézióAz objektumorientált programozásban, ha egy osztályt kiszolgáló metódusok sok szempontból hasonlóak, akkor az osztályról azt mondjuk, hogy magas kohézióval rendelkezik. Egy nagy kohéziójú rendszerben a kód olvashatósága és újrafelhasználhatósága megnő, miközben a komplexitás kezelhető marad. A kohézió fokozódik, ha:
A nagy kohézió (vagy "erős kohézió") előnyei a következők:
Míg elvileg egy modul tökéletes kohézióval rendelkezhet, ha csak egyetlen atomikus elemből áll - például egyetlen funkcióval rendelkezik -, a gyakorlatban az összetett feladatok nem fejezhetők ki egyetlen egyszerű elemmel. Így egy egyelemű modulnak van olyan eleme, amely vagy túl bonyolult ahhoz, hogy egy feladatot teljesítsen, vagy túl szűk, és így szorosan kapcsolódik más modulokhoz. Így a kohézió egyensúlyban van mind az egység összetettségével, mind a csatolással. A kohézió típusaiA kohézió minőségi mérés, ami azt jelenti, hogy a mérendő forráskódot egy rubrika segítségével vizsgálják meg a besorolás meghatározásához. A kohéziós típusok a legrosszabbtól a legjobbig a következők:
A logikai kohézió az, amikor egy modul részei azért vannak csoportosítva, mert logikailag ugyanazt a feladatot látják el, még ha természetüknél fogva különböznek is (pl. az egér- és billentyűzetbeviteli rutinok csoportosítása).
Időbeli kohézióról akkor beszélünk, ha egy modul részeit a feldolgozásuk időpontja szerint csoportosítjuk - a részek a programvégrehajtás egy adott időpontjában kerülnek feldolgozásra (pl. egy függvény, amelyet egy kivétel elkapása után hívunk meg, amely lezárja a nyitott fájlokat, hibanaplót készít, és értesíti a felhasználót).
Bár a kohézió egy ordinális típusú skála, a rangsorok nem jelzik a kohézió javulásának folyamatos előrehaladását. Különböző személyek, köztük Larry Constantine, Edward Yourdon és Steve McConnell tanulmányai azt mutatják, hogy a kohézió első két típusa gyengébb, a kommunikációs és a szekvenciális kohézió nagyon jó, a funkcionális kohézió pedig jobb. Bár a funkcionális kohéziót tartják a szoftvermodulok legkívánatosabb kohéziótípusának, ez nem feltétlenül érhető el. Vannak olyan esetek, amikor a kommunikációs kohézió a legmagasabb szintű kohézió, amely az adott körülmények között elérhető. FordításEz a szócikk részben vagy egészben a Cohesion (computer science) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként. Kapcsolódó szócikkek
|
Portal di Ensiklopedia Dunia