В следующей таблице представлена информация о потенциальных ошибках пользователя и инструмента, последствиях этих ошибок и способах их обнаружения.
| Источник ошибки | Эффект ошибки | Обнаружено | Смягчающие факторы |
|---|---|---|---|
| Пользовательский ввод (данные файла модели, MATLAB ® или MAT) | Несоблюдение требований | Примеры моделирования и анализ описания проекта системы | Квалификация генератора Test™ и отчетов Simulink ® |
| Несоответствие стандартам | Консультант по моделям и анализ описания конструкции системы | Квалификация консультанта по моделям и генератора отчетов | |
| Непреднамеренная функция | Анализ описания проекта системы, вариантов моделирования и покрытия | Тест Simulink и квалификация покрытия | |
| Движок Simulink | Несоблюдение требований | Примеры моделирования и анализ описания проекта системы | Квалификация генератора испытаний и отчетов Simulink |
| Несоответствие стандартам | Консультант по моделям и анализ описания конструкции системы | Квалификация консультанта по моделям и генератора отчетов | |
| Непреднамеренная функция | Анализ описания проекта системы, вариантов моделирования и покрытия | Тест Simulink и квалификация покрытия | |
| Модуль выполнения Simulink | Несоблюдение требований | Примеры моделирования | Квалификация теста Simulink |
| Непреднамеренная функция | Случаи моделирования и охват | Тест Simulink и квалификация покрытия | |
| API симулирования | Неверный ввод данных в Model Advisor, что приводит к отказу | Проверка отчета и действия по разрешению Model Advisor | Квалификация консультанта по модели |
| Неверный ввод в описание проекта системы | Обзор работы по проектированию системы Описание и разрешение | Квалификация генератора отчетов | |
| Неверный ввод в сравнение моделей | Обзор сравнительной и разрешающей деятельности модели | Оценка сравнения моделей Simulink | |
| Неверный ввод кода Simulink Inspector™ что приводит к отказу | Проверка отчета инспектора кода Simulink и действия по разрешению | Квалификация инспектора кода Simulink | |
| Тест Simulink | Неверная оценка ожидаемых результатов, приводящая к отказу | Анализ отчета о результатах моделирования и деятельности по разрешению проблем | Квалификация теста Simulink |
| Покрытие модели | Неверная отчетность о покрытии модели | Рассмотрение отчета о покрытии и дополнительных требований для оценки покрытия по модели | Оценка покрытия модели Simulink Coverage™ |
| Покрытие кода | Неверная отчетность о покрытии кода | Рассмотрение отчета о покрытии и дополнительных требований для оценки покрытия кода | Квалификация кода покрытия Simulink |
| Консультант по моделям | Неверная отчетность по стандартам модели | Нарушение стандартов модели, приводящее к нарушению стандартов соответствующего кода, обнаруживается компаниями Polyspace ® Bug Finder™ и Polyspace Bug Finder Server™ | Консультант по моделям, поиск ошибок Polyspace и квалификация сервера поиска ошибок Polyspace |
| Verifier™ проектирования Simulink | Неверный отчет об ошибках конструкции модели | Ошибки проектирования можно обнаружить путем моделирования и проверки сгенерированного исходного кода с помощью Polyspace Code Prover™, Polyspace Code Prover Server, Polyspace Bug Finder и Polyspace Bug Finder Server | Квалификация Simulink Design Verifier |
| Генератор отчетов | Неправильное описание конструкции системы | Обзор работы по проектированию системы Описание и разрешение | Квалификация генератора отчетов |
| Simulink | Неверное сравнение моделей | Обзор сравнительной и разрешающей деятельности модели | Оценка сравнения моделей Simulink |
| Встроенный кодер ® | Неверный исходный код | Проверка отчета инспектора кода Simulink | Квалификация инспектора кода Simulink |
| Инспектор кода Simulink | Неверный сообщенный сбой исходного кода | Проверка отчета инспектора кода Simulink и действия по разрешению | Квалификация инспектора кода Simulink |
| Сервер проверки кода Polyspace и сервер проверки кода Polyspace | Неверный сообщенный сбой исходного кода | Обзор отчета и действия по разрешению сервера проверки кода Polyspace Code Prover и Polyspace Code Prover | Квалификация сервера проверки кода Polyspace и сервера проверки кода Polyspace |
| Сервер поиска ошибок Polyspace и Polyspace | Неверный сообщенный сбой исходного кода | Обзор отчета Polyspace Bug Finder и Polyspace Bug Finder Server и действия по устранению ошибок | Квалификация сервера поиска ошибок Polyspace и Polyspace |
Единственными ошибками, которые могут непосредственно повлиять как на модель, так и на исходный код, являются ошибки пользовательского ввода или ошибки Simulink Engine. В любом из этих случаев результатом являются неверные требования к низкоуровневому программному обеспечению. Неверные требования к низкоуровневому программному обеспечению обнаруживаются на уровне модели посредством сочетания анализа проекта, моделирования, оценки покрытия и проверки соответствия стандартам. Поскольку эти действия выполняются на модели, скомпилированной в памяти, обнаружение эффективно независимо от того, основана ли ошибка на пользовательском вводе или на Simulink Engine. Кроме того, если уровень программного обеспечения равен A или B, сценарии моделирования, используемые для проверки поведения, должны разрабатываться лицом, отличным от разработчика модели, для достижения требований независимости.
После проверки модели исходный код можно создать с помощью встроенного кодера и проверить с помощью Simulink Code Inspector, Polyspace Bug Finder, Polyspace Bug Finder Server, Polyspace Code Prover и Polyspace Code Prover Server. Инструменты Simulink Code Inspector и Polyspace разработаны двумя независимыми группами в MathWorks ® и имеют независимые требования и код. Единственным исключением является то, что Simulink Code Inspector, Polyspace Bug Finder, Polyspace Bug Finder Server, Polyspace Code Prover и Polyspace Code Prover Server имеют общую функцию синтаксического анализа для кода C, но Embedded Coder не содержит этой функции. Инспектор кода Simulink использует API Simulink в качестве источника входных данных для информации о модели. Это тот же API, который используется в Model Advisor и Generator™ отчетов Simulink. Этот API проверяется в процессе квалификационного тестирования каждого из этих инструментов. Входные данные Simulink Code Inspector из модели основаны на компилируемой для моделирования в представлении памяти и не имеют доступа к компилируемой для генерации кода дополнительной информации. Simulink Code Inspector, Polyspace Bug Finder, Polyspace Bug Finder Server, Polyspace Code Prover и Polyspace Code Prover Server считывают файлы кода и заголовков, которые выводятся из Embedded Coder непосредственно в виде текстовых файлов ASCII.
С помощью набора DO Qualification Kit можно определить следующие инструменты проверки модели в соответствии с DO-178C инструкциями:
Генератор отчетов Simulink - Отчет по описанию конструкции системы (SDD)
Simulink - отчет о сравнении моделей
Simulink Check™ - Проверки DO-178C/DO-331 Model Advisor
Покрытие Simulink - покрытие
Simulink Test - Диспетчер тестов
Кроме того, с помощью набора DO Qualification Kit можно определить следующие инструменты проверки кода в соответствии с DO-178C инструкциями:
Инспектор кода Simulink - отчет по проверке кода
Поиск ошибок Polyspace
Сервер поиска ошибок Polyspace
Проверка кода Polyspace
Сервер проверки кода Polyspace
Таким образом, все ошибки инструмента в рабочем процессе обнаруживаются одним или несколькими действиями проверки. Кроме того, процесс квалификации инструмента для инструментов проверки обеспечивает уровень уверенности в инструментах, который эквивалентен операциям проверки вручную, которые автоматизируются инструментами.