exponenta event banner

Разработка и проверка модели и исходного кода

В рабочем процессе, в котором код генерируется из моделей Simulink ® и Stateflow ®, модели рассматриваются как низкоуровневые требования к программному обеспечению и архитектуре, как определено в DO-178C. Фактическими требованиями низкого уровня являются скомпилированная модель в памяти, интерпретируемая механизмом Simulink на основе входных данных из файла модели, а также любые файлы данных, такие как файлы MATLAB ® или MAT, которые загружают данные в MATLAB или рабочие области модели. См. рис. 3. Сам файл модели не соответствует требованиям низкого уровня, поскольку семантика модели не полностью включена в этот файл. Семантика модели не будет завершена, пока файл модели не будет загружен в память и движок Simulink не скомпилирует модель. Некоторые семантики модели, определенные во время компиляции, но не включенные в файл модели, для модели состоят из:

  • Время распространения образца

  • Распространенные типы данных

  • Размеры распространяемого сигнала

  • Распространяемые типы сигналов

  • Порядок выполнения блокировки

Описание конструкции системы, созданное с помощью Generator™ Simulink Report, содержит документ, в котором содержится подробная информация о скомпилированном для моделирования представлении модели в памяти. Здесь представлена документация по низкоуровневым требованиям к программному обеспечению, определенным в глоссарии DO-178C [1]:

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

Компиляция для моделирования и компиляция для генерации кода являются двумя различными компиляциями и приводят к двум несколько различным представлениям в памяти. Test™ Simulink, покрытие модели, Inspector™ кода Simulink, мастер модели и генератор отчетов компилируются только для моделирования. Embedded Coder ® и Code Coverage компилируются для создания кода, который включает всю компиляцию для моделирования информации плюс следующую дополнительную информацию.

  • Оптимизация модели, применяемая только для создания кода

  • Проверка непротиворечивости классов хранения в созданном коде

Поскольку действия по проверке модели и кода могут происходить в разное время или на разных компьютерах, необходимо проверить непротиворечивость представлений модели в памяти. Вычисление Контрольной суммы MD5 используется, чтобы проверить эту последовательность. Контрольная сумма MD5 вычисляется на основе представления в памяти и включает данные, которые были загружены в рабочую область из внешних файлов, используемых моделью. Настраиваемые параметры не включаются в контрольную сумму MD5. Стоимость Контрольной суммы MD5 автоматически вставлена в Образцовый отчет Советника, Описание Системного проектирования и отчет об Инспекторе кода Simulink. Также можно использовать API Simulink для доступа к контрольной сумме MD5 и вставлять ее в отчет Simulink Test или для использования в других отчетах, которые могут быть сгенерированы во время моделирования с использованием других методов, таких как Report Generator или MATLAB скрипты. Номер версии модели и дата последнего сохранения также доступны в отчетах, и эти данные автоматически обновляются при каждом сохранении модели. На номер версии модели и последние сохраненные даты внешние данные не влияют, поэтому для проверки полной согласованности представления в памяти требуется контрольная сумма MD5. Описание конструкции системы документирует переменные рабочей области, которые используются моделью во время создания отчета.

Примечание

Расчет контрольной суммы модели зависит от платформы.

Рис. 1: Разработка и проверка модели и исходного кода