web-dev-qa-db-fra.com

Cohésion et découplage

Quelqu'un peut-il me dire ce que sont la cohésion et le découplage? J'ai trouvé un couplage mais il n'y a pas de découplage nulle part. J'ai besoin d'apprendre leurs significations.

Toute aide serait appréciée. Merci d'avoir répondu.

34
dbtek

Cohésion - liée au principe selon lequel une classe/méthode ne devrait être responsable que d’une chose, c’est-à-dire qu’il n’existe aucune méthode parasite qui n’appartient pas à l’encapsulation; une méthode ne fait qu'une chose. La cohésion haute/basse est le degré auquel cela tient.

Couplage - à quel point les différentes parties du système sont interdépendantes. Par exemple, comment et où il y a des dépendances. Si deux classes appellent des méthodes l'une avec l'autre, elles sont étroitement couplées, car changer l'une des conditions signifierait devoir changer l'autre. Le découplage est le processus consistant à rendre quelque chose qui était étroitement couplé moins ou pas du tout.

Les systèmes flexibles ont une cohésion élevée et un couplage lâche. 

13
Robert

Pour coupler, cet article Wikipedia devrait répondre à toutes vos questions. Cet article traite de la cohésion.

"Découplage" est juste un autre nom pour "couplage faible/faible".

Donc, ces termes répondent à ces questions: 

  • À quel point chaque partie de votre projet dépend-elle d'une autre partie? 
  • Si vous ne souhaitez utiliser qu'une partie de votre projet (par exemple pour résoudre un problème spécifique), combien avez-vous besoin de savoir sur le reste du projet?
  • Chaque partie de votre projet est-elle axée sur une solution unique à un problème spécifique ou les solutions "fuient-elles" vers d'autres parties?
2
Aaron Digulla

Voici mes réflexions sur la cohésion. Imaginez qu'il y ait un module. À l'intérieur de ce module, nous avons quelques tâches. Lorsque ces tâches sont étroitement liées les unes aux autres, nous disons que leur cohésion est élevée. Lorsque ces tâches ne sont pas liées, nous disons que la cohésion est faible. Ma meilleure tentative pour expliquer le découplage est que le découplage est l'acte de supprimer le couplage.

Le couplage faible nous aide à atteindre une cohésion élevée! N'oubliez pas que nous voulons que notre module comporte des tâches connexes et une seule responsabilité. Mais qu'est-ce que le couplage? Le couplage est le degré de dépendance vis-à-vis des autres modules pour assumer notre responsabilité unique pour ce module. Donc, par faible couplage, nous disons que nous ne sommes pas très dépendants des modules externes et que nous avons donc une grande cohésion. 

Cependant, si nous avons de nombreuses dépendances aux modules externes, nous aurions un couplage élevé et une cohésion faible. Trouver?

D'autres penseurs et groupes plus décorés disent:

La cohésion est la mesure dans laquelle les tâches effectuées par un seul module sont fonctionnellement liées. "IEEE, 1983" La cohésion est le "ciment" qui maintient un module ensemble. Cela peut être considéré comme le type d'association entre les éléments constitutifs d'un module. Généralement, on veut le plus haut niveau de cohésion possible. "Bergland, 1981 

Un composant logiciel est réputé présenter un degré de cohésion élevé si les éléments de cette unité présentent un degré de relation fonctionnelle élevé. Cela signifie que chaque élément de l'unité de programme doit être essentiel pour que cette unité atteigne son objectif. Sommerville, 1989

0
hidden