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