Глубина вложения структур управления в функцию больше заданного порога глубины вложения функции
Этот дефект поднимается, когда глубина вложения структур управления в функцию, такую как for
, if-else
, switch
, или while
, превышает заданный порог глубины вложения. Для получения дополнительной информации о том, как Polyspace® вычисляет глубину вложения, см. Number of Call Levels
.
Polyspace использует порог по умолчанию 4, если вы не задаете порог. Чтобы задать файл выбора, в котором можно задать порог, используйте Set checkers by file (-checkers-selection-file)
. Также см. «Уменьшение сложности программного обеспечения при помощи Polyspace Checkers».
Когда вы импортируете комментарии из предыдущих анализов при помощи polyspace-comments-import
Polyspace копирует любую рецензирующую информацию о метрике кода Number of Call Levels
в предыдущем результате этой проверки в текущем результате. Если текущий результат содержит ту же метрику кода, информация проверки также копируется в метрику кода.
Нарушение этой проверки может указать, что:
Функцию трудно считать и понимать.
Функция выполняет слишком много задач сразу.
Функция содержит неожиданную или незапланированную разработку.
Эти факторы затрудняют обслуживание и отладку модуля.
Чтобы исправить эту проверку, либо измените код, либо измените порог проверки. При рефакторизации кода:
Создайте функцию, чтобы выполнить одну задачу.
Делегируйте несвязанные задачи другим функциям.
Лучшая практика состоит в том, чтобы проверить сложность модуля на ранних стадиях разработки, чтобы избежать дорогостоящего рефакторинга после разработки.
Группа: Комплексность программного обеспечения |
Язык: C | C++ |
Акроним:
SC14
|
Порог по умолчанию: 4 |