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