«Человеку свойственно ошибаться, - отмечает директор ИСП РАН Арутюн Аветисян, - а программный код пишут живые люди. Чаще всего это высококлассные специалисты, но и они могут допускать ошибки. SharpChecker – то средство, которое может отчасти компенсировать это свойство человеческой природы. Наш инструмент содержит как анализатор кода, так и готовые компоненты для внедрения в производственный цикл разработки ПО. Это позволяет использовать технологию и программистам для исправления ошибок в разрабатываемом проекте, и их руководителям как ещё одну динамическую метрику, хорошо характеризующую качество продукта».
Фундаментальные исследования по технологиям статического анализа ведутся в ИСП РАН с 2002 г. За полтора десятилетия в этом направлении достигнуты успехи, в частности, разработан анализатор Svace. Этот инструмент позволяет находить ошибки и потенциальные уязвимости в исходном коде программ на языках C/C++. Среди его особенностей: простота использования, широкий набор поддерживаемых типов предупреждений, масштабируемость до программ в миллионы строк кода и приемлемое качество анализа - 30-80% истинных предупреждений. Этот продукт активно используется корпорацией Samsung как основное средство статистического анализа - для поиска ошибок в исходном коде операционных систем Android, собственных приложений Samsung и операционной системы TIZEN.
SharpChecker стал следующим шагом в этом направлении. Разработанная ИСП РАН платформа сегодня более чем конкурентоспособна среди аналогов, представленных на мировом рынке – Coverity от американской компании Synopsys, Klocwork, выпущенный американской же Rogue Wave, Fortify от Hewlett Packard, израильской Checkmarx. В 2015 г. SharpChecker был внедрён в корпорации Samsung как часть инструмента Svace. Впрочем, этот статический анализатор может использоваться и самостоятельно. Включение в единый реестр российских программ позволит обратить на него внимание отечественных государственных структур и госкомпаний, закупающих ПО или занимающихся разработкой программных продуктов.
«Сегодня применение инструментов анализа кода обязательно при разработке безопасного программного обеспечения, - говорит Валерий Игнатьев, старший научный сотрудник ИСП РАН. - Софт, состоящий из миллионов строк кода, практически невозможно проверить вручную на наличие ошибок – утечек ресурсов и памяти, разыменований null, неправильного использования атрибутов, ошибок, связанных с параллелизмом исполнения и пр. Поэтому инструмент, способный анализировать подобные объёмы информации, не просто полезен, но необходим. Повышение качества и безопасности кода с каждым годом становится всё более важной задачей. Разумеется, SharpChecker – не панацея против погрешностей в коде, он не заменяет, а дополняет другие методы тестирования ПО и поиска ошибок, но он позволяет исправлять ошибки на самых ранних стадиях, существенно снижая общую стоимость разработки, и делает это эффективно».