Korisnik:StasaRadosavljevic/Referentna implementacija(prevod 1)
U procesu razvoja softvera, referentna implementacija (ili, ređe, implementacija uzorka ili implementacija modela) je program koji implementira sve zahteve iz odgovarajuće specifikacije. Referentna implementacija često prati tehnički standard i pokazuje šta bi se trebalo smatrati "ispravnim" ponašanjem bilo koje druge njegove implementacije.
Karakteristike i primeri
[uredi]Referentne implementacije algoritama, poput kriptografskih algoritama, često su rezultat ili ulazni podaci procesa standardizacije. U toj funkciji, one su često namenjene javnom domenu sa otvorenim izvornim kodom kao softver u javnom domenu. Primeri su prvi CERN-ov httpd, Serpent cipher, base64 varijante i SHA-3. Projekat Openwall održava listu različitih algoritama sa njihovim referentnim izvornim kodom u javnom domenu.
Referentna implementacija može a i ne mora da utiče na kvalitet proizvodnje. Na primer, Fraunhofer referentna implementacija MP3 standarda obično nije konkurentna drugim uobičajenim implementacijama, kao što je LAME, u testovima kvaliteta zvuka. Nasuprot tome, CPython, referentna implementacija programskog jezika Python, takođe je i implementacija koja se najčešće koristi u proizvodnji.
Testiranje
[uredi]Testiranje odnosa između implementacije i specifikacije dodatno povećava efikasnost međuprocesnih veza u proizvodnji:
- Referentna implementacija je, uopšteno, implementacija specifikacije koja služi kao konačna interpretacija te specifikacije. Tokom razvoja skupa testova za proveru usaglašenosti, bar jedna relativno pouzdana implementacija svakog interfejsa je neophodna da bi se (1) otkrile greške ili nejasnoće u specifikaciji i (2) potvrdila ispravnost funkcionisanja testnog skupa.
- Karakteristike referentne implementacije:
- Razvijena paralelno sa specifikacijom i testnim skupom;
- Proverava da je specifikacija primenljiva;
- Omogućava testiranje skupa testova;
- Služi kao zlatni standard prema kojem se mere druge implementacije;
- Pomaže da se razjasni namera specifikacije u situacijama kada testovi usaglašenosti nisu dovoljni.
Izvori
[uredi]- Smith, Tim; Flückiger, François. "Licensing the Web: For everyone". CERN. Archived from the original on 2021-12-10. Retrieved 2014-08-17.
- Devolve, Chris (2005-11-20). "libb64: Base64 Encoding/Decoding Routines". SourceForge. Archived from the original on 2010-07-30. Retrieved 2016-02-06.
- Bertoni, Guido; Daemen, Joan; Peeters, Michaël; Van Assche, Gilles (2013-02-27). "KeccakReferenceAndOptimized-3.2.zip" (ZIP). keccak.noekeon.org. /KeccakReferenceAndOptimized/Sources/mainReference.c. Archived from the original (ZIP) on 2013-09-30. Retrieved 2016-02-06. The Keccak sponge function, designed by: Bertoni, Guido; Daemen, Joan; Peeters, Michaël; Van Assche, Gilles. For more information, feedback or questions, please refer to our website: keccak.noekeon.org/ / Implementation by the designers, hereby denoted as "the implementer". / To the extent possible under law, the implementer has waived all copyright and related or neighboring rights to the source code in this file. creativecommons.org/publicdomain/zero/1.0/
- solar (2009-11-05). "Source code snippets and frameworks placed in the public domain". Openwall Community Wiki. Archived from the original on 2019-01-26. Retrieved 2017-11-16.
- Daulton, Steve (2019-06-11). "Media Info doesn't match Format Options selected for Exported MP3's - #6 by steve - Windows". Audacity Forum. Archived from the original on 2023-12-02. Retrieved 2024-09-05.
- Snow, Eric (2012-04-26). "PEP 421 – Adding sys.implementation". peps.python.org. Python Software Foundation (which owns "python.org"). Motivation. Archived from the original on 2022-04-11. Retrieved 2017-01-06. For a number of years now, the distinction between Python-the-language and CPython (the reference implementation) has been growing. Most of this change is due to the emergence of Jython, IronPython, and PyPy as viable alternate implementations of Python.
- Dalci, Eric; Fong, Elizabeth; Goldfine, Alan (2003-03-26). "Requirements for GSC-IS Reference Implementations" (PDF). National Institute of Standards and Technology, Information Technology Laboratory. Archived from the original (PDF) on 2006-09-28. Retrieved 2006-07-22.
- Curran, Patrick (2003-12-10). "Conformance Testing: An Industry Perspective" (PDF). National Institute of Standards and Technology. Sun Microsystems. Archived from the original (PDF) on 2003-12-19. Retrieved 2006-07-22.