Referenzimplementierung
In dem Softwareentwicklungsprozess, a Referenzimplementierung (oder seltener häufig, Beispielimplementierung oder Modellimplementierung) ist ein Programm, das alle Anforderungen aus einer entsprechenden Spezifikation implementiert. Die Referenzimplementierung begleitet häufig a Technischer Standardund zeigt, was als "korrektes" Verhalten einer anderen Implementierung betrachtet werden soll.
Eigenschaften und Beispiele
Referenzimplementierungen von Algorithmen beispielsweise Kryptografische Algorithmen, sind oft das Ergebnis oder die Eingabe von Standardisierung Prozesse. In dieser Funktion sind sie oft dem gewidmet öffentlich zugänglich mit deren Quellcode wie Public -Domain -Software. Beispiele sind die ersten Cern's httpd,[1] Schlange Chiffre, Basis64 Varianten,[2] und Sha-3.[3] Das OpenWall -Projekt behält eine Liste mehrerer Algorithmen mit ihrer Referenz bei Quellcode öffentlich zugänglich.[4]
Eine Referenzimplementierung kann die Produktionsqualität sein oder nicht. Zum Beispiel die Fraunhofer Referenzimplementierung der MP3 Standard vergleichen normalerweise nicht positiv mit anderen gemeinsamen Implementierungen, wie z. LAHM, in Hörtests, die die Klangqualität bestimmen. Im Gegensatz, Cpythondie Referenzimplementierung der Python -Programmiersprache,[5] ist auch die Implementierung, die am häufigsten in der Produktion verwendet wird.
Testen
Testen Die Beziehung zwischen Implementierung und VS-Spezifikation verbessert die weiter Produktion's Interprozess-Effizienz:
Eine Referenzimplementierung ist im Allgemeinen eine Implementierung einer Spezifikation, die als endgültige Interpretation für diese Spezifikation verwendet wird (diese Definition ist etwas groß, funktioniert aber). Während der Entwicklung der ... Konformitätstestsuite ist mindestens eine relativ vertrauenswürdige Implementierung jeder Schnittstelle erforderlich, um (1) Fehler oder Unklarheiten in der Spezifikation zu entdecken, und (2) die korrekte Funktion der Testsuite validieren.[6]
Merkmale einer Referenzimplementierung:
- Gleichzeitig mit der Spezifikation und der Testsuite entwickelt;
- Überprüft, ob die Spezifikation implementierbar ist;
- Ermöglicht die Testsuite;
- Dient als Goldstandard, an dem andere Implementierungen gemessen werden können;
- Hilft, die Absicht der Spezifikation in Situationen zu klären, in denen Konformitätstests sind unzureichend[7]
Verweise
- ^ Die Geburt der Web -Lizenzierung des Webs auf cern.ch (2014)
- ^ libb64 auf SourceForge
- ^ KECCAKREFERENCEANDOPTIPIMISIZIERT-3.2.zip mainreference.c "Die von Guido Bertoni, Joan Daemen, Michaël Peeters und Gilles van Assche entworfene Keckak -Schwammfunktion. Weitere Informationen, Feedback oder Fragen finden Sie auf unserer Website: http://keccak.noekeon.org/Implementation[Permanent Dead Link] von den Designern, hiermit als "der Implementierer" bezeichnet. Soweit gesetzlich möglich, hat der Implementierer auf alle Urheberrechte und verwandte oder benachbarte Rechte an den Quellcode in dieser Datei verzichtet. https://creativcommons.org/publicdomain/zero/1.0/"
- ^ Quellcode -Snippets und Frameworks im öffentlichen Raum platziert an openwall.info
- ^ Snow, Eric (26. Januar 2012). "PEP 421 - Hinzufügen von Sys.implementation". Python.org. Python Software Foundation. Archiviert von das Original am 7. Januar 2017. Abgerufen 6. Januar 2017.
Seit einigen Jahren wächst die Unterscheidung zwischen Python-the-Language und CPython (der Referenzimplementierung).
- ^ Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003). Anforderungen für GSC-IS-Referenzimplementierungen. Nationales Institut für Standards und Technologie, Informationstechnologie Labor. [https://web.archive.org/web/20060928231404/http://xw2k.sdct.itl.nist.gov/smartcard/document/ref-imp51.pdf Anforderungen für GSC-IS-Referenzimplementierungen]
- ^ Curran, Patrick (2003). Konformitätstest: Eine Branchenperspektive. Sun Microsystems. [1]