Корисник:StasaRadosavljevic/Референтна имплементација(превод 1)

У процесу развоја софтвера, референтна имплементација (или, ређе, имплементација узорка или имплементација модела) је програм који имплементира све захтеве из одговарајуће спецификације. Референтна имплементација често прати технички стандард и показује шта би се требало сматрати "исправним" понашањем било које друге његове имплементације.

Карактеристике и примери

уреди

Референтне имплементације алгоритама, попут криптографских алгоритама, често су резултат или улазни подаци процеса стандардизације. У тој функцији, оне су често намењене јавном домену са отвореним изворним кодом као софтвер у јавном домену. Примери су први CERN-ов httpd, Serpent cipher, base64 варијанте и SHA-3. Пројекат Openwall одржава листу различитих алгоритама са њиховим референтним изворним кодом у јавном домену.

Референтна имплементација може а и не мора да утиче на квалитет производње. На пример, Fraunhofer референтна имплементација MP3 стандарда обично није конкурентна другим уобичајеним имплементацијама, као што је LAME, у тестовима квалитета звука. Насупрот томе, CPython, референтна имплементација програмског језика Python, такође је и имплементација која се најчешће користи у производњи.

Тестирање

уреди

Тестирање односа између имплементације и спецификације додатно повећава ефикасност међупроцесних веза у производњи:

Референтна имплементација је, уопштено, имплементација спецификације која служи као коначна интерпретација те спецификације. Током развоја скупа тестова за проверу усаглашености, бар једна релативно поуздана имплементација сваког интерфејса је неопходна да би се (1) откриле грешке или нејасноће у спецификацији и (2) потврдила исправност функционисања тестног скупа.
Карактеристике референтне имплементације:
  1. Развијена паралелно са спецификацијом и тестним скупом;
  2. Проверава да је спецификација применљива;
  3. Омогућава тестирање скупа тестова;
  4. Служи као златни стандард према којем се мере друге имплементације;
  5. Помажe да се разјасни намера спецификације у ситуацијама када тестови усаглашености нису довољни.

Извори

уреди
  1. Smith, Tim; Flückiger, François. "Licensing the Web: For everyone". CERN. Archived from the original on 2021-12-10. Retrieved 2014-08-17.
  2. Devolve, Chris (2005-11-20). "libb64: Base64 Encoding/Decoding Routines". SourceForge. Archived from the original on 2010-07-30. Retrieved 2016-02-06.
  3. 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/
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.