Новое программное обеспечение, разработанное специалистами Института системного программирования РАН, в марте 2017 г. включено в единый реестр отечественного ПО. Решения о внесении программных продуктов в реестр принимает Экспертный совет при Минкомсвязи России. SharpChecker – платформа статического анализа программ на языке C#. Она создана для поиска ошибок в программном коде и обладает высокой эффективностью по сравнению с существующими аналогами.
«Человеку свойственно ошибаться, - отмечает директор ИСП РАН Арутюн Аветисян, - а программный код пишут живые люди. Чаще всего это высококлассные специалисты, но и они могут допускать ошибки. SharpChecker – то средство, которое может отчасти компенсировать это свойство человеческой природы. Наш инструмент содержит как анализатор кода, так и готовые компоненты для внедрения в производственный цикл разработки ПО. Это позволяет использовать технологию и программистам для исправления ошибок в разрабатываемом проекте, и их руководителям как ещё одну динамическую метрику, хорошо характеризующую качество продукта».
Фундаментальные исследования по технологиям статического анализа ведутся в ИСП РАН с 2002 г. За полтора десятилетия в этом направлении достигнуты успехи, в частности, разработан анализатор Svace. Этот инструмент позволяет находить ошибки и потенциальные уязвимости в исходном коде программ на языках Си/Си++. Среди его особенностей: простота использования, широкий набор поддерживаемых типов предупреждений, масштабируемость до программ в миллионы строк кода и приемлемое качество анализа - 30-80% истинных предупреждений. Этот продукт активно используется корпорацией Samsung как основное средство статического анализа - для поиска ошибок в исходном коде операционных систем Android, собственных приложений Samsung и операционной системы Tizen.
SharpChecker стал следующим шагом в этом направлении. Разработанная ИСП РАН платформа сегодня более чем конкурентоспособна среди аналогов, представленных на мировом рынке – Coverity от американской компании Synopsys, Klocwork, выпущенный американской же Rogue Wave, Fortify от Hewlett Packard, израильской Checkmarx. В 2015 г. SharpChecker был внедрен в компании Samsung как часть инструмента Svace. Впрочем, этот статический анализатор может использоваться и самостоятельно. Его включение в единый реестр российских программ позволит обратить на него внимание отечественных государственных структур и госкомпаний, закупающих ПО или занимающихся разработкой программных продуктов.
«Сегодня применение инструментов анализа кода обязательно при разработке безопасного программного обеспечения, - говорит Валерий Игнатьев, старший научный сотрудник ИСП РАН. - Софт, состоящий из миллионов строк кода, практически невозможно проверить вручную на наличие ошибок – утечек ресурсов и памяти, разыменований null, неправильного использования атрибутов, ошибок, связанных с параллелизмом исполнения и пр. Поэтому инструмент, способный анализировать подобные объёмы информации, не просто полезен, но необходим. Повышение качества и безопасности кода с каждым годом становится все более важной задачей. Разумеется, SharpChecker – не панацея против погрешностей в коде, он не заменяет, а дополняет другие методы тестирования ПО и поиска ошибок, но он позволяет исправлять ошибки на самых ранних стадиях, существенно снижая общую стоимость разработки, и делает это эффективно».
Справка
Институт системного программирования Российской академии наук (ИСП РАН) – научно-исследовательская организация, специализирующаяся в области системного программирования. Институт разрабатывает технологии мирового уровня в таких областях, как операционные системы, компиляторные технологии, параллельные и распределенные вычисления, технологии верификации и тестирования программного обеспечения, анализ и обработка больших объемов данных, семантический поиск и др. Среди долговременных отечественных партнеров Института – ГосНИИАС, Вымпелком, Квант, Орион, среди зарубежных – Samsung, Huawei, DellEMC, HPE, Intel, Nvidia, RogueWave, LinuxFoundation. Со многими из них созданы совместные лаборатории.
Одна из главных задач ИСП РАН – подготовка кадров высшей квалификации в сфере ИТ. На базе Института функционируют собственная аспирантура и кафедры в МГУ, МФТИ и ВШЭ. Также ИСП РАН реализует совместные проекты с ведущими университетскими и исследовательскими центрами: Кембридж (Великобритания), Карнеги-Меллон (США), INRIA (Франция), Университет Пассау (Германия) и др.