Dans le processus de développement de logiciel, une implémentation de référence (aussi appelé, moins fréquemment, exemple de mise en œuvre ou modèle d'implémentation) est la norme à partir de laquelle toutes les autres implémentations et les autres personnalisations sont dérivées. Une amélioration à une implémentation de référence ne reflète pas un changement de la spécification sous-jacente. À l'inverse, l'échec d'une de la mise en œuvre d'une implémentation de référence peut s'avérer être la preuve que le cahier des charges n'est pas adapté et qu'il nécessite une amélioration.. « Une implémentation de référence est, en général, une implémentation d'un cahier des charges qui doit être vue comme une interprétation canonique de ce cahier des charges. Cette définition est un peu grandiloquente mais fonctionne en pratique. Pendant le développement de la batterie de tests, au moins une implémentation de confiance pour chaque interface est nécessaire pour : découvrir les erreurs et les mauvaise interprétations du cahier des charges et valider le fonctionnement correct de la batterie de tests.» Développée simultanément avec le cahier des charges et la batterie de tests ; Prouve que le cahier des charges est réalisable ; Permet de tester la batterie de tests ; Sert de point de comparaison contre lequel les autres implémentions peuvent être mesurées ; Permet de clarifier l'intention du cahier des charges Les implémentations de référence des algorithmes, par exemple les algorithmes de chiffrement, sont souvent le résultat de la normalisation des processus. Ils sont souvent dédiés au domaine public avec leur code source disponible ouvertement. Des exemples sont la première version du CERN httpd, Serpent de cipher, base64 variantes et SHA-3. Le Openwall Projet maintient une liste de plusieurs algorithmes, avec leur code source dans le domaine public. Une implémentation de référence peut ou peut ne pas être digne de la qualité de requise pour la production.
Martin Odersky, Vlad Ureche, Cristian Talau
Rachid Guerraoui, Patrick Eugster, Christian Heide Damm