Reference implementering - Reference implementation

I softwareudviklingsprocessen er en referenceimplementering (eller, mindre hyppigt, prøveimplementering eller modelimplementering ) et program, der implementerer alle krav fra en tilsvarende specifikation. Referenceimplementeringen ledsager ofte tekniske standarder og viser, hvad der skal betragtes som den "korrekte" adfærd ved enhver anden implementering af den.

Karakteristika og eksempler

Referenceimplementeringer af algoritmer, for eksempel kryptografiske algoritmer , er ofte resultatet eller input af standardiseringsprocesser . I denne funktion er de ofte dedikeret til det offentlige domæne med deres kildekode som public domain-software . Eksempler er den første CERNs httpd , Serpent- chiffer, base64- varianter og SHA-3 . Den Openwall Project vedligeholder en liste over flere algoritmer med deres henvisning kildekode i det offentlige rum.

En referenceimplementering kan eller ikke være produktionskvalitet. F.eks. Sammenligner implementeringen af Fraunhofer- referencen af MP3- standarden normalt ikke gunstigt med andre almindelige implementeringer, såsom LAME , i lyttetest, der bestemmer lydkvaliteten. I modsætning hertil er CPython , referenceimplementeringen af Python-programmeringssproget , også den implementering, der er mest anvendt i produktionen.

Testning

Test af forholdet mellem implementering og specifikation forbedrer yderligere produktionens effektivitet mellem processer:

En referenceimplementering er generelt en implementering af en specifikation, der skal bruges som en endelig fortolkning af denne specifikation (denne definition er lidt grandiloquent, men fungerer). Under udviklingen af ​​... overensstemmelsestestpakken er mindst en relativt pålidelig implementering af hver grænseflade nødvendig for (1) at opdage fejl eller uklarheder i specifikationen og (2) validere den korrekte funktion af testpakken.

Karakteristika ved en referenceimplementering:

  1. Udviklet sammen med specifikationen og testpakken;
  2. Kontrollerer, at specifikationen er implementerbar;
  3. Gør det muligt at teste testpakken;
  4. Fungerer som en guldstandard, mod hvilken andre implementeringer kan måles;
  5. Hjælper med at afklare hensigten med specifikationen i situationer, hvor overensstemmelsestest er utilstrækkelige

Referencer