stringtranslate.com

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

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

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

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

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

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

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

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

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

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

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

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