goto операторы превышают пороговое значениеКоличество goto операторы в функции превышают заданное пороговое значение
Этот дефект возникает в функции, когда количество goto операторы в функции больше заданного порога. Дополнительные сведения о том, как Polyspace вычисляет количество goto операторы, см. Number of Goto Statements
В Polyspace ® используется нулевой порог по умолчанию, если не указано пороговое значение. Чтобы указать файл выбора, в котором можно задать пороговое значение, используйтеSet checkers by file (-checkers-selection-file). См. также раздел Снижение сложности программного обеспечения с помощью средств проверки полиспейса.
При импорте комментариев из предыдущих анализов с помощью polyspace-comments-import, Polyspace копирует любую информацию о проверке в метрике кода Number of Goto Statements в предыдущем результате для этой проверки в текущем результате. Если текущий результат содержит ту же метрику кода, информация проверки также копируется в метрику кода.
Нарушение этой проверки может указывать на то, что:
Модуль имеет чрезмерно сложный поток выполнения.
Модуль может содержать непредвиденную или незапланированную разработку.
С несколькими goto операторы, трудно определить точный порядок выполнения кода, который может привести к ошибке или правильному результату. Эти факторы затрудняют обслуживание и отладку модуля.
Чтобы исправить эту проверку, измените порог проверки или восстановите код. Вы можете заменить большинство видов использования goto утверждение более простыми структурами управления. В случаях, когда goto необходимо выполнить инструкцию, задокументировать ее и обосновать средство проверки с помощью аннотации в коде. Можно изменить пороговое значение, чтобы избежать запуска этой проверки при проверке устаревших баз кодирования.
Передовой практикой является проверка сложности модуля на ранних этапах разработки, чтобы избежать дорогостоящего рефакторинга после разработки.
| Группа: Сложность программного обеспечения |
| Язык: C | C++ |
Акроним:
SC13
|
| Порог по умолчанию: 0 |