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