В процессе разработки программного обеспечения эталонная реализация (или, реже, примерная реализация или модельная реализация ) — это программа, реализующая все требования соответствующей спецификации. Эталонная реализация часто сопровождает технический стандарт и демонстрирует то, что следует считать «правильным» поведением любой другой его реализации.
Эталонные реализации алгоритмов, например криптографических алгоритмов , часто являются результатом или входными данными процессов стандартизации . В этой функции они часто передаются в общественное достояние , а их исходный код является общедоступным программным обеспечением . Примерами являются первый httpd CERN , [1] Serpent шифр, варианты base64 , [2] и SHA-3 . [3] Проект Openwall поддерживает список нескольких алгоритмов со справочным исходным кодом в открытом доступе. [4]
Эталонная реализация может быть качественным продуктом, а может и не быть. Например, эталонная реализация стандарта MP3 Фраунгофера обычно не отличается от других распространенных реализаций, таких как LAME , в тестах на прослушивание, определяющих качество звука. [ нужна цитация ] Напротив, CPython , эталонная реализация языка программирования Python , [5] также является реализацией, наиболее широко используемой в производстве.
Тестирование связи реализации и спецификации еще больше повышает эффективность межпроцессного взаимодействия:
Эталонная реализация, как правило, представляет собой реализацию спецификации, которая будет использоваться в качестве окончательной интерпретации этой спецификации (это определение немного высокопарно, но работает). Во время разработки... набора тестов на соответствие необходима по крайней мере одна относительно доверенная реализация каждого интерфейса, чтобы (1) обнаружить ошибки или двусмысленности в спецификации и (2) проверить правильность функционирования набора тестов. [6]
Характеристики эталонной реализации:
- Разрабатывается одновременно со спецификацией и набором тестов;
- Проверяет, что спецификация реализуема;
- Позволяет тестировать набор тестов;
- Служит золотым стандартом, по которому можно сравнивать другие реализации;
- Помогает прояснить цель спецификации в ситуациях, когда тесты на соответствие неадекватны [7].
Вот уже несколько лет различие между языком Python и CPython (эталонной реализацией) растет.