Лидия Александровская - Сертификация сложных технических систем
Таблица 6.1
Примечание:
(1) Слово «Требуется» означает необходимость представления доказательств выполнения данного вида работы.
(2) В таких случаях объем работ, связанных с проверкой соответствия предъявляемым требованиям и санкционированием эксплуатационной пригодности, зависит от тяжести последствий ошибки проектирования. Оценки тяжести последствий, данные разными полномочными государственными органами, могут отличаться одна от другой.
(3) Слово «Рекомендуется» означает, что, хотя представление доказательств выполнения данного вида работы не является обязательным, в соответствии с оправдавшей себя практикой это следует делать в установленном документами порядке.
(4) В ходе утверждения соответствия стандартизированным техническим требованиям FАА может оказаться необязательным проведение отдельных испытаний для санкционирования эксплуатационной пригодности системы.
Первым шагом в цикле разработки программно-математического обеспечения является формулирование требований к нему, которые определяют функции, реализуемые системой. Они могут касаться:
• функций, выполняемых программно-математическим обеспечением;
• степени критичности функций;
• взаимодействия аппаратуры и программно-математического обеспечения;
• характеристики используемого процессора;
• требований к временным характеристикам;
• требований к встроенному тест-контролю и непрерывному контролю;
• ухудшения характеристики и/или утраты функций в ситуациях отказа;
• требований к проверке.
Для гарантии полного учета и понимания требований к системе необходимо проведение соответствующего этапа поверочных работ, в процессе которого сопоставляются требования к программно-математическому обеспечению и требования к системе. Целью данной поверочной операции является:
• проверка совместимости разделения аппаратуры и программно-математического обеспечения на независимые части с методами и средствами организации взаимодействия этих частей;
• проверка совместимости требований к системе с требованиями к программно-математическому обеспечению;
• проверка того, что требования к системе, трансформированные в требования к реализации программно-математического обеспечения, исчерпывающим образом сформированы в основной документации на программно-математическое обеспечение.
При наличии полных требований к программно-математическому обеспечению с использованием соответствующих руководств, разрабатывается подробная проектная документация на программно-математическое обеспечение, в том числе план испытаний.
В правильно составленной программе разработки ПМО важное значение имеет установление такого порядка проектирования, который позволяет получить программно-математическое обеспечение, поддающееся проверке и понятное не только его создателям. Этот порядок должен быть документально оформлен. Одним из возможных методов проектирования является ограничение функций, реализуемых с помощью разделения в пределах отдельных блоков программы (принцип разделения программно-математического обеспечения). Особое внимание следует уделять
Рис. 6.8
Рис. 6.9
совместимости метода разделения и средств организации совместной работы отдельных блоков.
Для проверки полноты и качества проекта выполняется анализ его соответствия требованиям. Целью этой проверки является установление правильности воплощения в проектной документации требований к программно-математическому обеспечению, соблюдение стандартов на проектирование, гарантии того, что алгоритмы правильно представляют техническую идею, являются точными и устойчивыми.
Технология реализации проекта должна гарантировать, что полученные с ее помощью программы понятны, прослеживаемы до уровня проектной документации и поддаются проверке. Все ошибки должны быть зарегистрированы.
При реализации проекта ПМО большие преимущества сулят использование языков высокого уровня соответствующих компиляторов (трансляторов) и обеспечивающих программных средств. К числу этих преимуществ относятся облегчение понимания результатов реализации и потенциальная возможность снижения количества ошибок, допускаемых на ранних этапах разработки.
При изменениях обеспечивающих программных средств необходимы процедуры, позволяющие идентифицировать текущее состояние этих средств и проверить влияние любых изменений на конечную программу. В том случае, когда обеспечивающие программные средства разработаны не изготовителем оборудования, а другим предприятием, могут потребоваться консультации с государственным органом относительно методов установления доверия к этим средствам.
Для проверки результатов программирования получают листинг исходной программы. Проверка осуществляется либо вручную путем сквозного разбора программы с помощью таблицы контрольных проверок ошибок отдельных видов, либо с помощью таблиц истинности, либо автоматически с помощью анализаторов программ. Далее выполняется проверка блоков программы с целью показать, что блоки выполняют заданные функции и не выполняют не заданные операции. Результаты этой проверки сводятся в «План испытаний программно-математического обеспечения». Проверка блоков проводится в двух направлениях: проверка логики и проверка вычислений.
Целью проверки логической части программы является обнаружение и устранение ошибок программирования, связанных с возможностью ненормального хода программы, а именно:
• остановом или зацикливанием;
• принятием неправильных логических решений;
• отсутствием логических операций с определенными комбинациями входных данных;
• отсутствием логических операций с пропуском входных данных.
Целью проверки вычислительной части программы является обнаружение и устранение ошибок в последовательности вычислений, их выполнении, точности, синхронизации; в правильности установки числовых алгоритмов в исходное положение для данных, находящихся в пределах технических условий, выходящих за эти пределы, граничных, особых; для масштабирования при вычислениях с фиксированной запятой и для используемых единиц измерения физических величин, а также в случае нежелательных режимов работы контуров с обратными связями.
После проверки блоков программы выполняется проверка правильности объединения блоков программы с целью показа правильности взаимодействия при выполнении заданных функций функционально связанных блоков программы. Эта проверка вовлекает дополнительные аппаратурные ресурсы, способствующие объединению модулей (периферийные устройства и память).
В ходе испытаний проверяются:
• связи между блоками (связь между блоками данных и управляющей логикой программы; порядок, вид и количество аргументов при обращениях к подпрограммам; отсутствие ложных выходов или нежелательных изменений в базе данных общего пользования);
• временная диаграмма;
• заданная последовательность событий (выставка и повторная выставка общих управляющих флажков; выставка переменных в исходное положение);
• возобновление вычислений при прерываниях;
• возможность нежелательных режимов работы контуров с обратными связями;
• разделение функций, имеющих различные категории критичности.
Для полной проверки в реальном масштабе времени соответствующее программное обеспечение вводится в смежный с аппаратурой или ее макетным образцом и другими внешними устройствами блок. К числу ошибок, выявляемых на стадии проверки совместного функционирования программного и аппаратурного обеспечения, относятся:
• неправильный уровень обработки прерываний;
• неспособность программного модуля удовлетворить требования к времени выполнения вычислений;
• неправильная работа программ, осуществляющих переключение аппаратуры или ее реконфигурацию в случае отказов;
• конфликтные ситуации в каналах передачи данных или при распределении ресурсов;
• отказ встроенного тест-контроля;
• неспособность программного обеспечения справиться с запуском, изменением входных нагрузок, переходными процессами в цепях питания;
• отказ выполнить проверку в контрольной точке;
• ошибки в организации взаимодействия аппаратуры и программно-математического обеспечения;
• ошибки в технических требованиях к такому взаимодействию.
Для проведения проверки совместной работы аппаратуры и программно-математического обеспечения используются:
• моделирование в реальном масштабе времени;
• контроль степени использования центрального процессора;
• анализ отказных режимов работы (сбои, переходные процессы и отказы в аппаратуре);