Эталонная реализация - Reference implementation

в процесс разработки программного обеспечения, а эталонная реализация (или, реже, образец реализации или же реализация модели) - это программа, которая реализует все требования из соответствующей спецификации. Эталонная реализация часто сопровождает технический стандарт, и демонстрирует, что следует считать «правильным» поведением любой другой его реализации.

Характеристики и примеры

Эталонные реализации алгоритмов, например криптографические алгоритмы, часто являются результатом или вводом стандартизация процессы. В этой функции они часто посвящены всеобщее достояние с их исходный код в качестве программное обеспечение общественного достояния. Примеры первые Httpd ЦЕРН,[1] Змея шифр base64 варианты,[2] и SHA-3.[3] В Проект Openwall поддерживает список из нескольких алгоритмов со ссылками на них исходный код в свободном доступе.[4]

Эталонная реализация может быть качественной, а может и не быть. Например, Фраунгофер эталонная реализация MP3 стандарт обычно не отличается от других распространенных реализаций, таких как ХРОМОЙ, в тестах прослушивания, которые определяют качество звука.[нужна цитата ] В отличие, CPython, эталонная реализация Язык программирования Python,[5] это также реализация, наиболее широко используемая в производстве.

Тестирование

Тестирование взаимосвязь между реализацией и спецификацией еще больше увеличивает производство межпроцессная эффективность:

Эталонная реализация - это, как правило, реализация спецификации, которая будет использоваться в качестве окончательной интерпретации этой спецификации (это определение немного громоздко, но работает). Во время разработки набора тестов на соответствие ... необходима по крайней мере одна относительно надежная реализация каждого интерфейса для (1) обнаружения ошибок или двусмысленностей в спецификации и (2) проверки правильности функционирования набора тестов.[6]

Характеристики эталонной реализации:

  1. Разрабатывается одновременно со спецификацией и набором тестов;
  2. Проверяет реализуемость спецификации;
  3. Позволяет тестировать набор тестов;
  4. Служит золотым стандартом, по которому можно сравнивать другие реализации;
  5. Помогает прояснить цель спецификации в ситуациях, когда тесты на соответствие неадекватны[7]

Рекомендации

  1. ^ Рождение Интернета Лицензирование Интернета на cern.ch (2014)
  2. ^ libb64 на sourceforge
  3. ^ KeccakReferenceAndOptimized-3.2.zip mainReference.c «Функция губки Keccak, разработанная Гвидо Бертони, Джоан Дэемен, Микаэль Петерс и Жиль Ван Аше. Для получения дополнительной информации, отзывов или вопросов, пожалуйста, посетите наш веб-сайт: http://keccak.noekeon.org/Implementation[постоянная мертвая ссылка ] проектировщиками, именуемыми «исполнителем». Насколько это возможно в соответствии с законом, исполнитель отказался от всех авторских и смежных прав на исходный код в этом файле. https://creativecommons.org/publicdomain/zero/1.0/ "
  4. ^ Фрагменты исходного кода и фреймворки размещены в открытом доступе на openwall.info
  5. ^ Сноу, Эрик (26 января 2012 г.). «PEP 421 - Добавление sys.implementation». Python.org. Фонд программного обеспечения Python. Архивировано из оригинал 7 января 2017 г.. Получено 6 января 2017. Вот уже несколько лет разница между языком Python и CPython (эталонная реализация) растет.
  6. ^ Дальчи, Эрик; Фонг, Элизабет; Голдфайн, Алан (2003). Требования к эталонным реализациям GSC-IS. Национальный институт стандартов и технологий, лаборатория информационных технологий. [https://web.archive.org/web/20060928231404/http://xw2k.sdct.itl.nist.gov/smartcard/document/ref-imp51.pdf Требования к эталонным реализациям GSC-IS]
  7. ^ Курран, Патрик (2003). Тестирование на соответствие: отраслевая перспектива. Sun Microsystems. [1]