Разработчик(и) | MathWorks [1] |
---|---|
Стабильный релиз | R2022b / 15 сентября 2022 г. ( 2022-09-15 ) |
Операционная система | Кроссплатформенность [2] |
Тип | статический анализ кода |
Лицензия | Запатентованный |
Веб-сайт | www.mathworks.com/products/polyspace.html |
Polyspace — это инструмент статического анализа кода для крупномасштабного анализа с помощью абстрактной интерпретации для обнаружения или доказательства отсутствия определенных ошибок времени выполнения в исходном коде для языков программирования C , C++ и Ada . Инструмент также проверяет исходный код на соответствие соответствующим стандартам кода. [3]
Polyspace изначально был разработан французской компанией PolySpace Technologies , которая была приобретена MathWorks в 2007 году. [4] Впоследствии продукт был интегрирован в MATLAB.
Polyspace проверяет исходный код, чтобы определить, где могут возникнуть потенциальные ошибки времени выполнения, такие как арифметическое переполнение , переполнение буфера , деление на ноль и другие. Разработчики программного обеспечения и менеджеры по контролю качества используют эту информацию, чтобы определить, какие части кода являются неисправными или доказано надежными. Другие части кода помечены для неподтвержденных проверок и заслуживают индивидуального обзора. [5] [6]
Стандарты кода или руководства, такие как MISRA C, пытаются решить проблему качества кода, переносимости и надежности. Продукт проверяет исходный код C и C++ на соответствие подмножеству правил в этих стандартах кодирования. [7]
Семейство продуктов состоит из Polyspace Code Prover и Polyspace Bug Finder. Модуль Code Prover аннотирует исходный код с помощью цветовой схемы кодирования, чтобы указать статус каждого элемента в коде. [8] Он использует формальные методы статического анализа кода для проверки выполнения программы на уровне языка. [6] Инструмент проверяет каждую инструкцию кода, принимая во внимание все возможные значения каждой переменной в каждой точке кода, предоставляя формальную диагностику для каждой операции в коде как в нормальных, так и в ненормальных условиях использования. [9]
Модуль Bug Finder выявляет ошибки программного обеспечения, выполняя статический анализ исходного кода. Он находит дефекты, такие как ошибки численных вычислений, программирования, памяти и другие. Он также выдает метрики программного обеспечения, такие как плотность комментариев исходного файла, цикломатическая сложность, количество строк, параметров, уровней вызовов и т. д. в функции, выявленные ошибки времени выполнения в программном обеспечении. [10]