Dans le processus de développement logiciel , une implémentation de référence (ou, moins fréquemment, une implémentation d'exemple ou une implémentation de modèle ) est un programme qui implémente toutes les exigences d'une spécification correspondante. L'implémentation de référence accompagne souvent une norme technique et démontre ce qui doit être considéré comme le comportement « correct » de toute autre implémentation de celle-ci.
Caractéristiques et exemples
Les implémentations de référence d'algorithmes, par exemple les algorithmes cryptographiques , sont souvent le résultat ou l'entrée de processus de normalisation . Dans cette fonction, ils sont souvent dédiés au domaine public avec leur code source en tant que logiciel du domaine public . Les exemples sont le premier httpd du CERN , Serpent , les variantes base64 , et SHA-3 . Le projet Openwall maintient une liste de plusieurs algorithmes avec leur code source de référence dans le domaine public.
Une implémentation de référence peut être de qualité de production ou non. Par exemple, l' implémentation de référence Fraunhofer de la norme MP3 ne se compare généralement pas favorablement à d'autres implémentations courantes, telles que LAME , dans les tests d'écoute qui déterminent la qualité sonore. En revanche, CPython , l'implémentation de référence du langage de programmation Python , est également l'implémentation la plus largement utilisée en production.
Essai
Le test de la relation entre implémentation et spécification améliore encore l' efficacité interprocessus de la production :
Une implémentation de référence est, en général, une implémentation d'une spécification à utiliser comme interprétation définitive de cette spécification. Lors du développement de la suite de tests de conformité, au moins une implémentation relativement fiable de chaque interface est nécessaire pour (1) découvrir les erreurs ou les ambiguïtés dans la spécification et (2) valider le bon fonctionnement de la suite de tests.
Caractéristiques d'une implémentation de référence :
- Développé simultanément avec la spécification et la suite de tests ;
- Vérifie que la spécification est implémentable ;
- Permet de tester la suite de tests ;
- Il sert de référence de référence par rapport à laquelle d’autres implémentations peuvent être mesurées ;
- Aide à clarifier l'intention de la spécification dans les situations où les tests de conformité sont inadéquats