Modulkapcsolódás
A szoftverfejlesztésben a kapcsolódás a szoftvermodulok közötti kölcsönös függőség mértéke. Két szorosan összekapcsolt modul erősen függ egymástól. Két lazán kapcsolt modul azonban nem függ egymástól. A nem kapcsolt modulok egyáltalán nem függnek egymástól egymáson belül.
A csatolási technikák különböző típusait az ábra mutatja:
A jó tervezés az, amelynek alacsony a csatolása. A csatolást a modulok közötti kapcsolatok számával mérjük. Vagyis a csatolás nő, ha a modulok közötti hívások száma nő, vagy ha a megosztott adatok mennyisége nagy. Így elmondható, hogy a magas csatolású tervezés több hibával jár.
A modulkapcsolás típusai
1. Nincs közvetlen csatolás: Nincs közvetlen csatolás az M1 és az M2 között.
Ez esetben a modulok különböző moduloknak vannak alárendelve. Ezért nincs közvetlen csatolás.
2. Adatkapcsolás: Amikor az egyik modul adatai átkerülnek egy másik modulba, ezt nevezzük adatcsatolásnak.
3. Bélyegcsatolás: Két modul bélyegcsatolás, ha összetett adatelemek, például struktúra, objektumok stb. használatával kommunikálnak. Ha a modul nem globális adatstruktúrát vagy teljes struktúrát ad át egy másik modulnak, akkor azt mondjuk, hogy bélyegcsatoltak. Például a C nyelvben a struktúra változó vagy a C++ nyelvben az objektum átadása egy modulnak.
4. Vezérlési csatolás: Vezérlési csatolás két modul között akkor áll fenn, ha az egyik modulból származó adatokat arra használják, hogy egy másik modulban az utasításvégrehajtás struktúráját irányítsák.
5. Külső csatolás: Külső csatolás akkor keletkezik, ha két modul osztozik egy külsőleg előírt adatformátumon, kommunikációs protokollon vagy eszközinterfészen. Ez a külső eszközökkel és eszközökkel való kommunikációhoz kapcsolódik.
6. Közös csatolás: Két modul akkor közös csatolású, ha bizonyos globális adatelemeken keresztül osztoznak információkon.
7. Tartalmi csatolás: Tartalmi csatolás két modul között akkor áll fenn, ha közös kódot használnak, például egy elágazás az egyik modulból egy másik modulba.
Modulkohézió
A számítógépes programozásban a kohézió azt határozza meg, hogy egy modul elemei milyen mértékben tartoznak össze. A kohézió tehát a funkcionalitás darabjai közötti kapcsolatok erősségét méri egy adott modulon belül. Például a nagy kohéziójú rendszerekben a funkcionalitás erősen kapcsolódik egymáshoz.
A kohézió egy ordinális típusú mérés, és általában “nagy kohézió” vagy “alacsony kohézió”-ként írják le.
A modulok kohéziójának típusai
- Funkcionális kohézió: Funkcionális kohézióról akkor beszélünk, ha egy modul különböző elemei egyetlen funkció elérése érdekében működnek együtt.
- Szekvenciális kohézió: Egy modulról azt mondjuk, hogy szekvenciális kohézióval rendelkezik, ha a modul elemei a szekvencia komponenseit alkotják, ahol a szekvencia egyik komponensének kimenete a következő komponens bemenete.
- Kommunikációs kohézió: Egy modulról akkor mondjuk, hogy kommunikatív kohézióval rendelkezik, ha a modul minden feladata ugyanarra az adatstruktúrára hivatkozik, vagy ugyanazt az adatstruktúrát frissíti, pl. egy tömbön vagy egy vermen definiált függvények halmazát.
- Procedurális kohézió: Egy modulról akkor beszélünk procedurális kohézióról, ha a modul céljainak halmaza egy olyan eljárás minden része, amelyben egy cél eléréséhez meghatározott lépéssorozatot kell végrehajtani, pl. egy üzenet dekódolásának algoritmusa.
- Időbeli kohézió: Ha egy modul olyan függvényeket tartalmaz, amelyeket az köt össze, hogy az összes metódust ugyanabban az időben kell végrehajtani, akkor azt mondjuk, hogy a modul időbeli kohéziót mutat.
- Logikai kohézió: Egy modulról azt mondjuk, hogy logikailag összetartó, ha a modul minden eleme hasonló műveletet hajt végre. Például Hibakezelés, adatbevitel és adatkimenet stb.
- Véletlenszerű kohézió: Egy modulról azt mondjuk, hogy véletlenszerű kohézióval rendelkezik, ha olyan feladatokat hajt végre, amelyek nagyon lazán kapcsolódnak egymáshoz, ha egyáltalán kapcsolódnak egymáshoz.
Kapcsolódás és kohézió megkülönböztetése
Kapcsolódás | Kohézió |
---|---|
A kapcsolódást modulok közötti kötődésnek is nevezik. | A kohéziót modulon belüli kötődésnek is nevezik. |
A csatolás a modulok közötti kapcsolatokat mutatja. | A kohézió a modulon belüli kapcsolatot mutatja. |
A csatolás a modulok közötti relatív függetlenséget mutatja. | A kohézió a modul relatív funkcionális erejét mutatja. |
A létrehozás során törekedni kell az alacsony csatolásra, azaz, a modulok közötti függőség legyen kisebb. | A létrehozás során törekedni kell a magas kohézióra, azaz a kohéziós komponens/modul egyetlen funkcióra összpontosít (azaz egyközpontúság), kevés kölcsönhatással a rendszer többi moduljával. |
A csatolásban a modulok kapcsolódnak a többi modulhoz. | A kohézióban a modul egyetlen dologra összpontosít. |