Module Koppeling
In software engineering, is de koppeling de graad van onderlinge afhankelijkheid tussen software modules. Twee modules die nauw aan elkaar gekoppeld zijn, zijn sterk van elkaar afhankelijk. Twee modules die losjes gekoppeld zijn, zijn echter niet afhankelijk van elkaar. Bij niet-gekoppelde modules is er helemaal geen onderlinge afhankelijkheid.
De verschillende soorten koppelingstechnieken worden getoond in fig:
Een goed ontwerp is een ontwerp met een lage koppeling. Koppeling wordt gemeten aan de hand van het aantal relaties tussen de modules. Dat wil zeggen dat de koppeling toeneemt naarmate het aantal aanroepen tussen modules toeneemt of de hoeveelheid gedeelde gegevens groot is. Er kan dus worden gesteld dat een ontwerp met een hoge koppeling meer fouten zal vertonen.
Typen modulekoppeling
1. Geen directe koppeling: Er is geen directe koppeling tussen M1 en M2.
In dit geval zijn modules ondergeschikt aan verschillende modules. Daarom is er geen directe koppeling.
2. Gegevenskoppeling: Wanneer gegevens van een module aan een andere module worden doorgegeven, spreekt men van datakoppeling.
3. Stempelkoppeling: Twee modules zijn stempelgekoppeld als ze communiceren met behulp van samengestelde gegevensitems zoals structuur, objecten, enz. Wanneer een module een niet-globale gegevensstructuur of een volledige structuur doorgeeft aan een andere module, wordt gezegd dat ze aan elkaar gekoppeld zijn. Bijvoorbeeld, het doorgeven van structuurvariabele in C of object in C++ taal aan een module.
4. Controle Koppeling: Control Coupling bestaat tussen twee modules als gegevens van de ene module worden gebruikt om de structuur van de instructie-uitvoering in een andere module te sturen.
5. Externe koppeling: External Coupling ontstaat wanneer twee modules een extern opgelegd dataformaat, communicatieprotocollen, of apparaatinterface delen. Dit heeft betrekking op de communicatie met externe gereedschappen en apparaten.
6. Common Coupling: Twee modules zijn common coupled als ze informatie delen via enkele globale data-items.
7. Content Coupling: Content Coupling bestaat tussen twee modules als ze code delen, bijvoorbeeld een aftakking van een module in een andere module.
Module Cohesion
In computerprogrammering definieert cohesie de mate waarin de elementen van een module bij elkaar horen. Cohesie meet dus de sterkte van de relaties tussen stukken functionaliteit binnen een bepaalde module. In systemen met een hoge cohesie is de functionaliteit bijvoorbeeld sterk aan elkaar gerelateerd.
Cohesie is een ordinaal type meting en wordt over het algemeen beschreven als “hoge cohesie” of “lage cohesie.”
Typen cohesie van modules
- Functionele cohesie: Er is sprake van functionele samenhang als de verschillende elementen van een module, samenwerken om één functie te realiseren.
- Sequentiële samenhang: Van een module wordt gezegd dat deze sequentiële cohesie bezit indien de element van een module de componenten van de sequentie vormen, waarbij de output van een component van de sequentie input is voor de volgende.
- Communicatieve cohesie: Van een module wordt gezegd dat deze communicatieve cohesie heeft, indien alle taken van de module naar dezelfde gegevensstructuur verwijzen of deze bijwerken, b.v. de verzameling van functies gedefinieerd op een array of een stack.
- Procedurele cohesie: Van een module wordt gezegd dat er sprake is van procedurele cohesie als de verzameling doelen van de module alle onderdelen zijn van een procedure waarin bepaalde opeenvolgingen van stappen moeten worden uitgevoerd om een doel te bereiken, bijvoorbeeld het algoritme voor het decoderen van een bericht.
- Temporele cohesie: Wanneer een module functies bevat die geassocieerd zijn door het feit dat alle methoden in dezelfde tijd moeten worden uitgevoerd, wordt gezegd dat de module temporele cohesie vertoont.
- Logische cohesie: Van een module wordt gezegd dat deze logisch samenhangend is als alle elementen van de module een soortgelijke bewerking uitvoeren. Bijvoorbeeld Foutafhandeling, gegevensinvoer en gegevensuitvoer, enz.
- Toevallige samenhang: Van een module wordt gezegd dat deze coincidentele cohesie heeft als deze een reeks taken uitvoert die zeer losjes met elkaar geassocieerd zijn, als ze al geassocieerd zijn.
Verschil tussen Coupling en Cohesion
Coupling | Cohesion |
---|---|
Coupling wordt ook wel Inter-Module Binding genoemd. | Cohesion wordt ook wel Intra-Module Binding genoemd. |
Coupling toont de relaties tussen modules. | Cohesion toont de relatie binnen de module. |
Coupling toont de relatieve onafhankelijkheid tussen de modules. | Cohesion toont de relatieve functionele kracht van de module. |
Tijdens het maken moet u streven naar een lage koppeling, d.w.z., de afhankelijkheid tussen modules moet minder zijn. | Bij het maken moet u streven naar een hoge cohesie, d.w.z. een cohesieve component/ module richt zich op een enkele functie (d.w.z. eenkennigheid) met weinig interactie met andere modules van het systeem. |
In koppeling zijn modules gekoppeld aan de andere modules. | In cohesie richt de module zich op een enkel ding. |