Количество аргументов функции больше заданного порога
Этот дефект возникает для функции, когда количество ее аргументов больше заданного порога проверки. Для получения дополнительной информации о том, как Polyspace вычисляет количество параметров, смотрите Number of Function ParametersNumber of Function Parameters (Polyspace Bug Finder Access)
Polyspace® использует порог по умолчанию 5, если вы не задаете порог. Чтобы задать файл выбора, в котором можно задать порог, используйте Set checkers by file (-checkers-selection-file). Также см. «Уменьшение сложности программного обеспечения при помощи Polyspace Checkers».
Когда вы импортируете комментарии из предыдущих анализов при помощи polyspace-comments-importPolyspace копирует всю информацию о рассмотрении метрики кода Number of Function ParametersNumber of Function Parameters(Polyspace Bug Finder Access) в предыдущем результате в эту проверку в текущем результате. Если текущий результат содержит ту же метрику кода, информация проверки также копируется в метрику кода.
Нарушение этой проверки указывает, что:
Функция может иметь недопустимо высокую степень зависимости от других функций.
Функция может выполнять несколько определенных задач. Лучшая практика состоит в том, чтобы делегировать одну конкретную задачу одной функции.
Функция может содержать неожиданную или незапланированную разработку.
Функция может препятствовать эффективности, потому что регистры не могут содержать все параметры.
Эти факторы затрудняют поддержание и отладку функции.
Чтобы исправить эту проверку, либо измените код, либо измените порог в XML выбора чекера. Можно хотеть разделить функцию на меньшие фрагменты, которые выполняют определенную задачу и не берут больше, чем количество параметров, заданное в качестве порога. Если параметры функций связаны, можно рассмотреть их объединение в структуры.
Лучшая практика состоит в том, чтобы проверить сложность модуля на ранних стадиях разработки, чтобы избежать дорогостоящего рефакторинга после разработки.
| Группа: Комплексность программного обеспечения |
| Язык: C | C++ |
Акроним:
SC07
|
| Порог по умолчанию: 5 |