Что такое модельно-ориентированное проектирование
Данный обзор включает краткий ликбез по методологии разработки встраиваемых систем
под названием модельно-ориентированное проектирование. Особый акцент будет сделан на эффект, получаемый компанией, внедряющей данный подход как стандарт разработки встраиваемых систем.
Модельно-ориентированное проектирование (МОП) — это совокупность методик проектирования встраиваемого программного и аппаратного обеспечения, основанных на применении системных моделей на всех этапах жизненного цикла разработки встраиваемых систем.
МОП является ключевой технологией проектирования сложных технических изделий, в том числе работающих под управлением сложных алгоритмов. Сложность подобных изделий такова, что без технологии МОП их разработка или крайне затруднена, или весьма рискованна (авантюрна), или экономически нецелесообразна. Это связано с тем, что при проектировании встраиваемых систем для сложных изделий критически важным является:
- Возможность проверки принимаемых частных («мягких») технических решений посредством быстрого моделирования поведения и характеристик изделия в целом;
- Автоматизация рутинных задач проектирования, в которых часто возникают ошибки человека.
Без МОП управление проектированием сложных изделий несет в себе значительный риск, растущий быстрее сложности самого изделия. Технологии МОП позволяют выявить ошибки проектирования на начальных стадиях проекта, что приводит к существенному сокращению временных и финансовых издержек.
Возможности МОП включают в себя следующий неполный перечень:
- Возможность эффективной оценки технических решений.
- Оценка реализуемости ТЗ на системных моделях (валидация) до начала работ или подписания контракта.
- Математическое обоснование технического облика изделия в соответствии с ТЗ.
- Формирование архитектуры сложной технической системы посредством системной симуляции.
- Упрощение исследования случаев отказов при испытаниях и эксплуатации за счет локализации сбоев с помощью имитации на системных моделях.
- Ранняя верификация частных технических решений и алгоритмов встраиваемого ПО.
- Полунатурное тестирование и оперативное создание программно-аппаратных макетов реального времени.
- Быстрый переход от модели к исходным кодам посредством автоматического синтеза С/С++/VHDL/Verilog/SystemC/SystemVerilog/StructuredText/CUDA для зарубежной и отечественной ЭКБ.
- Автоматизированная верификация и доказательство надежности исходных и объектных кодов в соответствии со стандартами:
а. КТ-178С «Требования к программному обеспечению бортовой аппаратуры и систем при сертификации авиационной техники»;
б. КТ-254 «Руководство по гарантии конструирования бортовой электронной аппаратуры»;
в. Р4754 «Руководство по процессам сертификации высокоинтегрированных сложных бортовых систем воздушных судов гражданской авиации»;
г. ГОСТ Р 51904 «Программное обеспечение встроенных систем»;
д. ГОСТ РВ 0019-001-2006 «Программное обеспечение встроенных систем».
-
Верификация встроенного ПО изделий формальными методами доказательства отсутствия ошибок, а не только валидация функциональных свойств.
Методология МОП в проектных работах
Термины и определения
1. Моделирование и архитектура систем — построение системных моделей гетерогенной природы с достаточным для решаемой задачи уровнем детализации, который регулируется главным конструктором.
2. Автоматическая генерация кода — технология перевода системных моделей в исходные коды С/С++/VHDL/Verilog/SystemC/SystemVerilog/StructuredText/CUDA для реализации на целевых микропроцессорах, симуляторах, контроллерах, ПЛИС и графических процессорах.
3. Верификация и валидация
- валидация — процесс доказательства того, что мы разрабатываем изделие, выполняющее функции, которые на него возлагаются (правильное изделие);
- верификация — процесс доказательства того, что мы разрабатываем изделие в соответствии с требованиями, которые к нему предъявляются (правильная разработка).
Моделирование и архитектура систем
Использование системного моделирования является критически важным и необходимым элементом для предсказуемой реализации проектов. Ниже приведены аспекты МОП, связанные с проектированием верхнего уровня системы.
- Системная модель разрабатываемого изделия строится на основании ТЗ и является «исполняемой спецификацией» на разрабатываемое изделие (другое название - «стенд главного конструктора»). С помощью такой спецификации можно, посредством моделирования, быстро выявить неточности и «белые пятна» в техническом задании, полученном от заказчика, а также понять его реализуемость. Системное моделирование позволяет точнее оценить издержки проекта, необходимые кадровые ресурсы, а также существенно снизить «авантюризм» проекта и уточнить техническое задание до ресурсоемких фаз. На ранних этапах системная модель позволит получить ответ на вопрос: «Что именно заказчик имел ввиду?».
- Системная модель в руках главного конструктора является стендом, где на любом этапе проекта можно запустить тестовые сценарии поведения системы, внештатные ситуации и оценить качество работы системы. Если какая-то из команд, участвующих в разработке, допустила ошибку проектирования, то на динамической системной модели, после запуска тестового сценария, это будет выявлено до создания дорогого и уникального натурного прототипа. Такой подход позволяет находить ошибки на ранних этапах проекта, осознанно подходить к созданию прототипов и минимизировать риски неудачного «первого пуска» системы.
- Главный конструктор имеет возможность прозрачно контролировать взаимодействие между командами разработчиков (например, теми, кто разрабатывает исполнительные механизмы, и теми, кто разрабатывает алгоритмы управления этими механизмами). В единой среде посредством динамического системного моделирования будут выявлены узкие места интеграции подсистем. В противоположность этому общение между отделами посредством только бумажных протоколов, без проверки в динамике, является фактором риска.
- Взаимодействие с контрагентами (поставщиками подсистем) становится прозрачным. Техническое задание на компонент/подсистему передается контрагентам в виде модели, которая уже проверена главным конструктором
в общей системной модели изделия. Даже если контрагент не может поставить компонент с требуемыми характеристиками, то может доработать переданную ему модель и показать, что именно он сможет спроектировать. Эта доработанная модель должна быть интегрирована в общую системную модель для оценки влияния изменения характеристик компонента на изделие в целом. - Системная модель является симулятором или виртуальным прототипом, который можно показать генеральному заказчику и уточнить - «Это ли ожидается по завершению работ?».
- Прогнозирование последствий внесения изменений в ТЗ - системная модель покажет какие подсистемы будут подвержены этим изменениям, а также будет показано изменение поведения системы.
- Сокращение риска появления непродуктивной работы в результате неточного или неполного ТЗ, риска переделывания проекта после уточнения ТЗ.
- Системная модель позволит перебрать десятки различных конструкторских решений и выбрать лучшее до реализации прототипа.
- На системной модели возможно решение задачи математической оптимизации - т.е. подбора оптимальных параметров алгоритмов или характеристик используемых компонентов (или элементной базы).
- Значительная часть задач оптимизации встроенного кода по ресурсам решается за счет системного моделирования.
Автоматизированная генерация кода
Один из ключевых моментов МОП — автоматизированная генерация исходного кода из моделей. Она применима ко всем задачам разработки алгоритмических кодов, и не применяется при написании системного ПО (например, драйверов).
Автоматизированная генерация кода позволяет:
- Существенно сокращать сроки разработки программных кодов.
- Обеспечивать гибкость и скорость переноса алгоритмов из одного проекта в другой или с одной ЭКБ на другую.
- Настраивать генерацию кода под целевой проект. Код может быть оптимизирован для целей читаемости, трассируемости, по используемой памяти или вычислительным ресурсам, по вносимой задержке. Возможно одновременное создание нескольких вариантов кода – для быстрого прототипирования, для верификации и тестовой обвязки, для полунатурных стендов и тренажеров.
- Создавать код, который соответствует (полностью или частично) стандартам кодирования, например, таким как MISRA AC AGC или CERT C.
- Оптимизировать код под конкретную архитектуру микропроцессора или ОСРВ (генерация не только ANSI C).
- Использовать методику тестирования и профилирования кода, как внутри модели, так и в режиме Процессор-в-Контуре на отладочной плате или ПЛИС-в- контуре.
Автоматизированная верификация и валидация
В зависимости от требований проекта к системному уровню надежности (определяется принятым индустриальным стандартом) организуется применение различных комбинаций методик верификации, которые могут включать мероприятия по оценке следующих характеристик проекта:
- Трассируемость проекта от текстового технического задания до сгенерированного кода.
- Оценка покрытия системной модели требованиями - можно выявить, что уже реализовано или какой излишний функционал был реализован разработчиком.
- Математическое (формальное) доказательство надежности разрабатываемых алгоритмов и поиск ошибок проектирования на уровне модели.
- Ввод проектного стандарта моделирования и автоматические проверки на соответствие этому стандарту - гарантия читаемости и переиспользуемости наработок между различными проектными отделами (или предприятиями).
- Создание артефактов для удовлетворения требований стандартов по разработке систем повышенной надежности: ГОСТ Р 51904, КТ-178, КТ-254, ГОСТ РВ 0019-001-2006 и т.д.
- Обеспечение сквозного процесса разработки от требований до натурного прототипа с переиспользуемыми тестовыми сценариями на каждом этапе проекта (системная модель, исходный код, объектный код).
- Создание полунатурного прототипа изделия, работающего в реальном времени (технология Оборудование-в-контуре - HIL, известная как «полунатурное моделирование»).
- Применение методов формальной верификации для автоматического создания тестовых сценариев для 100% покрытия модели тестами.
- Применение методов формальной верификации для доказательства отсутствия ошибок времени выполнения (Run-Time) на уровне исходного кода .
- Гарантия соответствия исходного кода принятым стандартам кодирования на предприятии.
Эффект от внедрения МОП на предприятиях
Практика показывает, что при своевременном внедрении методов модельно- ориентированного проектирования российские предприятия достигают следующих эффектов:
- Объективная оценка реализуемости сложных проектов и снижение технических рисков на ранних стадиях, уже после построения базовой системной модели.
- Сокращение сроков выполнения работ по сложным изделиям.
- Возможность разработки более сложных изделий с уникальными свойствами, недостижимыми для конкурентов.
- Эффективная система ранней оценки частных технических решений на системных моделях типа «стенд главного конструктора».
- Повышение надежности и качества изделий за счет сквозной непрерывной верификации.
- Возможность управления себестоимостью изделий через обоснованное принятие рациональных технических решений в том числе и на базе отечественной ЭКБ, за счет системной и алгоритмической оптимизации.
- Управление себестоимостью за счет снижения зависимости от работ с натурными прототипами.
- Повышение эффективности и реализуемости проектов за счет повторного использования поддерживаемых, читаемых и портируемых моделей.
- Сокращение затрат на поиск и идентификацию причин эксплуатационных отказов.
- Автоматизированное формирование отчетной документации в соответствии с требованиями ЕСПД.
- Снижение рисков при научно-технической кооперации внутри предприятия или с внешними подрядчиками посредством однозначных требований в виде исполняемых моделей, дополняющих входящую и исходящую документацию.
- Возможность выполнения большего объема ОКР за счет ускоренной разработки.
- Повышение взаимозаменяемости разработчиков сложных кодов и связанных с этим рисков, за счет наличия стандартов моделирования и выстроенного процесса автоматической генерации кода из моделей.
- Снижение зависимости предприятий от поставщиков ЭКБ, за счет упрощенной миграции между ЭКБ, посредством автоматической трансляции моделей в код, оптимизированный под целевую ЭКБ. Возможность вариативной разработки одного устройства на базе разных наборов ЭКБ.
Методология Модельно-Ориентированного Проектирования широко применяется инженерами со всего мира с использованием инструментов MATLAB и Simulink. Ещё материалы по теме:
- Прототипирование аудио алгоритмов на пк с использованием модельно-ориентированного проектирования
- Переход к do-178c и arp4754a при разработке по повышенной надежности для бпла с использованием модельно-ориентированного проектирования
- Лучшие практики разработки программного обеспечения в соответствии с do-178 с использованием модельно-ориентированного проектирования
- Разработка системы управления электропривода по методу модельно-ориентированного проектирования
- Модельно-ориентированное проектирование для малых групп
- МОП - Куратор проекта
Комментарии
Чувствую, это кто-то свою диссертацию пересказывает.
Изложенл довольно "сухо", зато информативно.
Если у Вас есть собственные материалы по этой теме, то было бы очень полезно если бы поделились на площадке.