Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
Le couplage est une métrique indiquant le niveau d'interaction entre deux ou plusieurs composants logiciels (fonctions, modules, objets ou applications). Deux composants sont dits couplés s'ils échangent de l'information. On parle de couplage fort ou couplage serré si les composants échangent beaucoup d'information. On parle de couplage faible, couplage léger ou couplage lâche si les composants échangent peu d'information et/ou de manière désynchronisée. Selon Pressman, il existe sept niveaux de couplage, du plus faible au plus fort : Sans couplage : les composants n'échangent pas d'information. Par données : les composants échangent de l'information par des méthodes utilisant des arguments (paramètres) de type simple (nombre, chaîne de caractères, tableau). Par paquet : les composants échangent de l'information par des méthodes utilisant des arguments de type composé (structure, classe). Par contrôle : les composants se passent ou modifient leur contrôle par changement d'un drapeau (verrou). Externe : les composants échangent de l'information par un moyen de communication externe (fichier, pipeline, lien de communication). Commun (global) : les composants échangent de l'information via un ensemble de données (variables) commun. Par contenu (interne) : les composants échangent de l'information en lisant et écrivant directement dans leurs espaces de données (variables) respectifs. Une bonne architecture logicielle nécessite le couplage le plus faible possible. Un couplage fort est à proscrire pour plusieurs raisons : Un couplage fort génère l'antipattern plat de spaghetti : On ne peut pas déterminer le qui, le quoi et le comment d’une modification de données. Un couplage fort implique nécessairement une faible indépendance fonctionnelle : Le composant logiciel est difficilement réutilisable, Le composant logiciel est difficilement testable. Si deux tâches accèdent, par couplage fort, à une ressource commune (ressource critique) et qu'elles s'exécutent en exclusion mutuelle, alors si une des tâches reste bloquée en section critique elle bloque automatiquement l'autre : Risque d'interblocage.
Ursula Röthlisberger, Simone Meloni, Martin Peter Bircher, Viacheslav Bolnykh, Paolo Carloni
Olivier Sauter, Stefano Coda, Jean-Marc Moret, Federico Alberto Alfredo Felici, Cristian Galperti, Anna Teplukhina
Michaël Unser, Daniel Sage, Thanh-An Michel Pham, Laurène Donati, Emmanuel Emilien Louis Soubies, Ferréol Arnaud Marie Soulez, Michael Thompson McCann, Thomas Jean Debarre