Simulink Code Inspector автоматически сравнивает сгенерированный код с его исходной моделью для удовлетворения требований инспекции кода (Code Review) для DO-178 и других стандартов разработки критичного к безопасности ПО. Simulink Code Inspector систематически проверяет блоки, диаграммы состояний, параметры и настройки модели, чтобы определить, являются ли они структурно эквивалентными операциям, операторам и данным в сгенерированном коде. Simulink Code Inspector предоставляет подробный анализ трассируемости между моделями и кодом. Он генерирует отчеты структурной эквивалентности и трассируемости, которые можно представить сертификационному органу при сертификации по DO-178.
Поддержка отраслевых стандартов доступна с помощью DO Qualification Kit (для DO-178).
Simulink Code Inspector поддерживает ограниченный набор семантики моделирования и оптимизации кода, часто используемых для моделей систем с высокой степенью надежности. Средство проверки совместимости, предоставляемое Simulink Code Inspector, определяет, соответствует ли модель ограниченному набору.
Проверка совместимости запускается в интерактивном режиме из пользовательского интерфейса Simulink Code Inspector или программно с помощью команд MATLAB.
Можно поместить блоки и другие части модели, определенные как несовместимые, в отдельную модель со ссылкой на нее в начальной модели, а затем настроить Simulink Code Inspector, чтобы исключить несовместимую модель из инспекции кода. Затем требуется провести самостоятельную инспекцию кода для моделей, которые не проверяются автоматически.
Simulink Code Inspector не зависит от инструментов генерации кода. По умолчанию Simulink Code Inspector предполагает, что код уже создан . Однако Simulink Code Inspector может быть настроен для генерации кода как части процесса инспекции кода. Также можно указать расположение сгенерированных файлов исходного кода, например, используемых в системах сборки и непрерывной интеграции. Инспекция может быть вызвана через пользовательский интерфейс или командную строку.
При проверке кода Simulink Code Inspector проверяет следующие общие категории:
Конкретные анализы выполняются в диапазоне от высокоуровневой оценки интерфейса, такой как проверка того, были ли сгенерированы функции инициализации и пошагового выполнения, до детального анализа порядка выполнения блоков, чтобы определить, сохраняется ли зависимость данных между двумя компонентами блока в сгенерированном коде.
Сообщение о состоянии инспекции может быть просмотрено непосредственно в MATLAB. В результате инспекций генерируются подробные отчеты, (см. следующий раздел), которые включают подробный анализ трассируемости с интерактивными ссылками на объекты проекта.
Simulink Code Inspector создает отчеты, детально описывающие результаты инспекции кода. Для архивации отчетов и облегчения сборки артефактов в полный пакет для сертификации доступно указание места размещения отчетов. Отчет начинается с определения точной модели и проверенного исходного кода с использованием контрольной суммы модели, имен путей и отметок даты и времени. Затем предоставляется сводка выполненных проверок и их статуса для каждого элемента (например, проверено, частично проверено или не выполнено). Подробный раздел описывает результаты проверки для каждого файла, функции и строки сгенерированного кода.
Детали отслеживания включают в себя:
Стандарт RTCA DO-178C (КТ-178С, «Требования к программному обеспечению бортовой аппаратуры и систем при сертификации авиационной техники») определяет цели проверки исходного кода. Автоматическая проверка кода, предоставляемая Simulink Code Inspector, сокращает время, необходимое для выполнения целей проверки исходного кода, как показано в таблице ниже. Цель (3) полностью удовлетворяется с помощью Simulink Code Inspector в сочетании со статическим анализатором Polyspace Bug Finder. Кроме того, Цель (4) удовлетворяется с помощью таких инструментов, как статический анализатор Polyspace Bug Finder. Поддержка квалификации инструмента для продуктов Simulink Code Inspector и Polyspace ® обеспечивается DO Qualification Kit (для DO-178).
Приложение A
Таблица |
Цель |
Ссылка на DO-331* |
Уровень ПО |
Таблица MB А-5 |
(1) Исходный код соответствует требованиям низкого уровня |
Раздел MB 6.3.4a |
A, B, C |
Таблица MB А-5 |
(2) Исходный код соответствует архитектуре ПО |
Раздел MB 6.3.4b |
A, B, C |
Таблица MB A-5 |
(3) Исходный код верифицируем |
Раздел MB 6.3.4c |
A, B |
Таблица MB A-5 |
(5) Исходный код трассируем к требованиям низкого уровня |
Раздел MB 6.3.4e |
A, B, C |
Таблица MB A-5 |
(6) Исходный код правилен и непротиворечив ** |
Раздел MB 6.3.4f |
A, B, C |
* См. Р-331, «Разработка и верификация на основе модели»
** Не охватывает задачи, требующие анализа компилятора и объектного кода.
${message}