Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

Вебинар: Базовые сценарии интеграции SAST решения в legacy-проект на примере PVS-Studio - 18.04

>
>
Ситуации, когда может пригодиться стати…

Ситуации, когда может пригодиться статический анализатор кода

24 Дек 2010

Метод статического анализа кода заключается в поиске тех мест в тексте программы, которые с высокой вероятностью содержат ошибки. Для поиска таких мест используются инструменты, называемые статическими анализаторами кода. Получив список подозрительных строк, программист осуществляет обзор кода и исправляет найденные ошибки.

Чаще всего статический анализ кода применяется для контроля качества разрабатываемого проекта. Но есть и более необычные задачи, для решения которых используется анализ кода. В этой небольшой заметке хочется описать некоторые из них.

Обучение

Статический анализ может использоваться с целью обучения. Как правило, преподаватель, оценивая работу студента, просматривает написанный им код и делает тестовые запуски программы. Так как студентов много, а преподаватель один, то он может дополнительно усилить свое внимание, используя статический анализатор кода. Так он сможет с большей вероятностью найти причину, чтобы отправить студента переделывать свою работу.

Другой вариант использования анализатора для обучения, состоит в проверке кода молодых программистов. Это позволит быстрее найти и объяснить ряд ошибок. А возможность анализа отступов, именования переменных и так далее позволит человеку быстрее начать писать код в рамках приятого в организации стиля кодирования.

Перенос программы на другую систему

Очень сложно писать программы переносимо, особенно если изначально этого не было в планах. Поэтому перенос программу в другую операционную систему или на другую аппаратную платформу всегда достаточно болезнен. Почти невозможно заранее знать все нюансы, которые ожидают программу в другой системе и тем более как найти все небезопасные места в коде. Здесь могут помочь специализированные анализаторы кода, указывающие на все потенциально опасные места. Анализаторы подскажут, где может повредить изменение размерности типов, правил выравнивания данных, изменение порядка байт, использование устаревших функций и так далее.

Поиск черных дыр

Статический анализ может использоваться не только во благо, но и во вред. Раз анализ кода помогает разработчикам выявить переполнения буферов, стека и прочие подобные дефекты, то тоже самое может сделать и злоумышленник. Изучая хрупкие места, хакер быстрее может выбрать объект для атаки. То есть ему не надо просматривать огромное количество кода. Часть работы за него выполнит статический анализатор. Он укажет, где код уязвим, и хакер сможет перейти к следующему этапу работ - попытке понять, можно ли воспользоваться найденными дефектами в коде, и если да, то как.

Часто злоумышленнику не доступен исходный код программ. Но возможно использование статических анализаторов работающих непосредственно с двоичным исполняемым кодом.

Естественно поиск дыр можно обратить и во благо. Например, многие компании вознаграждают людей, обнаруживших уязвимость в программе. Со статическими анализаторами искать подобные уязвимости может быть гораздо проще.

Использование сторонних исходных кодов

Программисты часто используют различные открытые исходные коды. Другим словами используют открытые бесплатные библиотеки или их фрагменты. Часто одну и ту же задачу можно решить, используя различные сторонние разработки. И встает вопрос, как выбрать. Необычным интересным методом будет использование статического анализа. Ведь чем меньше ошибок будет найдено, тем с большей вероятностью это более качественный и надежный код.

Если вашей команде передают сторонний проект для сопровождения и развития, статический анализ позволит выявить наиболее страшные места в проекте, а, следовательно, вы сможете предположить, каким частям системы следует уделить максимальное внимание.

Обоснование необходимости рефакторинга кода

Часто программисты осознают, что проект становится слишком сложным и начинает разваливаться. Они приходят к выводу, что необходимо заняться рефакторингом проекта, иначе практически все время будет съедать поддержка и создание подпорок, чтобы проект окончательно не завалился. Но у программистов всегда есть срочные задачи. И обосновать, почему не стоит делать очередной диалог, а следует переписать один из старых, не так просто. Здесь в качестве одного из аргумента может выступить статический анализатор, который вопит о слишком больших функциях, о множественном использовании глобальных переменных, о слишком сложной иерархии классов, об использовании устаревших и потому небезопасных функций и о прочих ужасах.

Заключение

Конечно, я перечислил далеко не все, а то, о чем вспомнил. Есть масса других задач, в решении которых поможет статический анализ кода. Напишите, если у вас есть были интересные нестандартные способы использования методологии статического анализа.

Популярные статьи по теме


Комментарии (0)

Следующие комментарии next comments
close comment form