Verschil tussen koppeling en cohesie

Verschil tussen koppeling en cohesie
Verschil tussen koppeling en cohesie

Video: Verschil tussen koppeling en cohesie

Video: Verschil tussen koppeling en cohesie
Video: Sessions & Cookies 2024, November
Anonim

Koppeling vs Cohesie

Koppeling en cohesie zijn twee concepten die gevonden worden in Java (en alle andere objectgeoriënteerde talen). Koppeling meet hoeveel elk van de programmamodules afhankelijk is van de andere programmamodules. Cohesie meet hoe sterk elk van de functies gerelateerd is binnen een module. Eigenlijk heeft elke objectgeoriënteerde taal (inclusief Java) de twee hoofddoelen om de samenhang te vergroten en tegelijkertijd de koppeling te verminderen, om zo de meest efficiënte programma's te ontwikkelen. Deze twee software-engineeringstatistieken zijn ontwikkeld door Larry Constantine om de kosten van het aanpassen en onderhouden van software te verlagen.

Wat is cohesie?

Cohesie meet hoe sterk elk van de functies gerelateerd is binnen een programmamodule. Goed gestructureerde lessen leiden tot zeer samenhangende programma's. Als een bepaalde klasse een reeks sterk gerelateerde functies vervult, wordt gezegd dat die klasse samenhangend is. Aan de andere kant, als een klas een heleboel totaal niet-gerelateerde functionaliteiten uitvoert, betekent dit dat de klas helemaal niet samenhangend is. Het is belangrijk om te begrijpen dat het ontbreken van samenhang niet betekent dat de algehele applicatie niet over de vereiste functionaliteit beschikt. Het is alleen dat zonder samenhang het erg moeilijk zal zijn om de functionaliteit te manipuleren, omdat ze op veel verkeerde plaatsen verspreid zullen zijn naarmate de complexiteit van de applicatie in de loop van de tijd toeneemt. Het onderhouden, wijzigen en uitbreiden van gedrag dat over de hele code is verspreid, is erg vervelend, zelfs voor de meest ervaren programmeurs.

Wat is koppeling?

Koppeling meet hoeveel elk van de programmamodules afhankelijk is van de andere programmamodules. Interacties tussen twee objecten ontstaan doordat er koppeling is. Losjes gekoppelde programma's zijn zeer flexibel en uitbreidbaar. Een sterke koppeling is nooit goed omdat het ene object sterk afhankelijk kan zijn van een ander object. Dit is een nachtmerrie wanneer de code wordt aangepast, omdat een hoge koppeling betekent dat de programmeurs op verschillende plaatsen van de code moeten werken voor zelfs maar een enkele gedragswijziging. Een sterke koppeling leidt altijd tot programma's met een lage flexibiliteit en minder schaalbaarheid/uitbreidbaarheid. In programmeertalen zoals Java is het echter onmogelijk om koppeling volledig te vermijden. Maar het wordt aanbevolen dat de programmeurs hun best doen om de koppeling zoveel mogelijk te verminderen. Het is ook mogelijk om een koppeling te hebben om objecten met elkaar te laten interageren zonder de schaalbaarheid en flexibiliteit te belemmeren.

Wat is het verschil tussen koppeling en cohesie?

Hoewel koppeling en cohesie te maken hebben met de kwaliteit van een module in software-engineering, zijn het totaal verschillende concepten. Cohesie heeft het over hoeveel de functionaliteit binnen de module aan elkaar gerelateerd is, terwijl koppeling gaat over hoeveel een module afhankelijk is van de andere programmamodules binnen de hele applicatie. Om software van de beste kwaliteit te hebben, moeten cohesie en koppeling de twee tegenovergestelde uiteinden van hun spectrum bereiken. Met andere woorden, losse koppeling en sterke samenhang levert de beste software op. Het hebben van privévelden, niet-openbare klassen en privémethoden zorgt voor losse koppeling, terwijl alle leden binnen de klasse zichtbaar zijn en het pakket als standaardzichtbaarheid zorgt voor een hoge samenhang.

Aanbevolen: