Question

J'essaie de résumer les concepts de couplage et de cohésion à une définition concise.Quelqu'un peut-il me donner une explication courte et compréhensible (plus courte que les définitions sur Wikipédia) ici et ici) ?Comment interagissent-ils ?

Merci.

Quelqu'un a-t-il un bon et court exemple ?

Était-ce utile?

La solution

Couplage

  • Lâche:Toi et le gars du dépanneur.Vous communiquez via un protocole bien défini pour atteindre vos objectifs respectifs : vous payez de l'argent, il vous laisse repartir avec le sac de Cheetos.L’un ou l’autre de vous peut être remplacé sans perturber le système.

  • Serré:Toi et ta femme.

Cohésion

  • Faible:Le dépanneur.Vous y allez pour tout, de l'essence au lait en passant par les services bancaires aux guichets automatiques.Les produits et services ont peu de points communs, et la commodité de les regrouper tous au même endroit pourrait ne pas suffire à compenser l’augmentation des coûts et la diminution de la qualité qui en résultent.

  • Haut:La fromagerie.Ils vendent du fromage.Rien d'autre.Mais je ne peux pas les battre quand il s'agit de fromage.

Autres conseils

Couplage - Une mesure de la mesure dans laquelle un module (package, classe, méthode) s'appuie sur d'autres modules.Il est souhaitable de réduire le couplage ou de réduire la dépendance d'un module donné aux autres modules d'un système.

Cohésion - Une mesure du degré de relation étroite entre les membres (classes, méthodes, fonctionnalités au sein d'une méthode) d'un module et les autres membres du même module.Il est souhaitable d'augmenter la cohésion car cela indique qu'un module a une tâche très spécifique et n'effectue que cette tâche.

L'une des discussions les plus complètes sur les concepts de conception de logiciels liés à l'OO (y compris ceux-ci) est celle de Bertrand Meyer. Construction de logiciels orientés objet.

Concernant le « couplage », il donne sa règle de couplage faible/petites interfaces comme suit :

Si deux modules communiquent, ils doivent échanger le moins d'informations possible.

Le matériel de Meyer relatif à la cohésion ne se résume jamais à une seule déclaration concise, mais je pense que cette phrase de Steve McConnell Code terminé ça résume assez bien :

La cohésion fait référence à la mesure dans laquelle toutes les routines d'une classe ou tout le code d'une routine soutiennent un objectif central.

Le couplage signifie la dépendance envers les autres.
La cohésion signifie la complétude avec soi-même.

Une manière simple et rapide de mesurer l'accouplement consiste à mesurer votre import (ou similaires).

"Le couplage est une mesure des interdépendances entre les modules, qui doivent être minimisés" "La cohésion, une qualité à maximiser, se concentre sur les relations entre les activités effectuées par chaque module."

extrait de cet article : http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top