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