exponenta event banner

Постройте анализ Polyspace из модулей в командной строке на основе начального анализа взаимозависимости

Анализ целой кодовой базы для отдельного приложения может занять много времени, в зависимости от размера приложения.

Для крупного приложения, Polyspace® позволяет вам:

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

  • Задайте количество модулей в компромиссе между скоростью верификации и точностью.

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

Основные опции

Можно разделить приложение в модули с помощью следующей пакетной команды:

polyspace-modularize [target_folder] {option1,option2,...}
Эта таблица описывает основные опции, которые можно использовать.

ОпцияОписание
target_folderПапка, которая содержит результаты начального запуска, это обрабатывает исходные файлы. Значением по умолчанию является папка, от которой вы запускаете polyspace-modularize.
- o=output_folderВыведите папку для разделенного приложения. Значением по умолчанию является папка, от которой вы запускаете polyspace-modularize.
- gui=max_nСреда верификации Polyspace отображает окно выбора Модульного исполнения с предопределенным пределом для максимального количества модулей, которые можно выбрать. Используйте эту опцию, чтобы задать новый предел max_n.
- matlab=max_nЕсли кэш данных для Модульного исполнения окна выбора не существует, создайте кэш project_name_max_nM.

Кэш включает более быстрое отображение Модульного исполнения окна выбора.

project_name значение, используемое -prog опция.

max_n предел для максимального количества модулей, которые можно выбрать.

Никакое действие, если кэш уже существует.

- modules=nПриложение раздела в n модули. Идентичный нажатию на серую область сопоставлен с n в окне выбора Модульного исполнения.
- max-complexity=max_cПриложение разделов в модули со ссылкой на заданную максимальную сложность max_c.

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

Если вы делаете max_c достаточно большой, программное обеспечение генерирует только один модуль, который идентичен исходному, неразделенному приложению.

Ограничьте сложность модуля во время разделения

Чтобы обеспечить все функции, чтобы иметь сложность 1, запустите следующую команду:

polyspace-modularize -uniform-complexities

Имена папок результата

По умолчанию папки результатов модуляризации называют projectName_kk_module:

  • kk любой макс. аргумент сложности, который вы даете -max-complexity, или количество модулей.

Можно управлять именованием папок результата в ith модуль с помощью -stem опция:

polyspace-modularize -stem=stem_format
polyspace-modularize -stem=MyName

stem_format строка. # и @ символы в строке обрабатываются можно следующим образом:

  • # — Замененный количеством модулей в разделении.

  • @ — Замененный аргументом -max-complexity.

Например, если вы хотите собственное имя, MyName, который заменяет название проекта и не включает номер модуля, затем запускаться:

Запретите циклы в графике зависимости модуля

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

polyspace-modularize -forbid-cycles