exponenta event banner

Выбор между основанным на компонентах и интеграционным анализом кода AUTOSAR с Polyspace

Polyspace поддерживает два подхода для проверки кода AUTOSAR: основанный на компонентах анализ и интеграционный анализ.

Определения

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

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

    Обзор этого подхода см. в разделе Преимущества Polyspace для AUTOSAR. Для получения информации о настройке анализа на основе компонентов смотрите Запуск Polyspace на коде AUTOSAR.

  • В подходе интеграционного анализа вы не предоставляете проектных спецификаций, а просто запускаете Bug Finder или Code Prover на одном проекте со всем соответствующим исходным кодом. Чтобы сделать анализ AUTOSAR-осведомленным, используйте значение autosar для опции анализа Libraries used (-library).

Сходства и различия

И компонентный, и интеграционный анализ соответствуют стандарту AUTOSAR. В сложение анализ на основе компонентов также использует спецификации проекта AUTOSAR.

Общие черты

В обеих формах анализа функции из окружения выполнения AUTOSAR или слоя RTE заменяются точными заглушками. Эти заглушки позволяют:

  • Более быстрый и точный анализ, поскольку анализ не пытается проверить реализацию функций RTE. Вместо этого анализ эмулирует функции RTE на основе стандарта AUTOSAR. (Проверка реализации функции не требуется для проверки использования функции и может привести к потере точности.)

  • Во время выполнения проверяются аргументы функции, которые ищут нарушения стандарта AUTOSAR.

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

    Обе проверки Non-compliance with AUTOSAR specification (интеграционный анализ) и Invalid use of AUTOSAR runtime environment function (анализ на основе компонентов) искать нарушения стандарта AUTOSAR.

Различия

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

  • Автоматическое разделение кода на модули на основе спецификаций программного компонента.

  • Автоматическая идентификация runnables AUTOSAR в каждом модуле (точках входа) и проверки во время выполнения этих runnables. См. также Invalid result of AUTOSAR runnable implementation.

  • Дополнительные проверки аргументов функции RTE, чтобы определить, нарушают ли они ограничения данных из спецификаций проекта. Эти проверки могут быть более точными, чем проверки во время выполнения, основанные на стандарте AUTOSAR, поскольку они используют более узкие ограничения данных для определенных типов данных из спецификаций проекта. См. также Invalid use of AUTOSAR runtime environment function.

Выбор между основанным на компонентах и интеграционным анализом

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

Основанный на компонентах анализ может предоставить более богатые результаты, чем интеграционный анализ, но требует более подробной настройки:

  • Анализ на основе компонентов запусков в трех фазах: синтаксический анализ ARXML, экстракция кода и, наконец, статические верификации кода. Ошибки на каждой фазе могут распространяться на дальнейшие проблемы нисходящего потока. Чтобы обойти ошибки, вам может потребоваться подробное знание вашего проекта AUTOSAR. Например, вам, возможно, придется исключить программные продукты, такие как оставшиеся файлы шаблонов, из генераторов кода.

    Только Code Prover поддерживает анализ на основе компонентов.

  • Интеграционный анализ работает только с предоставленным кодом и его проще настроить. Необходимо выполнять только регулярный анализ с одной дополнительной опцией, чтобы сделать анализ AUTOSAR осведомленным.

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

Похожие темы