Simulink ® и Stateflow ® - это отдельные инструменты, используемые для разработки моделей. Simulink можно использовать без Stateflow, но при использовании Stateflow также требуется Simulink. Simulink и Stateflow тесно интегрированы и не независимы друг от друга. Не требуется, чтобы Simulink и Stateflow были независимыми, поскольку они оба используются вместе как часть разработки программного обеспечения. API Simulink, на который ссылаются в этом документе, предоставляет интерфейс для других инструментов, которые не могут получить доступ непосредственно к данным в памяти, для получения данных из модели с помощью этого интерфейса. Например, пользователь может получить данные из модели с помощью get_param в MATLAB ® или задайте параметр в модели с помощью set_param в MATLAB.
См. раздел рабочего процесса этого документа Процесс разработки программного обеспечения, который включает следующие цели для использования Simulink и Stateflow:
Разработка требований к программному обеспечению высокого уровня
Разработаны требования к производному программному обеспечению высокого уровня
Разработка архитектуры программного обеспечения
Разработаны низкоуровневые требования к программному обеспечению
Разработаны низкоуровневые требования к производному программному обеспечению
MATLAB Coder™, Simulink Coder и Embedded Coder ® - это отдельные инструменты, используемые для разработки исходного кода. Кодер MATLAB является обязательным условием для Simulink Coder и Embedded Coder. Кодер Simulink необходим при генерации кода из моделей Simulink и Stateflow. Эти три инструмента тесно интегрированы и не независимы друг от друга. Не требуется, чтобы кодеры MATLAB, Simulink Coder и Embedded Coder были независимыми, поскольку они используются вместе как часть разработки исходного кода. В следующих разделах этого документа ссылки на встроенный кодер предназначены для включения Simulink Coder и MATLAB Coder в качестве всего набора инструментов генерации кода.
См. раздел рабочего процесса этого документа «Процесс разработки программного обеспечения», который включает следующие цели использования кодера MATLAB, кодера Simulink и встроенного кодера:
Разработка исходного кода
MATLAB Report Generator™ и Simulink Report Generator являются отдельными инструментами, при этом MATLAB Report Generator является предпосылкой для Simulink Report Generator. Генератор отчетов Simulink предоставляет компоненты для создания отчетов по моделям Simulink и Stateflow и интегрирован с генератором отчетов MATLAB. Эти компоненты опрашивают модель с помощью Simulink API для считывания данных из модели, загруженной в память. Компоненты генератора отчетов, используемые для создания документа Описание конструкции системы (System Design Description), могут считывать данные только из модели, они не имеют возможности записывать или изменять данные в модели. Описание конструкции системы (SSD) содержит ссылки отслеживания требований, которые можно вставить в модели с помощью Simulink Requirements™.
См. разделы рабочего процесса этого документа «Проверка процесса обработки требований и проверка процесса проектирования», которые включают следующие цели для использования генератора отчетов MATLAB и генератора отчетов Simulink:
Процесс проверки требований
Требования к программному обеспечению высокого уровня соответствуют требованиям к системе
Требования высокого уровня являются точными и согласованными
Требования высокого уровня совместимы с целевым компьютером
Требования высокого уровня поддаются проверке
Высокие требования соответствуют стандартам
Требования высокого уровня прослеживаются в соответствии с требованиями системы
Алгоритмы точны
Проверка процесса проектирования
Низкоуровневые требования соответствуют высокоуровневым требованиям
Требования низкого уровня являются точными и согласованными
Низкоуровневые требования совместимы с целевым компьютером
Требования низкого уровня поддаются проверке
Низкоуровневые требования соответствуют стандартам
Требования низкого уровня прослеживаются в соответствии с требованиями системы
Алгоритмы точны
Архитектура программного обеспечения совместима с требованиями высокого уровня
Архитектура программного обеспечения согласована
Архитектура программного обеспечения совместима с целевым компьютером
Архитектура программного обеспечения поддается проверке
Архитектура программного обеспечения соответствует стандартам
Simulink Design Verifier™ - отдельный инструмент с тремя возможностями; Обнаружение ошибок проекта, проверка свойств и создание тестовых примеров. Simulink Design Verifier содержит механизмы формального анализа, которые работают с внутренним представлением, полученным из модели Simulink, загруженной в память, но в другой форме. Функция обнаружения ошибок конструкции может обнаруживать определенные ошибки конструкции в модели, такие как деление на ноль или числовое переполнение, с помощью формальных методов. Функция проверки свойств, которая также использует формальные методы, может доказать свойства, определенные пользователем в сочетании с допущениями, которые также определены пользователем. Механизмы формального анализа являются отдельными и независимыми от Simulink и Stateflow и не включают моделирование модели. Simulink Design Verifier может автоматически создавать тестовые примеры на основе модели, которая может использоваться для проверки соответствия исполняемого кода объекта модели. Основой для тестовых примеров может быть комбинация определяемых пользователем ограничений, критериев покрытия для блоков в модели и определяемых пользователем целей тестирования. Блоки ограничений, критерии покрытия и целевые блоки тестирования игнорируются встроенным кодером и поэтому не зависят от процесса кодирования. Для проверки кода с использованием сгенерированных тестовых примеров необходимо выполнить тестовые примеры в модели, чтобы получить ожидаемые результаты для кода. Полнота этих тестовых случаев может быть оценена с использованием инструмента покрытия, а ожидаемые результаты могут быть оценены посредством анализа результатов моделирования.
См. разделы рабочего процесса этого документа «Процесс проверки требований», «Проверка процесса проектирования» и «Тестирование результатов процесса интеграции», которые включают следующие цели использования Simulink Design Verifier:
Процесс проверки требований
Требования к программному обеспечению высокого уровня соответствуют требованиям к системе
Требования высокого уровня поддаются проверке
Алгоритмы точны
Проверка процесса проектирования
Низкоуровневые требования соответствуют высокоуровневым требованиям
Требования низкого уровня поддаются проверке
Алгоритмы точны
Тестирование результатов интеграционного процесса
Код исполняемого объекта соответствует низкоуровневым требованиям
Код исполняемого объекта надежен с низкоуровневыми требованиями
Simulink Code Inspector™ - это отдельный инструмент, который можно использовать для проверки исходного кода, разработанного из Embedded Coder. Этот инструмент реализован независимо от Simulink, Stateflow и Embedded Coder. Этот инструмент опрашивает модель с помощью API Simulink для считывания данных из модели, загруженной в память. Все используемые команды API могут считывать данные только из модели, они не имеют возможности записывать или изменять данные в модели. Модель преобразуется в другое промежуточное представление для использования в процессе контроля кода. Инспектор кода Simulink также использует созданные файлы кода C в качестве входных данных и анализирует их в другом промежуточном представлении, которое можно сравнить с промежуточным представлением модели. Требования, дизайн и исходный код для Simulink Code Inspector разрабатываются отдельно и не зависят от реализации MATLAB Coder, Simulink Coder и Embedded Coder.
См. раздел workflow-процесса этого документа «Проверка процесса кодирования и интеграции», который включает следующие цели использования Simulink Code Inspector:
Исходный код соответствует низкоуровневым требованиям
Исходный код соответствует архитектуре программного обеспечения
Исходный код поддается проверке
Исходный код отслеживается в соответствии с требованиями низкого уровня
Исходный код является точным и непротиворечивым
Проверки Model Advisor предоставляются в нескольких различных продуктах; Simulink, Embedded Coder, Simulink Code Inspector, Simulink Check™ и Simulink Control Design™. Базовая базовая реализация проверок Model Advisor выполняется через механизм, который использует функции MATLAB и не зависит от Simulink, Stateflow и Embedded Coder. Мастер модели использует API Simulink для считывания данных из модели, загруженной в память. У 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 и 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 и Polyspace
Исходный код соответствует архитектуре программного обеспечения
Исходный код соответствует стандартам
Исходный код является точным и непротиворечивым
Сервер проверки кода Polyspace и сервер проверки кода Polyspace
Исходный код соответствует архитектуре программного обеспечения
Исходный код соответствует стандартам
Исходный код поддается проверке
Исходный код является точным и непротиворечивым
Код исполняемого объекта надежен с высокими требованиями
Код исполняемого объекта надежен с низкоуровневыми требованиями
Случаи и процедуры формального анализа являются правильными
Результаты формального анализа являются правильными и объясняются расхождения.
Формализация требований правильна
Формальный метод правильно обоснован и уместен