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 на 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). Тестирование на соответствие: отраслевая перспектива . Сан Микросистемс. [1]