Bouchon (informatique)

terme de programmation

En informatique, un bouchon (stub en anglais[1]) désigne deux concepts différents :

  • Un code qui n'effectue aucun traitement et retourne toujours le même résultat, utilisé pour remplacer une autre fonctionnalité de programmation. Un bouchon peut simuler le comportement d'un code existant (comme une procédure sur une machine distante ; ces méthodes sont souvent appelées mocks) ou être un substitut temporaire d'un code qui n'a pas encore été développé.
  • Dans le contexte d’un appel de procédure à distance, le bouchon client (ou proxy) et le bouchon serveur (ou squelette) sont des morçeaux de code, la plupart du temps générés, qui assurent la sérialisation des données entre le client et le serveur.

Les bouchons sont donc très utiles pour le portage, l'informatique distribuée ainsi que pour le développement et le test de logiciels en général : un bouchon sert d'alternative temporaire à un code qui n'est pas utilisable parce qu'il n'est pas encore codé ou qu'il est en cours d'évolution.

Un exemple de bouchon dans du pseudo-code peut être le suivant :

temperature = ThermometerRead(Outside)
if temperature > 40 then
    print "It is hot!"
end if
function ThermometerRead(Source insideOrOutside)
    return 28
end function

Le pseudo-code ci-dessus utilise la fonction ThermometerRead, qui renvoie une température. Bien que la fonction ThermometerRead soit destinée à lire un dispositif matériel, elle ne contient ici pas le code nécessaire. ThermometerRead ne simule donc aucun processus, mais renvoie une valeur valide, permet au programme principal d'être au moins partiellement testé. Bien qu'elle accepte le paramètre de type Source, qui détermine si la température intérieure ou extérieure est nécessaire, ThermometerRead n'utilise pas la valeur réelle transmise (argument insideOrOutside) par l'appelant dans sa logique.

Un bouchon[2] est donc une routine qui ne fait rien d'autre que de se déclarer, d'indiquer les paramètres qu'elle accepte et de renvoyer quelque chose qui correspond généralement aux valeurs attendues dans l'un des « scénarios heureux » pour l'appelant. Les bouchons sont couramment utilisés comme placeholders pour l'implémentation d'une interface connue, lorsque l'interface est finalisée/connue mais que l'implémentation n'est pas encore connue/finalisée. Le bouchon contient juste assez de code pour pouvoir être compilé et lié au reste du programme. Dans la nomenclature RMI, un bouchon côté client communique avec un squelette) (en) côté serveur[3]..

Articles connexes modifier

Références et notes modifier

  1. (en) Nell B. Dale et Chip Weems, Programming in C++, Jones & Bartlett Learning, , 308 p. (ISBN 978-0-7637-3234-9, lire en ligne)
  2. (en) « stub », sur Webopedia, 23/031998 (consulté le ).
  3. (en) Eric Freeman, Elisabeth Freeman, Kathy Sierra et Bates Bert, Head First Design Patterns, vol. 1, O'Reilly, (ISBN 978-0-596-00712-6, lire en ligne), p. 440.