JTEKT выбрала язык SPARK для верификации ПО электроусилителей рулевого управления

JTEKT выбрала язык SPARK для верификации ПО электроусилителей рулевого управления

Японская корпорация JTEKT, производитель систем усиления рулевого управления, выбрала язык программирования SPARK и инструментальные средства компании AdaCore для разработки и верификации критического для безопасности ПО, сертифицируемого по стандарту ISO 26262. В автономных транспортных средствах система рулевого управления должна взаимодействовать с другими системами, например с системой контроля полосы движения, и ее программное обеспечение имеет наивысший уровень критичности для безопасности – ASIL D (Automotive Safety Integrity Level) стандарта ISO 26262.

Тестирование ПО показывает наличие ошибок, но не может доказать их отсутствие – для этого применяется статический анализ, т. е. исследование кода программы, а не ее прогон (динамический анализ). Одним из методов статического анализа является формальная верификация – доказательство с помощью математических методов того, что ПО делает то, что от него требуется, и не делает того, что не требуется. Язык SPARK – это подмножество языка Ada, позволяющее проводить формальную верификацию. Язык программирования Ada создавался специально для разработки ПО с повышенными требованиями к надежности, и в настоящее время Ada является основным языком для разработки ПО систем, критически важных для безопасности. Данный язык стал международным стандартом ISO 8652. В последней редакции стандарта ISO 8652-2012 (Ada 2012) введена конструкция для задания «контрактов» – требований к результатам работы программного модуля, описанных непосредственно в тексте программы на языке Ada. «Контракт» используется компилятором для вставки динамических проверок или средствами статического анализа – для формальной верификации.

Для разработки и верификации ПО электроусилителей руля JTEKT применяет комплекс средств верификации SPARK Pro, а также GNAT Pro CCG (Common Code Generator) – транслятор программы на языке Ada/SPARK в программу на языке C. Применение CCG позволяет использовать всю имеющуюся в компании инфраструктуру разработки на языке С. Недавно SPARK Pro и GNAT Pro CCG были квалифицированы по стандартам МЭК 61508 и ISO 26262, которые определяют четыре уровня критичности для безопасности SIL (Safety Integrity Level) и три категории инструментальных средств для обеспечения заданного уровня SIL. Транслятор GNAT Pro CCG квалифицирован по наивысшим категориям T3 стандарта МЭК 61508 и TCL3 (Tool Confidence Level) стандарта ISO 26262, а комплекс SPARК Pro – по категориям T2 МЭК 61508 и TCL3 ISO 26262.

Основные продукты AdaCore для разработки и верификации ПО:

  • GNAT Pro – компилятор и комплекс средств разработки на языке Ada, поддерживает все редакции языка Ada83, Ada95, Ada2005 и Ada2012;
  • CodePeer – статический анализатор / детектор потенциальных ошибок и уязвимостей в программах на языке Ada;
  • SPARK Pro – комплекс средств верификации ПО на языке SPARK, формально верифицируемом подмножестве языка Ada;
  • QGen – квалифицируемый генератор программного кода на языках MISRA C и SPARK из моделей Simulink/Stateflow.

Дистрибьютор AdaCore в России – компания «АВД Системы», поставщик средств разработки ПО критически важных для безопасности сертифицируемых встраиваемых компьютерных систем.

Добавить комментарий

Ваш адрес email не будет опубликован.