Независимость инструментов

Simulink® и Stateflow® являются отдельными инструментами, используемыми для разработки моделей. Simulink может использоваться без Stateflow, но при использовании Stateflow, Simulink также требуется. Simulink и Stateflow тесно интегрированы и не независимы друг от друга. Не требуется, чтобы Simulink и Stateflow были независимыми, так как они оба используются вместе как часть разработки разработки ПО. Simulink API, на который ссылаются в этом документе, предоставляет интерфейс для других инструментов, которые не могут получить прямой доступ к данным памяти, чтобы получить данные из модели при помощи этого интерфейса. Например, пользователь может получить данные из модели с помощью get_param команда в MATLAB® или установите параметр в модели используя set_param команда в MATLAB.

См. раздел рабочего процесса этого документа, процесс разработки программного обеспечения, который включает следующие цели для использования Simulink и Stateflow:

  • Разработаны требования к программному обеспечению высокого уровня

  • Разработаны высокоуровневые требования к производному программному обеспечению

  • Программная архитектура

  • Разработаны требования к низкоуровневому программному обеспечению

  • Разработаны низкоуровневые требования к производному программному обеспечению

MATLAB Coder™, Simulink Coder и Embedded Coder® являются отдельными инструментами, используемыми для разработки исходного кода. MATLAB Coder является необходимым условием для Simulink Coder и Embedded Coder. Simulink Coder требуется при генерации кода из моделей Simulink и Stateflow. Эти три инструмента тесно интегрированы и не являются независимыми друг от друга. Не требуется, чтобы MATLAB Coder, Simulink Coder и Embedded Coder были независимыми, так как они используются вместе как часть разработки исходного кода. В следующих разделах этого документа ссылки на Embedded Coder предназначены для включения Simulink Coder и MATLAB Coder в качестве всего набора инструментов генерации кода.

Смотрите раздел рабочего процесса этого документа, процесс разработки программного обеспечения, который включает следующие цели для использования MATLAB Coder, Simulink Coder и Embedded Coder:

  • Исходный код разработан

MATLAB Report Generator™ и Simulink Report Generator являются отдельными инструментами, причем MATLAB Report Generator является необходимым условием для генератора отчетов Simulink. Simulink Report Generator предоставляет компоненты для отчетов о моделях Simulink и Stateflow и интегрирован с MATLAB Report Generator. Эти компоненты допрашивают модель с помощью Simulink API, чтобы считать данные из модели, загруженной в память. Компоненты генератора отчетов, используемые для генерации документа Разработки системы Description, могут только считывать данные из модели, они не имеют возможности записывать или изменять данные в модели. Описание Разработки системы (SSD) включает трассируемость требований звена, которые можно вставить в модели с помощью Simulink Requirements™.

См. разделы рабочего процесса этого документа «Обработка верификации требований и проверка процесса проекта», которые включают следующие цели для использования MATLAB Report Generator и Simulink Report Generator:

  • Верификация требований

    • Программное обеспечение Требований высокого уровня соответствовать системным требованиям

    • Требования высокого уровня являются точными и последовательными

    • Требования высокого уровня совместимы с целевым компьютером

    • Проверяемые требования высокого уровня

    • Требования высокого уровня соответствуют стандартам

    • Требования высокого уровня отслеживаются по системным требованиям

    • Алгоритмы точны

  • Верификация процесса проекта

    • Низкоуровневые требования соответствуют требованиям высокого уровня

    • Низкоуровневые требования являются точными и последовательными

    • Низкоуровневые требования совместимы с целевым компьютером

    • Низкоуровневые требования поддаются проверке

    • Низкоуровневые требования соответствуют стандартам

    • Низкоуровневые требования сопоставимы с системными требованиями

    • Алгоритмы точны

    • Программная архитектура совместима с требованиями высокого уровня

    • Программная архитектура согласована

    • Программная архитектура совместима с целевым компьютером

    • Программная архитектура поддается проверке

    • Программная архитектура соответствует стандартам

Simulink Design Verifier™ является отдельным инструментом с тремя возможностями; Поиск ошибок проектирования, проверки свойств и генерации тестов. Simulink Design Verifier содержит формальные механизмы анализа, которые работают с внутренним представлением, полученным из, но в другой форме, чем модель Simulink, загруженная в память. Поиск ошибок проектирования может найти определенные ошибки проектирования в модели, такие как деление на ноль или числовые переполнения, с помощью формальных методов. Property Proving, который также использует формальные методы, может доказать свойства, которые заданы пользователем в сочетании с допущениями, которые также заданы пользователем. Формальные двигатели анализа являются отдельными и независимыми от Simulink и Stateflow и не включают симуляцию модели. Simulink Design Verifier может автоматически сгенерировать тесты на основе модели, которая может использоваться, чтобы проверить соответствие исполняемого объектного кода модели. Базис для тестов может быть комбинация пользовательских ограничений, критериев покрытия для блоков в модели и пользовательских целей тестирования. Ограничительные блоки, критерии покрытия и тестовые целевые блоки игнорируются Embedded Coder и поэтому не зависят от процесса кодирования. В порядок, чтобы проверить код с помощью сгенерированных тестов, тесты должен быть запущен на модели в порядок, чтобы получить ожидаемые результаты для кода. Полнота этих тестов может быть оценена с помощью инструмента покрытия, а ожидаемые результаты могут быть оценены путем анализа результатов симуляции.

Смотрите разделы рабочего процесса этого документа «Процесс верификации требований», «Процесс верификации Проекта» и «Проверка выходных параметров Интегрирования процесса», которые включают следующие цели для использования Simulink Design Verifier:

  • Верификация требований

    • Программное обеспечение Требований высокого уровня соответствовать системным требованиям

    • Проверяемые требования высокого уровня

    • Алгоритмы точны

  • Верификация процесса проекта

    • Низкоуровневые требования соответствуют требованиям высокого уровня

    • Низкоуровневые требования поддаются проверке

    • Алгоритмы точны

  • Проверка выходов Интегрирования процесса

    • Исполняемый объектный код соответствует низкоуровневым требованиям

    • Исполняемый объектный код является устойчивым с низкоуровневыми требованиями

Simulink Code Inspector™ является отдельным инструментом, который может использоваться для проверки исходного кода, разработанного из Embedded Coder. Этот инструмент реализован независимо от Simulink, Stateflow и Embedded Coder. Этот инструмент опрашивает модель с помощью Simulink API, чтобы считать данные из модели, загруженной в память. Все используемые команды API могут только считывать данные из модели, они не имеют возможности записывать или изменять данные в модели. Модель преобразуется в другое промежуточное представление для использования в процессе инспекции кода. Simulink Code Inspector также использует файлы сгенерированного кода C в качестве входных данных и анализирует их в другое промежуточное представление, которое можно сравнить с промежуточным представлением модели. Требования, проект и исходный код для Simulink Code Inspector разрабатываются отдельно и не зависят от реализаций MATLAB Coder, Simulink Coder и Embedded Coder.

Смотрите раздел рабочего процесса этого документа «Процесс верификации кодирования и интегрирования», который включает следующие цели для использования Simulink Code Inspector:

  • Исходный код соответствует низкоуровневым требованиям

  • Исходный код соответствует программной архитектуре

  • Исходный код можно проверить

  • Исходный код отслеживается до низкоуровневых требований

  • Исходный код точен и последователен

Проверки Model Advisor предусмотрены в нескольких различных продуктах; Simulink, Embedded Coder, Simulink Code Inspector, Simulink Check™ и Simulink Control Design™. Базовая реализация проверки Model Advisor осуществляется через механизм, который использует функции MATLAB и не зависит от Simulink, Stateflow и Embedded Coder. Model Advisor использует Simulink API, чтобы считать данные из модели, загруженной в память. Model Advisor имеет возможность автоматического устранения проблем, обнаруженных проверками, но исправления должны быть инициированы пользователем, и модель должна быть восстановлена. Затем проверки могут быть перезапущены пользователем в порядок для проверки исправлений. Для собственных проверок, созданных пользователем, пользователь обязан не разрешать этим проверкам изменять модель.

Смотрите разделы рабочего процесса этого документа «Процесс верификации требований» и «Процесс верификации проекта», которые включают следующие цели для использования Model Advisor:

  • Верификация требований

    • Требования высокого уровня являются точными и последовательными

    • Требования высокого уровня совместимы с целевым компьютером

    • Требования высокого уровня соответствуют стандартам

    • Требования высокого уровня отслеживаются по системным требованиям

    • Алгоритмы точны

  • Верификация процесса проекта

    • Низкоуровневые требования являются точными и последовательными

    • Низкоуровневые требования совместимы с целевым компьютером

    • Низкоуровневые требования соответствуют стандартам

    • Низкоуровневые требования сопоставимы с системными требованиями

    • Алгоритмы точны

    • Программная архитектура согласована

    • Программная архитектура совместима с целевым компьютером

    • Программная архитектура соответствует стандартам

Возможность покрытия предоставляется как часть Simulink Coverage™. Покрытие модели измеряет модель, загруженную в память перед симуляцией, и оценивает критерии покрытия по мере прогрессирования симуляции. Покрытие кода оценивает покрытие для кода, сгенерированного из моделей в режиме цикл (SIL). Покрытие также имеет возможность объединить несколько запуски симуляции в объединенный отчет о покрытии. Пользователь может запускать симуляции с включенным покрытием и отключать, чтобы гарантировать отсутствие эффекта на поведение модели из-за инструментирования.

См. разделы рабочего процесса этого документа «Процесс верификации требований» и «Процесс верификации проекта», которые включают следующие цели для использования покрытия:

  • Верификация требований

    • Программное обеспечение Требований высокого уровня соответствовать системным требованиям

    • Проверяемые требования высокого уровня

  • Верификация процесса проекта

    • Низкоуровневые требования соответствуют требованиям высокого уровня

    • Низкоуровневые требования поддаются проверке

Simulink Test™ является отдельным инструментом, который может использоваться, чтобы выполнить симуляции в пакетной модели и проверить фактические результаты по ожидаемым результатам. Это также предоставляет возможность создавать тесты вручную или импортировать тесты в других форматах, таких как Excel® электронных таблиц. Поскольку тесты и ожидаемые результаты разрабатываются пользователем вручную, они не зависят от модели и исходного кода.

Смотрите разделы рабочего процесса этого документа «Процесс верификации требований» и «Процесс верификации проекта», которые включают следующие цели для использования Simulink Test:

  • Верификация требований

    • Программное обеспечение Требований высокого уровня соответствовать системным требованиям

    • Требования высокого уровня являются точными и последовательными

    • Проверяемые требования высокого уровня

    • Алгоритмы точны

  • Верификация процесса проекта

    • Низкоуровневые требования соответствуют требованиям высокого уровня

    • Низкоуровневые требования являются точными и последовательными

    • Низкоуровневые требования поддаются проверке

    • Алгоритмы точны

    • Программная архитектура совместима с требованиями высокого уровня

    • Программная архитектура согласована

    • Программная архитектура поддается проверке

Polyspace® Bug Finder™ определяет ошибки времени выполнения, проблемы параллелизма, уязвимости безопасности и другие дефекты во встроенном ПО на C и C++. Используя статический анализ, включая семантический анализ, Polyspace Bug Finder анализирует управление программным обеспечением, поток данных и межпроцедурное поведение. Подсветив дефекты, как только они будут обнаружены, он позволяет вам сортировать и исправлять ошибки в начале процесса разработки. проверяет податливость правилам стандартов кодирования, таким как MISRA C®, MISRA C++, JSF++, CERT® C, CERT C++ и настраиваемые правила именования.

Polyspace Bug Finder Server™ является механизмом статического анализа, который идентифицирует общие классы ошибок в C и C++, включая ошибки времени выполнения, проблемы параллелизма и другие дефекты кодирования. Polyspace Bug Finder Server также проверяет исходный код на соответствие правилам кодирования (MISRA C, MISRA C++, JSF++), правилам безопасности (CWE, CERT-C, CERT-C + +, ISO/IEC 17961) и пользовательским

Polyspace Code Prover™ является инструментом звукового статического анализа, который доказывает отсутствие переполнения, деления на нули, доступа к массиву вне границ и других ошибок времени выполнения в исходном коде C и C++. Он выдает результаты, не требуя выполнения программы, отладки кода или тестов. Polyspace Code Prover использует семантический анализ и абстрактную интерпретацию, основанную на формальных методах, для проверки поведения программного обеспечения в межпроцедурном режиме, управлении и потоке данных. Можно использовать его для проверки рукописного кода, сгенерированного кода или их комбинации. Каждый оператор кода закодирован цветом, чтобы указать, свободен ли он от ошибок времени выполнения, доказан ли он неудачным, недоступным или недоказанным. Polyspace Code Prover отображений информацию о области значений переменных и возврата функций и может доказать, какие переменные превышают указанные диапазоны. Результаты верификации кода могут использоваться, чтобы отслеживать метрики качества и проверять соответствие целям качества вашего программного обеспечения.

Polyspace Code Prover Server является механизмом звукового статического анализа, который доказывает отсутствие переполнения, деления на нули, вне границ, доступа к массивам и некоторых других ошибок времени выполнения на C и Кода С++. Он выполняет межпроцедурный анализ всех возможных потоков управления и данных, включая многопоточный код, чтобы идентифицировать каждую операцию как всегда безопасную, всегда неисправную, недоступную или уязвимую. Polyspace Code Prover Server идентифицирует сегменты кода, которые не имеют ошибок времени выполнения, оказались неудачными, недоступными или недоказанными. Polyspace Code Prover Server может работать на машине класса сервера и может быть интегрирован в системы сборки и непрерывного интегрирования для автоматизированной верификации с помощью таких инструментов, как Jenkins.

Polyspace Bug Finder, Polyspace Bug Finder Server, Polyspace Code Prover и Polyspace Code Prover Server полностью независимы от MATLAB Coder, Simulink Coder и Embedded Coder. Требования, проект и исходный код для Polyspace разрабатываются отдельно и не зависят от реализаций MATLAB Coder, Simulink Coder и Embedded Coder.

Смотрите раздел рабочего процесса этого документа «Процесс верификации кодирования и интегрирования», который включает следующие цели для использования:

  • Polyspace Bug Finder и Polyspace Bug Finder Server

    • Исходный код соответствует программной архитектуре

    • Исходный код соответствует стандартам

    • Исходный код точен и последователен

  • Polyspace Code Prover и Polyspace Code Prover Server

    • Исходный код соответствует программной архитектуре

    • Исходный код соответствует стандартам

    • Исходный код можно проверить

    • Исходный код точен и последователен

    • Исполняемый объектный код робастен с Требованиями высокого уровня

    • Исполняемый объектный код является устойчивым с низкоуровневыми требованиями

    • Случаи формального анализа и процедуры верны

    • Формальные результаты анализа верны и объяснены расхождения.

    • Формализация требований верна

    • Формальный метод правильно обоснован и подходит