Модельно-ориентированный подход существенно сокращает издержки разработки встраиваемого аппаратного и программного обеспечения. Это достигается за счёт интенсивного использования математического моделирования, автоматической генерации кода и всесторонней верификации алгоритмов. Сложность и количество встраиваемых алгоритмов растут, потому позднее внедрение данного подхода является риском для современного конструкторского бюро.
Первым преимуществом модельно-ориентированного проектирования является создание алгоритма в графическом виде с возможностью динамического запуска. Наличие библиотек с готовыми алгоритмами даёт возможность разработчику не только перепробовать самые разные варианты решения, но и формально доказать, что это решение является наилучшим и соответствует техническим требованиям. Навык моделирования алгоритмов приобретаемый, потому самый простой команде разработчиков освоить его - это пройти путь разработки алгоритма вместе с нами для передачи необходимого опыта.
Разделение роли математика-алгоритмиста и программиста встраиваемой системы сопровождается длительными и многочисленными итерациями, так как эти специалисты «разговаривают» на разных языках, и алгоритмы сложны для понимания, и ресурсы вычислителя ограничены для реализации. Модельно-ориентированный подход позволяет перевести алгоритмы из представления в двойной точности в одинарную или целочисленную, что позволяет оценить понижение точности при аппаратной реализации и необходимые ресурсы для запуска алгоритма на вычислителе. Мы готовы передать наш опыт моделирования алгоритмов с учетом аппаратной реализации непосредственно на вашем проекте.
Ключевым аспектом модельно-ориентированного проектирования является автоматическая генерация кода из моделей алгоритмов. Помимо очевидного сокращения времени и улучшения качества кода за счёт такой автоматизации, команда разработчиков получает возможность быстро переносить разработанные алгоритмы из одного проекта в другой проект, и с одной ЭКБ на другую, просто поменяв настройки генератора кода. Таким образом гарантируется удобство хранения, тестирования и переиспользования разрабатываемых алгоритмов. Технология автоматической генерации кода существует и активно используется более 25 лет, но ее освоение является трудоемким процессом, так как для получения эффективного кода нужно понимать более 300 различных настроек. Мы научим вашу команду пользоваться автоматической генерацией кода, настроив вид и интерфейсы кода точно под ваш проект.
Embedded Coder генерирует портируемый ANSI C или ISO C++ код
На ранних этапах проекта оценка требуемых вычислительных ресурсов делается грубо, и когда дело доходит до реализации алгоритмов, оказывается, что выбранное алгоритмическое решение не вмещается. Для решения данной проблемы критически важно уметь быстро перебирать различные варианты реализации или оптимизации алгоритмов. С применением модельно-ориентированного проектирования различные варианты оптимизации проверяются с помощью изменения настроек модели и повторной генерации кода, в то время как при ручном кодировании пришлось бы переписать большую часть проекта. Мы готовы передать навыки и программные пакеты для аппаратной оптимизации кода вашей команде.
Embedded Coder использует математические библиотеки, такие как CMSIS DSP, для генерации платформозависимого оптимизированного кода
Модельно-ориентированное проектирование гарантирует прозрачность и протестированность проекта от требований до работающего на вычислителе алгоритма. Это достигается за счёт воспроизводимости функциональных тестов на модели, на коде и на целевом вычислителе и с помощью различных автоматизаций тестирования, таких как генерация тестовых сценариев и формальные методы доказательства отсутствия ошибок. Для выстраивания процесса разработки надежного ПО лучше всего пройти этот путь с нами на вашем «боевом» проекте, убедившись в экономической эффективности такого подхода.
Более подробно изучить вопросы сертификации и разработки систем повышенной надежности вы можете по ссылке.
Узнать детали верификации кода критических систем c LDRA можно здесь.
Polyspace Code Prover обнаруживает ошибки времени исполнения в коде