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