Лучшие практики для повышения надежности разрабатываемых вами систем начиная от организации командной разработки до автоматизации тестирования алгоритмов и применения формальных методов для доказательства отсутствия ошибок.
3. 3
Темы секции
Эффективная организация работы над единым
проектом
Автоматизация и управление тестированием
Создание тестовых сценариев
Доказательство отсутствия ошибок в проекте
5. 5
Зачем нужно разбиение на компоненты?
Для эффективного и робастного системного проектирования
– Понижение сложности задачи путём разбиения её на подзадачи
– Повторное использование компонентов в других проектах
Для улучшения эффективности совместной работы
– Разбиение на алгоритмы, модели объектов управления и тесты
– Совместная работа команд над проектом
– Использование систем контроля версий
Для совершенствования валидации и верификации
– Устранение повторного тестирования неизменных компонентов
– Независимое модульное тестирование через хорошо определенные
интерфейсы
6. 7
Рекомендации по разбиению на компоненты
Архитектура должна:
– Вырастать из требований
Высокоуровневые и низкоуровневые требования
– Быть расширяемой
Для решения будущих задач
– Решать вопросы командной работы
Уменьшение числа конфликтов
Но здесь нет идеального рецепта
– Очень важен опыт
7. 8
Методы разбиения на компоненты
Требования Virtual SS
libraries
Atomic SS
libraries
Model
blocks
Atomic
subcharts
Требования процесса разработки
Иерархия функций –
Повторное использование – +
Совместная разработка + +
Защита ИП – + + +
Инкремент. генерация кода – –
Модульное тестирование – +
Производительность
Инкремент. загрузка – –
Скорость симуляции + +
Использование памяти – –
Поддержка всех функций
Simulink
+ +
Хорошо подходит
+ Поддерживается
– Не поддерживается
8. 9
Дальнейшие рекомендации (архитектура модели)
Статья «Крупномасштабное моделирование для встраиваемых приложений»,
Керри Гранд, Винод Редди, Ген Сасаки и Эрик Диллабер
Статья «Лучшие подходы к реализации руководств по моделированию в
Simulink», Дэвид Джефри
Статья «Тестирование проектов и требований при помощи моделирования и
симуляции», Майкл Кароне
Статья «Практические стратегии внедрения модельно-ориентированного
проектирования для встроенных приложений», Эрик Диллабер, Ларри Кендрик,
Венси Джин и Винод Редди
Статья «Optimal Scheduling in Graphical Modeling Environments», Michael Burke
Статья «Model-Based Design for Large High-Integrity Systems: A Discussion
Regarding Model Architecture», Mike Anthony, Jon Friedman
Вебинар «Лучшие методы крупномасштабного моделирования с
использованием инструментов MathWorks»
10. 11
Дальнейшие рекомендации (данные модели)
Статья «Design Data Management in Model-Based Design», Saurabh
Mahapatra, Priyanka Gotika
Статья «Design Variant Management in Model-Based Design», Saurabh
Mahapatra, Priyanka Gotika
Статья «Model-Based Design for Large High-Integrity Systems: A
Discussion on Data Modeling and Management», Mike Anthony, Matt
Behr
Видео «Управление данными в моделях Simulink с
использованием словаря данных»
Видео «Управление конфигурациями подсистем»
11. 12
Использование Simulink Projects
Поиск, координация, и обмен
связанными файлами в Simulink
Доступ к функционалу системы
контроля версий
Рассмотрение изменений и слияние
изменений в моделях Simulink
Просмотр информации о ревизиях и
авторах
Управление ярлыками и метаданными
проекта и файлов
Анализ зависимостей файлов проекта
>>
14. 18
Дальнейшие рекомендации (командная разработка)
Статья «Integrated Project Management Tool for Modeling and
Simulation of Complex Systems», Sergio Tamayo, Stacey Gage, Gavin
Walker
Статья «Model-Based Design for Large High-Integrity Systems: A
Discussion on Logic-Intensive Algorithms», Mike Anthony, Will
Campbell, Becky Petteys
Статья «Automatic Report Generation in Model-Based Design»,
Saurabh Mahapatra
Статья «Team-Based Collaboration in Model-Based Design», Saurabh
Mahapatra, Jason Ghidella, Gavin Walker
Статья «Model-Based Design for Large High-Integrity Systems: A
Discussion on Verification and Validation», Mike Anthony, Matt Behr,
Matt Jardin, Richard Ruff
15. 19
Дальнейшие рекомендации (командная разработка)
Вебинар «Командная разработка в Simulink»
Видео «Использование Simulink Project совместно с Subversion»
Видео «Командная работа с Simulink Projects»
Вебинар «Эффективное применение системного моделирования и
системных моделей»
Вебинар «Simulink для системного проектирования в соответствии
с ARP4754»
Серия вебинаров «Tips and Tricks for Large-Scale Model-Based
Design»
www.mathworks.com/mbd
20. 24
- Доказательство свойств системы
- Генерация тестов для покрытия модели
- Поиск ошибок проектирования
- Доказательство отсутствия ошибок времени исполнения
Формальные методы верификации
22. 26
Автоматическая генерация тестов
Simulink Design Verifier
– Поиск тестовых векторов для покрытия, не достигнутого
функциональными тестами
• Поиск пропущенных требований
• Идентификация производных требований
• Удаление функций модели, не отслеживаемых к
требованиями, только если эти функции не
отслеживаются к производным требованиям
• Помощь в составлении тестовых векторов
(функциональных) для 100% покрытия модели
тестами
>>
23. 27
Поиск ошибок проектирования
Simulink Design Verifier
Генерация
контр-примеров
• Ошибки деления на ноль
• Целочисленное переполнение
• Доступ за границы массива
• Мертвая логика
Запись вебинара: Формальная верификация в MATLAB и Simulink
>>
24. 28
Стандарты моделирования
• MAAB (MathWorks Automotive Advisory Board)
https://www.mathworks.com/solutions/automotive/standards/maab.html
• NASA-STD-7009
https://standards.nasa.gov/standard/nasa/nasa-std-7009
• MISRA AC SLSF
https://www.misra.org.uk/Activities/MISRAAutocode/tabid/72/Default.aspx
• NASA ORION GN&C
https://www.mathworks.com/solutions/aerospace-defense/standards/nasa.html
• Simulink Modeling Guidelines for High-Integrity Systems
https://www.mathworks.com/help/simulink/high-integrity-systems.html
25. 29
Соответствие стандартам моделирования
Model Advisor используется для
– Установление стандартов моделирования и «лучших практик»
– Выявление проблем моделирования и генерации кода
– Проверка моделей на известные проблемы с обновлением
версий
26. 30
Тренинги
Курс «Командная разработка и архитектура модели в Simulink» (2 дня)
Управление интерфейсами подсистем и моделей Simulink
Работа с требованиями в моделях Simulink
Разбиение моделей с использованием подсистем, библиотек и ссылок на
модели
Управление моделями и их зависимостями в проекте
Управление размещением, хранением и поведением данных в модели
при генерации кода
Установление и контроль за соблюдением стандартов моделирования
Документирование моделей Simulink и обмен моделями
http://matlab.ru/training/SLMB
27. 31
Тренинги
Курс «Верификация и валидация моделей Simulink» (1 день)
Разработка тестовых примеров
Анализ результатов тестирования
Выполнение множественных тестов
Построение отчетов о результатах тестирования
Автоматическая проверка моделей
http://matlab.ru/training/SLVV
28. 32
Услуга: аудит процессов проектирования систем
Анализ и оценка
существующих процессов,
организации, технологий и
целей
Интервью с руководителями и
техническими специалистами
Краткосрочный и долгосрочный
планы улучшения
29. 33
Центр инженерных технологий и моделирования Экспонента
Вебинары, семинары, обучение, демонстрационные версии,
консалтинг, внедрение МОП :
www.MATLAB.ru
E-mail: matlab@exponenta.ru
Тел.: +7 (495) 009 65 85
Дополнительная информация:
www.mathworks.com, www.exponenta.ru
www.youtube.com/user/MATLABinRussia