ГОСТ Р 8.839—2013
5.2.1.2Ь Если законодательно контролируемая часть программного обеспечения может устанав
ливать связь с другими частями программного обеспечения, то должен быть определен программный
интерфейс. Вся связь должна осуществляться исключительно через этот интерфейс. Законодательно
контролируемая часть программного обеспечения и упомянутый интерфейс должны быть четко доку
ментированы. Должны быть описаны все законодательно контролируемые функции и области данных
такого программного обеспечения для того, чтобы иметь возможность при утверждении типа прибора
решить вопрос о корректности разделения программного обеспечения.
Такой интерфейс состоит из программного кода и выделенных областей данных. Обмен опреде
ленными зашифрованными командами или данными между частями программного обеспечения обес
печивается благодаря сохранению упомянутой специально выделенной области данных в памяти
одной части программного обеспечения и считываниюданныхиз нее другой частью программногообес
печения. Управляющая программа записи и считывания данных является частью такого программного
интерфейса. Областьданных, формирующая данный программный интерфейс, включая управляющую
программу, обеспечивающую экспорт данных из законодательно контролируемой части программного
обеспечения в областьданных интерфейса, иуправляющую программу, обеспечивающую импорт дан
ных из интерфейса в законодательно контролируемую часть программного обеспечения, должна быть
четко определена и документирована. Операции в обход такого декларированного программного
интерфейса не должны допускаться.
Изготовитель прибора несет ответственность за соблюдение этих ограничений. Технические сре
дства (типа пломбирования) для защиты от работы программы в обход упомянутого интерфейса или
для предотвращения программирования скрытых команд оказываются невозможными. Программист
законодательно контролируемой части программного обеспечения так же. как программист части про
граммного обеспечения, не являющейся законодательно контролируемой, должны получить от изгото
вителя прибора соответствующие инструкции, касающиеся выполнения этих требований.
5.2.1.2с Должно быть обеспечено однозначное назначение каждой команды для всех инициируе
мых функций или изменений данных в законодательно контролируемой части программного обеспече
ния. Команды, с помощью которых осуществляется связь через программный интерфейс, должны
декларироваться и документально оформляться. Через программный интерфейс должна допускаться
работа только документально оформленных команд. Изготовитель прибора должен заявить полноту
документального оформления команд.
Пример реализации программного интерфейса — (!) В примере, описанном в 5.2.1.2а. реализован
программный интерфейс с параметрами и возвращ аемыми значениями процедур динамически компону
емой библиотеки. Никакие указатели областей данных внутри этой библиотеки не должны возвра
щаться. Описание этого интерфейса определено
в
указанной законодательно контролируемой
библиотеке, скомпилированной ранее, и не может быть изменено никакой прикладной программой.
Устанавливать связь в обход программного интерфейса и адресоваться к областям данных в указан
ной библиотеке напрямую в принципе возможно, но это плохая практика программирования, которую
следует классифицировать как вхакерство».
5.2.1.2d В случаях, когда законодательно контролируемая и не являющееся законодательно кон
тролируемой части программного обеспечения разделены, законодательно контролируемое програм
мное обеспечение должно иметь приоритет в применении ресурсов по отношению к не являющемуся
законодательно контролируемым программному обеспечению. Выполнение измерений (реализуемое
законодательно контролируемой частью программного обеспечения) не должно задерживаться или
блокироваться из-за выполнения других задач.
Изготовитель несет ответственностьза соблюдение этого ограничения. Должны быть обеспечены
технические средства для предотвращения влияния на законодательно контролируемые функции ка
кой-либо не являющейся законодательно контролируемой программой. Программист законодательно
контролируемой части программного обеспечения так же. как программист не являющейся законода
тельно контролируемой части программного обеспечения, должны получить от изготовителя прибора
соответствующие инструкции, касающиеся выполнения этих требований.
Примеры приоритета законодательно контролируемого программного обеспечения
1 (I) В примерах, приводимых в 5.2.1.2а/с, не являющ аяся законодательно контролируемой при
кладная программа осуществляет запуск законодательно конт ролируемых процедур указанной библи
отеки. Пропуск вызова этих процедур может стать источником задержки выполнения законодательно
контролируемой функции системы. Поэтому для удовлетворения т ребований 5.2.1.2d применяют еле-
13