Referanseimplementering

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 å:

  1. oppdage feil og feiltolkninger av spesifikasjonene og
  2. validere riktig drift av testbatteriet. "

Kjennetegn ved en referanseimplementering

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.

Referanser

  1. Eric Dalci, Elizabeth Fong, Alan Goldfine, Krav til GSC-IS Reference implementeringer , National Institute of Standards and Technology, Information Technology Laboratory, 2003. Krav til GSC-IS referanseimplementasjoner
  2. Patrick Curran, Conformance Testing: An Industry Perspective , Sun Microsystems, 2003. [1]
  3. Nettets fødsel Lisensiering av nettet på cern.ch (2014)
  4. libb64 på sourceforge
  5. KeccakReferenceAndOptimized-3.2.zip mainReference.c Keccak- svampfunksjonen , designet av Guido Bertoni, Joan Daemen, Michaël Peeters og Gilles Van Assche
  6. Kildekodebit og rammer plassert i det offentlige områdetopenwall.info
  7. Eric Snow , “  PEP 421 - Adding sys.implementation  ” , på Python.org , Python Software Foundation,26. januar 2012(åpnet 8. februar 2019 )  :“I flere år har skillet mellom Python-the-language og CPython (referanseimplementeringen) vokst. "