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