Научная статья на тему 'Ит на основе Polyspace Matlab для отладки программного обеспечения встроенных микропроцессоров систем управления'

Ит на основе Polyspace Matlab для отладки программного обеспечения встроенных микропроцессоров систем управления Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
588
46
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМЫ УПРАВЛЕНИЯ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / ОТЛАДКА / ОШИБКИ / МОДЕЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Понятский Валерий Мариафович, Федорищева Вера Георгиевна, Богданова Людмила Анатольевна, Игумнова Татьяна Алексеевна

В настоящее время актуально использование автоматизированных технологий тестирования и отладки программного обеспечения для встроенных вычислительных систем. Инструменты Polyspace программного комплекса MathWorks Matlab помогают обнаружить ошибки выполнения и подтвердить отсутствие специфических ошибок в исходном коде на языке C/C++ без исполнения кода.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Понятский Валерий Мариафович, Федорищева Вера Георгиевна, Богданова Людмила Анатольевна, Игумнова Татьяна Алексеевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Ит на основе Polyspace Matlab для отладки программного обеспечения встроенных микропроцессоров систем управления»

Понятский В.М.1, Федорищева В.Г. 2, Богданова Л.А.3, Игумнова Т. 4

1 АО Конструкторское бюро приборостроения им. академика А.Г. Шипунова, г. Тула, начальник бюро, Тульский государственный университет, к.т.н., доцент кафедры Проектирование автоматизированных комплексов, pwmru@rambler.ru

2 АО Конструкторское бюро приборостроения им. академика А.Г. Шипунова, г. Тула, ведущий

инженер

3 АО Конструкторское бюро приборостроения им. академика А.Г. Шипунова, г. Тула, начальник

сектора, д.т.н.

4 АО Конструкторское бюро приборостроения им. академика А.Г. Шипунова, г. Тула, ведущий

инженер, к.т.н.

ИТ НА ОСНОВЕ POLYSPACE MATLAB ДЛЯ ОТЛАДКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВСТРОЕННЫХ МИКРОПРОЦЕССОРОВ СИСТЕМ

УПРАВЛЕНИЯ

КЛЮЧЕВЫЕ СЛОВА

Системы управления, программное обеспечение, отладка, ошибки, модель. АННОТАЦИЯ

В настоящее время актуально использование автоматизированных технологий тестирования и отладки программного обеспечения для встроенных вычислительных систем. Инструменты Polyspace программного комплекса MathWorks Matlab помогают обнаружить ошибки выполнения и подтвердить отсутствие специфических ошибок в исходном коде на языке C/C++ без исполнения кода.

Введение

Методы, традиционно используемые для выявления и отладки ошибок разработанного программного обеспечения, можно разделить на ручное рассмотрение кода и динамическое тестирование. Ручное рассмотрение кода может быть эффективным методом поиска ошибок в относительно небольших приложениях размером в несколько сотен строк кода. Для программ большего размера ручное рассмотрение является трудозатратным процессом.

Динамическое тестирование требует от инженеров написания и выполнения тестов. Для типичного встраиваемого приложения могут потребоваться многие тысячи тестовых векторов. Динамическое тестирование основывается на методе проб и ошибок, что предоставляет только частичное покрытие всех возможных комбинаций значений, которые могут встретиться во время выполнения. Как и ручное рассмотрение кода, этот процесс является трудозатратным. Время, потраченное на создание тестов и ожидание разработки исполняемой системы, часто приводит к тому, что динамическое тестирование смещается в конец цикла разработки программного обеспечения, когда ошибки наиболее дорого исправлять.

Инструменты Polyspace программного комплекса (ПК) MathWorks Matlab помогают обнаружить ошибки выполнения и подтвердить отсутствие специфических ошибок в исходном коде на языке C/C++. Коды при этом могут быть написаны вручную, автоматически сгенерированы или их комбинацией. При помощи методов математического анализа, реализованных в продуктах верификации Polyspace, можно подтвердить отсутствие ошибок переполнения, деления на ноль, обращения к элементам вне границ массивов и других ошибок выполнения в коде. Для этого не требуется исполнения кода, применения специальных средств измерения и тестовых процедур.

Polyspace Code Prover работает совместно с Polyspace Bug Finder для поиска дефектов и проверки соответствия стандартам кодирования. Совместно эти продукты предлагают сквозное решение для статического анализа на ранних стадиях разработки, которое охватывает поиск дефектов, проверку на стандарты кодирования и доказательство наличия или отсутствия ошибок выполнения кода. Такой подход обеспечивает качество встраиваемого программного обеспечения, которое должно функционировать на высочайших уровнях надежности и безопасности.

Получить доступ к Polyspace Code Prover и Polyspace Bug Finder можно из командной строки

Matlab, графического интерфейса пользователя или при помощи плагинов для Visual Studio и Eclipse.

С использованием продуктов Parallel Computing Toolbox и Matlab Distributed Computing Server можно ускорить статический анализ кода, передавая задачи анализа кода на вычислительные кластеры.

Polyspace Bug Finder и Polyspace Code Prover совместно с инструментами Matlab IEC Certification Kit и DO Qualification Kit могут использоваться в процессе сертификации проектов по промышленным стандартам IEC 61508, ISO 26262, DO-178. Отчеты, создаваемые в процессе тестирования, документируют применение правил кодирования и отображают результаты поиска ошибок выполнения программ. Отчеты могут создаваться в форматах PDF, HTML, RTF и других форматах.

ИТ отладки программного обеспечения встроенных вычислительных систем с использованием Polyspace комплекса Matlab

Этап 1. Тестирование и отладка разработанного программного обеспечения с использованием процедуры Polyspace Bug Finder

Основные возможности Polyspace Bug Finder:

■ выявление ошибок кодирования, проблем потоков данных и других дефектов в C и C++

коде;

■ быстрый анализ больших объемов кода;

■ проверка соответствия стандартам кодирования MISRA-C:2004, MISRA-C++:2008, JSF++ и настраиваемым правилам именования;

■ расчет цикломатической сложности и других метрик кода;

■ интеграция с Eclipse;

■ трассируемость результатов верификации кода к моделям Simulink;

■ доступ к результатам анализа Polyspace Code Prover;

■ низкий уровень ложных срабатываний при выявлении программных дефектов.

Поиск ошибок кодирования и выявление их причин

Polyspace Bug Finder выявляет ошибки и нарушения правил кодирования сразу после написания, изменения или генерации кода. Ошибки кодирования или логики могут порождать сбои и некорректное поведение программы.

Polyspace Bug Finder выявляет самые разные ошибки кодирования - такие, как:

■ численные (деление на ноль, переполнение, сдвиг, некорректное использование функций из стандартной библиотеки, переполнение при целочисленной конвертации);

■ ошибки программирования (некорректное использование операторов = или ==, несоответствие объявлению);

■ ошибки при работе со статической памятью (доступ за пределы массива, null pointer);

■ ошибки при работе с динамической памятью (использование освобожденного указателя, незащищенное динамическое выделение памяти);

Рис. 1 Переполнение, обнаруженное при помощи Polyspace Bug Finder

Эти ошибки идентифицируются в исходном коде, приводится дополнительная информация, помогающая отследить причину ошибки и выявить ее источник. Разработчики программного обеспечения могут использовать эту информацию для того, чтобы определить, как лучше исправить найденную ошибку.

Верификация соответствия стандартам кодирования (MISRA, JSF, правила именования) Polyspace Bug Finder поддерживает обнаружение нарушений стандартов кодирования MISRA-C:2004, MISRA-C++:2008, MISRA-AC-AGC, JSF++ и настраиваемых правил именования в коде. Polyspace Bug Finder используется для установления стандартов кодирования, чтобы улучшить читаемость и качество кода. Можно настроить Polyspace Bug Finder для проверки на все правила стандарта, только требуемые правила стандарта или выбрать индивидуальные правила, которые требуется проверять. Также можно задать собственную конфигурацию для использования одинаковых правил кодирования во всей команде разработчиков.

ID III: * MfSftA С ЮЛ Itw чип* at mi upmiw Ofntftr typ« ilufnoc bi npkiv cartvwwd to » dffttM mtoVng ГУР*

й1шш of The *кфг«и>л Afmdtriyng typt 'iqnttl it»ft is Фе typ* im^red dw' thm ч пм л ndH fitter typ* of the mnt iijKKln«! f i

ЬийД_Г

ICS С » 0 x F Г Г: /* MI* ct: comtinc vi«p«romid "/

ufl*ign*d chur ci

rtcurn ej

uniigntd slur round(void)

[

uncifn*4 chur ci

с • Oxrfj return с/

Рис.2 Идентификация нарушения стандарта кодирования MISRA

Создание метрик кода и мониторинг качества программного обеспечения Метрики кода - это измеренные характеристики исходного кода, позволяющие оценить качество программного обеспечения. Polyspace Bug Finder генерирует метрики, относящиеся ко всему проекту, к одному файлу или к отдельной функции.

Рис.3 Трассирование нарушений правил кодирования по стандарту MlSRA к модели SimuIink

Метрики сложности кода включают в себя:

■ цикломатическую сложность;

■ плотность комментариев;

■ уровень вложенности вызовов;

■ количество возможных путей;

■ число параметров функции;

■ количество строк кода.

Используя такие метрики, можно отслеживать прогресс кода относительно заранее определенных целей качества программного обеспечения по мере развития проекта. Измеряя скорость улучшения качества программного обеспечения, Polyspace Bug Finder позволяет разработчикам, тестировщикам и менеджерам проектов ставить цели и создавать код высокого качества.

Polyspace Bug Finder позволяет получать метрики исходного кода и загружать их в отдельный репозиторий, имеющий собственный веб-интерфейс.

Трассирование результатов анализа кода к моделям Simulink

Результаты анализа ошибок в автоматически сгенерированном коде трассируются обратно к модели Simulink. Таким образом, можно определить, какие части модели являются надежными и исправить проблемы в модели, которые приводят к ошибкам в коде.

Этап 2 Тестирование и отладка разработанного программного обеспечения с использованием процедуры Polyspace Code Prover

Основные возможности Polyspace Code Prover:

■ доказательство отсутствия определенных ошибок выполнения в C и C++ коде;

■ расцветка ошибок выполнения непосредственно в коде;

■ расчет диапазонов для переменных и значений, возвращаемых функциями;

■ идентификация переменных, нарушающих указанные диапазоны;

■ метрики качества для отслеживания соответствия целям качества программного обеспечения;

■ веб панель, представляющая метрики кода и состояние качества проекта;

■ управляемый процесс рассмотрения кода для классификации результатов и ошибок выполнения;

■ графическое представление операций чтения и записи в переменные.

Верификация ошибок выполнения

Ошибки выполнения также называются скрытыми дефектами, так как они редко проявляются непосредственно. Последствия таких ошибок включают отказы и неожиданное поведение ПО во время испытаний или эксплуатации.

По результатам верификации в Polyspace Code Prover, каждая операция в C или C++ коде отмечается цветом, обозначающим статус этой операции:

Зеленый: доказано отсутствие ошибок выполнения;

Красный: доказано наличие ошибки при каждом выполнении этой операции;

Серый: доказана недостижимость операции (может указывать на функциональную проблему);

Оранжевый: недоказанная операция (ошибка может произойти при определенных условиях) (рис.4).

/* Зеленый: надежный

0

1

1 i I <

х > о Щ.

Красный: ошибка

Серый: ^мертвый код

Оранжевый; не доказано

зtitle void filnui.Aiiwuuc (void)

(

int ас i: ay [ 1 (Ю ] ;

Int - actiy;

fOE (l ■ O: i < lOO; 1+-», t++J

la - 0;

If (фес bus jtacusO >01 (

1С oil pEcsriiLil) > 0)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Г"—----■--IE -

else

^ _ _ i++1

Г *

k - «41 bus

i£ <1 >-0) < (£-1) - 10; >

it ((0 < 1) it |1 <• 100)) {

» ' E. - 11

s' ) J

Рис.4 Расцветка ошибок выполнения в коде

Polyspace Code Prover идентифицирует, где могут произойти ошибки выполнения и код, в котором доказано отсутствие ошибок выполнения. Polyspace Code Prover доказывает отсутствие

следующих ошибок выполнения в исходном C и C++ коде:

■ переполнение, исчезновение порядка, деление на ноль, извлечение квадратного корня из отрицательного числа и другие арифметические ошибки;

■ доступ за пределы массива и некорректное разыменование указателя;

■ выражение, всегда возвращающее истину или ложь;

■ неинициализированные члены класса (C++);

■ чтение неинициализированных данных;

■ доступ по нулевому указателю (C++);

■ мертвый (недосягаемый) код;

■ неправильное приведение типов;

■динамические ошибки, относящиеся к объектно-ориентированному программированию, наследованию и обработке исключений (C++).

Просмотр информации о диапазонах Polyspace Code Prover отображает информацию о диапазонах переменных и значениях, возвращаемых функциями, и может доказать условия, при которых переменные нарушают указанные диапазоны. При наведении курсора на оператор или переменную, появляется всплывающая подсказка, отображающая информацию о диапазонах. Метод абстрактной интерпретации позволяет точно определять диапазоны с целью доказательства того, что в программном обеспечении не содержатся ошибки выполнения. Информацию о диапазонах можно использовать для отладки программного обеспечения или чтобы убедиться, что определенные переменные или операции не нарушают заданные диапазоны.

В примере ниже, Polyspace Code Prover определил, что в операции деления левый операнд находится в диапазоне от -1701 до 3276, а правый операнд равен 9. Результат деления находится в диапазоне от -189 до 364.

50

51 static з32 new_3peed(s3£ in, з8 ex_spe_ed, uS c_3peed)

52 {

53 return + ((s32J ex_speed + (s32) c_speed) / 2 ];

) \J operatof / on type int 32

55 left: [-I7D1.. 32761

56 static char re 9 |i;3)

57 { result: [-139.. 36^

Рис.5 Просмотр информации о диапазоне значений переменной

- Л

5535s™—*—""

■в Ч1ч«» ■ ■»

1 Л —1 Г'

XI

Ж0-'

Рис.6 Трассирование результата анализа кода к модели Simulink Трассирование результатов анализа кода к моделям Simulink

Результаты анализа автоматически сгенерированного кода трассируются обратно к модели Simulink. Таким образом, можно определить, какие части модели являются надежными и

исправить проблемы в модели, которые приводят к дефектам в коде. Также можно идентифицировать потенциальные проблемы между интерфейсами сгенерированного и написанного вручную кода. Например, смешение кода в блоке S-Function, написанного вручную, и сгенерированного кода может потенциально привести к некорректным диапазонам сигналов в интерфейсе и вызвать ошибку выполнения.

Разработка проекта в Polyspace Code Prover и Polyspace Bug Finder

Создание проекта

Основой работы в Polyspace Code Prover и Polyspace Bug Finder является проект. В папках проекта размещаются файлы проверяемого исходного кода, файлы внешних библиотек, записывается конфигурация проекта и результаты проверок. Для создания проекта в меню File нужно выбрать опцию New Project. В открывшемся окне Define project нужно задать имя проекта (Project name), версию проекта (Version), указать язык проекта (Project language). Убрать галочки в настройках Project configuration. Нажать кнопку Next (см. рис. 7).

Н* Иирота^д Мига Twta W-чк-я Ь i 3 Ч о ЬИ«Л

+ к я ¿Tift

Ц, fitya Mgwy r| - nrbäta ни'щаг

I v.: f.

Mte«'] lij&JIfui. !>

Рис.7 Создание нового проекта в Polyspace Bug Finder

Далее нужно загрузить в папку проекта Source проверяемые файлы C/C++ (кнопка Add Source Files), а в папку Include загрузить подключаемые внешние библиотеки (кнопка Add Include Folder). Нажать кнопку Finish (рис.8). Созданный проект появится в браузере проекта Project Browser.

V Project - Add Source Fhs antf friclude ISh Add source rites drier pnilude rofcters

ГШ

look ft! АгсЦ

ap>

Нйлммч док^егтн

Ptff-J-HH стсл

£ Mo« локутты

Kv^in

FJrrwnr: «OO-t-

к У ' Hü-

tt!* 1

Add SöJ-ct Fite

Add l/idudc P=cMers

- 3 Iii-i [С + + ] О QSouci

- C3*4ta

llmWf

fcärJc

E ic

FuJ-

Рис.8 Загрузка проверяемых файлов и папок библиотек в проект Далее необходимо настроить созданный проект для проверки.

Настройка проекта (конфигурирование проекта)

Для настройки проекта нужно открыть окно Configuration (рис.9).

Во вкладке Target & Compiler можно настроить следующие параметры:

- операционная система (target operating system);

- целевой процессор (target processor type);

- диалект языка (dialect).

Во вкладке Coding rules можно настроить проверку на соответствие стандартам кодирования: выбрать стандарт и настроить подмножество правил кодирования. Например, выбрать стандарт MISRA C: 2012 и проверку на требуемые и рекомендуемые правила кодирования mandatary-recuired.

Во вкладке Reporting можно настроить генерацию отчета в автоматическом режиме по результатам проверки кода.

Во вкладке Advanced Settings можно настроить генерацию метрик кода для контроля характеристик качества кода.

Для запуска анализа кода в созданном проекте нужно нажать в верхнем меню кнопку Run I ■ Run '

. Начинается процесс анализа кода, результаты анализа записываются в папку Result

проекта.

V Ри^ицт Г UMffV«l«v4taC 11 пжл с '. f- г, I ц-41 м; iwVtp»r » ', j «т д'л |стд р*)

Mr R«|Wt<i<g lMntfgw М«ф

АДВ if " ■«»

■ -UJ.MJ.J-I1M

.'ц w ¡4 к I

! » '! « IWI

Цр M 13 Ш \ ± Т | J* 1

J 1км»

& СДАптЬд

"О «Л**

lainciud«

CS CAWwnV. Л MATLAff.Tïî 'J HoMc.l

а '-Э bfnn4e

èa^ofl

J CoiJigimUon i|L RMutt

■ : 4 • О C^

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Июм EnvitotfittKM Hf-iftt. * ftvMnng

Ceding RiJliH

Cftdi Pro.IT vtnrvMien

»r#icjtHin AiiLmyrtœ«

Chock bhmcr

Ргмшел ïijiinq

СМСпЬчЛсЛ СвАфиЪЛф StlliAfli

¿Ао^&шиг I :|Bnili

Tirqct Ь Сош|Лс1

Yor-gcl QfSCFflb'ïg »VlbCT* ino^rodc4

t*r (iH нос«*« счел ле

№ii«l АЙМ

С IWIuw»

рУ DVue. jfcj Output Г,л1гш ,

Рис. 9 Настройка проекта

Анализ результатов

Полученные результаты анализа кода можно посмотреть, открыв контекстное меню или дважды кликнув на папку результатов (рис.10а). Результаты отображаются в графическом виде (окно Dashboard) и в виде списка ошибок (окно Results Summary), сгруппированных по типам или по именам файлов, в которых они обнаружены (рис. 10б).

В файле dataflow.c найдена ошибка «мертвый код» (dead code). Кликнув на эту ошибку в окне «итоговый результат» (Results Summary), можно увидеть ее в исходном файле с подробной детализацией (окно Check Details) (рис.10в).

а)

б)

в)

Рис. 10 Просмотр результатов анализа кода в Polyspace Bug Finder

а) открытие файла результатов; б) результаты в виде списка дефектов и в графическом виде; в) ошибка кода «dead code» с отображением в исходном файле (окно Sourses) и детализацией (окно Check Details)

Загрузка и просмотр метрик кода

Измеренные метрики кода, характеризующие его качество, можно размещать в специальном хранилище-репозитории. Такой репозиторий может быть развернут на удаленном сервере и команда разработки ПО может отслеживать на нем изменение качества кода в процессе доработки.

Для загрузки измеренных метрик кода в репозиторий, нужно открыть меню Metrics>Upload to Metrics (рис. 11").__

't Mywi Cod« Ржа - Codt.pfoxr.e С ЛhUtflevru' &',МоА* 1' fob* 1

I Ht Run Repertmg _ Vtv o loeb Window He«

Щ á дЗ Д|ач ~ Орел M*4nö whole »ont»

я» Ь| Fem* - Sh» i Courd Пои • Dele По» Upload new mullí to the Polyipaa «etna repot-tcwy]

Metncs and Remo» Serve« Settngt

L 100 I1H 400 Status

L™ J O-rt K»—« J, CoMMlHi

> Wh».с ra?

НЕЕ a a Bad_gh*í concur... gtabeí_¥Bi Шит... gkM.ml шкап... HB и г МЛ* IM {TOOK

нммн tí lo тм импоы tYfrt modti ft 11 furor me ашгам япоят... ■ рч» pnjgra- «ШЫ. XU2 [102*] «Mit IM» [HMML. ■ ■

• Stubbed Fundion» J * aniairrtnryMdjfcei

JSWII uj Data tange configurado«!

Рис. 11. Загрузка метрик кода в репозиторий

Происходит обнаружение результатов (рис. 12").

I И» Run Reporting

Рис. 12. Обнаружение результатов

В открывшемся окне (рис. 13) нужно задать имя проекта, который будет сохранен в репозитории и его версию. Нажать кнопку Upload.

File Run Reporting Metrics ТооЬ Window МЯр

F-rapa Manag« [ v Rn*s Manag«

MERA С:2012

TM f ojea name, даяоп and чя

project name СоМ_Ргм>_« n_ ^ U

El_

Рис. 13. Создание проекта для загрузки в репозиторий

Доступ к результатам можно защитить с помощью пароля или оставить их открытыми, не вводя пароля (рис. 14).

Рис. 14. Защита результатов с помощью пароля

Чтобы открыть результаты, записанные в репозиторий, выбрать в меню Metrics-> Open Polyspace Metrics repository (рис. 15).

Рис. 15. Открытие репозитория с записанными метриками

Рис. 16. Загрузка проекта из репозитория

Можно посмотреть различные метрики, например, метрики исходного кода (рис. 17): количество строк кода (Lines of Code), количество исполняемых строк кода (Executable Lines), цикломатическую сложность (Cyclomatic Complexity), плотность комментариев (Comment Density) по каждому файлу кода.

Project CckJ* Prôver *X|lni*qr*i

Рис. 17. Просмотр метрик исходного кода Результаты проверки программного обеспечения для встроенных вычислительных

систем

С помощью программ Polyspace Bug Finder и Polyspace Code Prover было проведено тестирование разработанного программного обеспечения, содержащего 2600 строк кода. Анализ кода на наличие ошибок кодирования (Этап 1)

При проверке Polyspace Bug Finder в коде выявлено наличие «мертвого кода». Выявлены неинициализированные переменные, «бесполезные» переменные -переменные, не используемые в программе после проведенных модификаций.

Display :Гар К ] V defect пnd olations by Category v New results

pbrl version 1.0 (1Ç/Î7/ÎD15) Author; 121M

Files analyzed -I

Functions analyzed \

Lc>de covered by aria lysis

100%

= Files analyzed: 1/1 ¥ Functions analyzed; 1/1

Ho dcfeclç found

Dashboard (=| aulfurt îummuy | Ofccadftgu'^ion $ wtiat's Ne«-. |vlchetk Details ,v] cods Editer ^ source |

Рис. 18. Результаты проверки Polyspace Bug Finder после устранения выявленных дефектов

В результате проведенной работы устранены выявленные дефекты кода (рис. 18):

- доработаны протоколы информационного взаимодействия для баллпрограммы в части учета типа используемого канала (телевизионный или тепловизионный, с широким или узким полем зрения);

- проведены более строгая инициализация и описание переменных;

- устранена избыточная проверка на соответствие диапазону, деления на ноль.

Анализ кода на наличие ошибок выполнения (Этап 2)

На рисунках 19 представлены результаты проверки кода программой Polyspace Code Prover. Проверка показывает отсутствие потенциально опасных ошибок. В коде отмечено наличие условно опасного и «мертвого кода»: возможность неточного преобразования данных из вещественного в целочисленное значение, возможность переполнения (выхода за диапазон, предусмотренный типом переменной).

В соответствии с полученными результатами введено явное описание преобразования

типов, ограничения по диапазону используемых значении, в том числе и за счет изменения типа переменных.

№1 ИГЙЯ1 1.Ф(1<№/ЗМ5} Д1Л»чг: Ulm

щ

Code Lavured liy VH'TÜH .ILPJ

IDO «i en ТО HJ

XI

Jn

1(1 Q

90 SC

70

«O »

»

Jfl ID flí

100» 100«

Г Im.k ЬьГпЬиЕпп Run

Green (dt>7l)_

Pr«№i*e Civle сретийп

fe n.y сш^тмшп

r<ip ^nrangrMKiren

Orange (11J)

7

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1'шн Огдгдс Skitke

Рис. 19. Результаты проверки исходного кода программой Polyspace Code Prover

Программа Polyspace позволила более корректно сформировать проверки. Например, выявить возможность возникновения ошибок за счет формата представления вещественных чисел в памяти при расчете арифметических выражений с операндами, имеющими существенно различный порядок значений, в частности, избежать получения нуля в знаменателе при ненулевых значениях операндов.

Таким образом, использование ИТ на основе Polyspace Matlab позволяет устранить дефекты и нарушения правил кодирования, сократить время на отладку и проверку при развитии, доработке и модификации программного кода встроенных микропроцессоров для систем управления.

i Надоели баннеры? Вы всегда можете отключить рекламу.