Différence entre couplage et cohésion

Couplage vs cohésion

Le couplage et la cohésion sont deux concepts trouvés en Java (et tous les autres langages orientés objet). Le couplage mesure dans quelle mesure chacun des modules du programme dépend des autres modules du programme. La cohésion mesure la relation entre chacune des fonctions dans un module. En réalité, tout langage orienté objet (y compris Java) a pour objectif principal d’augmenter la cohésion et de diminuer le couplage en même temps, afin de développer les programmes les plus efficaces. Larry Constantine a mis au point ces deux paramètres de génie logiciel afin de réduire les coûts de modification et de maintenance des logiciels..

Qu'est-ce que la cohésion??

La cohésion mesure la relation entre chacune des fonctions dans un module de programme. Des cours bien structurés mènent à des programmes très cohérents. Si une certaine classe exécute un ensemble de fonctions très liées, cette classe est dite cohérente. D'autre part, si une classe exécute un ensemble de fonctionnalités totalement indépendantes, cela signifie que la classe n'est pas du tout cohérente. Il est important de comprendre que l'absence de cohésion ne signifie pas que l'application globale ne possède pas les fonctionnalités requises. C'est simplement que sans cohésion, il sera très difficile de gérer les fonctionnalités car elles seront dispersées à de nombreux endroits incorrects à mesure que la complexité de l'application augmentera avec le temps. Maintenir, modifier et étendre des comportements dispersés dans le code est très fastidieux, même pour les programmeurs les plus expérimentés.

Quel est le couplage?

Le couplage mesure dans quelle mesure chacun des modules du programme dépend des autres modules du programme. Les interactions entre deux objets se produisent parce qu'il y a un couplage. Les programmes faiblement couplés offrent une grande flexibilité et extensibilité. Le couplage fort n'est jamais bon, car un objet peut être fortement dépendant d'un autre objet. C'est un cauchemar lorsque le code est modifié, car un couplage élevé signifie que les programmeurs doivent travailler sur plusieurs emplacements de code, même pour une seule modification comportementale. Un couplage fort conduit toujours à des programmes avec une flexibilité faible et une évolutivité / extensibilité moindre. Cependant, dans des langages de programmation tels que Java, il est impossible d'éviter tout couplage. Mais il est recommandé aux programmeurs de tout faire pour réduire le plus possible le couplage. Il est également possible d'avoir un couplage pour aider les objets à interagir les uns avec les autres sans entraver son évolutivité et sa flexibilité..

Quelle est la différence entre le couplage et la cohésion?

Même si le couplage et la cohésion ont trait à la qualité d’un module en génie logiciel, il s’agit de concepts totalement différents. La cohésion indique à quel point les fonctionnalités sont liées les unes aux autres dans le module, tandis que le couplage traite de la dépendance d'un module par rapport aux autres modules du programme dans l'ensemble de l'application. Afin de disposer de logiciels de la meilleure qualité, la cohésion et le couplage doivent atteindre les deux extrémités opposées de leurs spectres. En d’autres termes, un couplage lâche et une forte cohésion fournissent le meilleur logiciel. Avoir des champs privés, des classes non publiques et des méthodes privées fournit un couplage souple, tout en rendant tous les membres visibles dans la classe et en utilisant package comme visibilité par défaut, pour une grande cohésion..