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
  • Анализ структурной эквивалентности и отчеты
  • Двунаправленный анализ трассируемости, отчеты о трассируемости
  • Средство проверки совместимости ограничивает использование модели, блока, диаграммы состояний и настройками Embedded Coder, обычно используемыми в приложениях с высокой степенью надежности.
  • Независимость инструмента от генераторов кода Simulink
  • Поддержка квалификации инструмента с помощью DO Qualification Kit
Модель (вверху), сгенерированный код (внизу) и отчет о проверке кода (справа) от Simulink Code Inspector Модель (вверху), сгенерированный код (внизу) и отчет о проверке кода (справа) от Simulink Code Inspector

Подготовка модели

Пользовательский интерфейс Simulink Code Inspector (слева) и результаты проверки совместимости модели (справа)
Пользовательский интерфейс Simulink Code Inspector (слева) и результаты проверки совместимости модели (справа)
Пользовательский интерфейс Simulink Code Inspector (слева) и результаты проверки совместимости модели (справа) Пользовательский интерфейс Simulink Code Inspector (слева) и результаты проверки совместимости модели (справа)

Simulink Code Inspector поддерживает ограниченный набор семантики моделирования и оптимизации кода, часто используемых для моделей систем с высокой степенью надежности. Средство проверки совместимости, предоставляемое Simulink Code Inspector, определяет, соответствует ли модель ограниченному набору. 

Проверка совместимости запускается в интерактивном режиме из пользовательского интерфейса Simulink Code Inspector или программно с помощью команд MATLAB. 

Можно поместить блоки и другие части модели, определенные как несовместимые, в отдельную модель со ссылкой на нее в начальной модели, а затем настроить Simulink Code Inspector, чтобы исключить несовместимую модель из инспекции кода. Затем требуется провести самостоятельную инспекцию кода для моделей, которые не проверяются автоматически. 

Генерация и инспекция кода

Успешная инспекция кода с использованием команд MATLAB
Успешная инспекция кода с использованием команд MATLAB

Simulink Code Inspector не зависит от инструментов генерации кода. По умолчанию Simulink Code Inspector предполагает, что код уже создан . Однако Simulink Code Inspector может быть настроен для генерации кода как части процесса инспекции кода. Также можно указать расположение сгенерированных файлов исходного кода, например, используемых в системах сборки и непрерывной интеграции. Инспекция может быть вызвана через пользовательский интерфейс или командную строку. 

При проверке кода Simulink Code Inspector проверяет следующие общие категории:

  • Интерфейсы моделей
  • Поведение блоков
  • Порядок выполнения и соединения блоков
  • Упаковка данных и файлов
  • Локальные переменные и функциональные элементы модели

Конкретные анализы выполняются в диапазоне от высокоуровневой оценки интерфейса, такой как проверка того, были ли сгенерированы функции инициализации и пошагового выполнения, до детального анализа порядка выполнения блоков, чтобы определить, сохраняется ли зависимость данных между двумя компонентами блока в сгенерированном коде. 

Сообщение о состоянии инспекции может быть просмотрено непосредственно в MATLAB. В результате инспекций генерируются подробные отчеты, (см. следующий раздел), которые включают подробный анализ трассируемости с интерактивными ссылками на объекты проекта. 

Успешная инспекция кода с использованием команд MATLAB Успешная инспекция кода с использованием команд MATLAB

Отчеты об инспекциях

Подробный отчет Simulink Code Inspector с результатами верификации кода по модели (слева) и трассируемости между кодом и моделью (справа)
Подробный отчет Simulink Code Inspector с результатами верификации кода по модели (слева) и трассируемости между кодом и моделью (справа)
Подробный отчет Simulink Code Inspector с результатами верификации кода по модели (слева) и трассируемости между кодом и моделью (справа) Подробный отчет Simulink Code Inspector с результатами верификации кода по модели (слева) и трассируемости между кодом и моделью (справа)

Simulink Code Inspector создает отчеты, детально описывающие результаты инспекции кода. Для архивации отчетов и облегчения сборки артефактов в полный пакет для сертификации доступно указание места размещения отчетов. Отчет начинается с определения точной модели и проверенного исходного кода с использованием контрольной суммы модели, имен путей и отметок даты и времени. Затем предоставляется сводка выполненных проверок и их статуса для каждого элемента (например, проверено, частично проверено или не выполнено). Подробный раздел описывает результаты проверки для каждого файла, функции и строки сгенерированного кода.

  • Проверку интерфейсов функций
  • Трассируемость модели на код
  • Трассируемость кода на модель
  • Использование временных переменных

Детали отслеживания включают в себя:

  • Трассируемость от модели к коду
  • Отслеживание кода к модели

Цели DO-178

Стандарт 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).


Задачи DO-178C, совместимые с Simulink Code Inspector

Приложение 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}

${message}