I programvareutvikling , en referanse gjennomføring (også referert til, mindre ofte, som en prøve implementerings eller gjennomføring modell ) er standard for alle andre implementeringer og tilpasninger er avledet.
En forbedring av en referanseimplementering gjenspeiler ikke en endring i den underliggende spesifikasjonen . Motsatt kan feil i en av implementeringene av en referanseimplementering vise seg å være et bevis på at spesifikasjonene ikke er passende og at de trenger forbedring.
“En referanseimplementering er generelt en implementering av en spesifikasjon som skal sees på som en kanonisk tolkning av denne spesifikasjonen. Denne definisjonen er litt bombastisk, men fungerer i praksis. Under utviklingen av testbruket er det minst en pålitelig implementering for hvert grensesnitt som er nødvendig for å:
Referanseimplementeringer av algoritmer, for eksempel krypteringsalgoritmer , er ofte resultatet av prosessstandardisering. De er ofte viet til det offentlige området med kildekoden tilgjengelig tilgjengelig. Eksempler er den første versjonen av CERN httpd , Serpent of cipher , base64 varianter og SHA-3 . Openwall Project opprettholder en liste over flere algoritmer, med kildekoden i det offentlige området.
En referanseimplementering kan eller ikke være verdig kvaliteten som kreves for produksjonen. For eksempel sammenlignes implementeringen av standard referanseimplementering av MP3 fra Fraunhofer Institute ikke positivt med andre standardimplementeringer, som LAME , i lyttetester som bestemmer lydkvaliteten. . I motsetning er CPython , standardimplementeringen av Python-programmeringsspråket , også den mest brukte implementeringen i produksjonen.