Couplage de modules
En génie logiciel, le couplage est le degré d’interdépendance entre les modules du logiciel. Deux modules qui sont fortement couplés sont fortement dépendants l’un de l’autre. En revanche, deux modules faiblement couplés ne sont pas dépendants l’un de l’autre. Les modules non couplés n’ont aucune interdépendance en leur sein.
Les différents types de techniques de couplage sont montrés en fig:
Une bonne conception est celle qui a un faible couplage. Le couplage est mesuré par le nombre de relations entre les modules. C’est-à-dire que le couplage augmente lorsque le nombre d’appels entre les modules augmente ou que la quantité de données partagées est importante. Ainsi, on peut dire qu’une conception avec un couplage élevé aura plus d’erreurs.
Types de couplage des modules
1. Aucun couplage direct : Il n’y a pas de couplage direct entre M1 et M2.
Dans ce cas, les modules sont subordonnés à des modules différents. Par conséquent, pas de couplage direct.
2. Couplage de données : Lorsque les données d’un module sont transmises à un autre module, on parle de couplage de données.
3. Couplage de timbre : Deux modules sont couplés par timbre s’ils communiquent en utilisant des données composites telles que la structure, les objets, etc. Lorsque le module passe une structure de données non globale ou une structure entière à un autre module, on dit qu’ils sont couplés par timbre. Par exemple, passer une variable de structure en C ou un objet en langage C++ à un module.
4. Couplage de contrôle : Le couplage de contrôle existe entre deux modules si les données d’un module sont utilisées pour diriger la structure d’exécution des instructions dans un autre.
5. Couplage externe : Le couplage externe se produit lorsque deux modules partagent un format de données, des protocoles de communication ou une interface de périphérique imposés de l’extérieur. Ceci est lié à la communication avec des outils et des dispositifs externes.
6. Couplage commun : Deux modules sont couplés en commun s’ils partagent des informations à travers certains éléments de données globaux.
7. Couplage de contenu : Le couplage de contenu existe entre deux modules s’ils partagent du code, par exemple, une branche d’un module dans un autre module.
Cohésion de module
En programmation informatique, la cohésion définit au degré auquel les éléments d’un module appartiennent ensemble. Ainsi, la cohésion mesure la force des relations entre les morceaux de fonctionnalité au sein d’un module donné. Par exemple, dans les systèmes hautement cohésifs, les fonctionnalités sont fortement liées.
La cohésion est un type de mesure ordinale et est généralement décrite comme « haute cohésion » ou « basse cohésion »
Types de cohésion des modules
- Cohésion fonctionnelle : On dit qu’il y a cohésion fonctionnelle si les différents éléments d’un module, coopèrent pour réaliser une seule fonction.
- Cohésion séquentielle : On dit qu’un module possède une cohésion séquentielle si l’élément d’un module forme les composants de la séquence, où la sortie d’un composant de la séquence est une entrée pour le suivant.
- Cohésion communicationnelle : Un module est dit à cohésion communicationnelle, si toutes les tâches du module se réfèrent à ou mettent à jour la même structure de données, par exemple, l’ensemble des fonctions définies sur un tableau ou une pile.
- Cohésion procédurale : Un module est dit à cohésion procédurale si l’ensemble des buts du module sont tous des parties d’une procédure dans laquelle une séquence particulière d’étapes doit être exécutée pour atteindre un but, par exemple, l’algorithme de décodage d’un message.
- Cohésion temporelle : Lorsqu’un module comprend des fonctions qui sont associées par le fait que toutes les méthodes doivent être exécutées en même temps, on dit que le module présente une cohésion temporelle.
- Cohésion logique : Un module est dit cohésif logiquement si tous les éléments du module effectuent une opération similaire. Par exemple la gestion des erreurs, l’entrée et la sortie des données, etc.
- Cohésion coïncidente : On dit d’un module qu’il a une cohésion coïncidente s’il exécute un ensemble de tâches qui sont associées les unes aux autres de manière très lâche, voire pas du tout.
Différencier le couplage et la cohésion
Couplage | Cohésion |
---|---|
Le couplage est aussi appelé liaison inter-module. | La cohésion est aussi appelée liaison intra-module. |
Le couplage montre les relations entre les modules. | La cohésion montre les relations à l’intérieur du module. |
Le couplage montre l’indépendance relative entre les modules. | La cohésion montre la force fonctionnelle relative du module. |
Lors de la création, vous devriez viser un couplage faible, c’est-à-dire, dépendance entre les modules devrait être moindre. | Lors de la création, vous devriez viser une cohésion élevée, c’est-à-dire qu’un composant/module cohésif se concentre sur une seule fonction (c’est-à-dire un esprit unique) avec peu d’interaction avec les autres modules du système. |
Dans le couplage, les modules sont liés aux autres modules. | Dans la cohésion, le module se concentre sur une seule chose. |