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