Число локальных статических переменных в функции превышает заданное пороговое значение
Этот дефект возникает в функции, когда число локальных статических переменных в функции превышает заданное пороговое значение средства проверки. Дополнительные сведения о том, как Polyspace вычисляет количество локальных статических переменных в функции, см. в разделе Number of Local Static Variables.
Polyspace ® использует пороговое значение по умолчанию 20, если не указано пороговое значение. Чтобы указать файл выбора, в котором можно задать пороговое значение, используйтеSet checkers by file (-checkers-selection-file). См. также раздел Снижение сложности программного обеспечения с помощью средств проверки полиспейса.
При импорте комментариев из предыдущих анализов с помощью polyspace-comments-import, Polyspace копирует любую информацию о проверке в метрике кода Number of Local Static Variables в предыдущем результате для этой проверки в текущем результате. Если текущий результат содержит ту же метрику кода, информация проверки также копируется в метрику кода.
На содержание статической переменной может влиять множество различных способов. Если функция содержит слишком много статических переменных, это указывает на то, что данные в коде не инкапсулированы должным образом и что функции могут иметь неожиданные взаимозависимости. Эти факторы затрудняют тестирование и обслуживание кода и могут привести к ошибкам, которые трудно диагностировать.
Чтобы исправить эту проверку, выполните рефакторинг кода или измените порог проверки. При рефакторинге кода:
Инкапсулируйте и модулируйте независимые данные или код.
Взаимодействие между функциями с помощью локальных переменных вместо глобальных или статических переменных.
Передовой практикой является проверка сложности модуля на ранних этапах разработки, чтобы избежать дорогостоящего рефакторинга после разработки.
| Группа: Сложность программного обеспечения |
| Язык: C | C++ |
Акроним:
SC09
|
| Порог по умолчанию: 20 |