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