Повышение полноты статического анализа приложений, использующих фреймворки, методом генерации эквивалентного кода
Новости
Повышение полноты статического анализа приложений, использующих фреймворки, методом генерации эквивалентного кода
Аннотация
В статье описывается подход к повышению полноты анализа за счет генерации эквивалентного кода из внешних файлов. Метод восстанавливает неявные связи между элементами пользовательского интерфейса и обработчиками событий путем анализа разметки, извлечения семантических связей и генерации эквивалентного кода на C#, который моделирует сценарии взаимодействия с пользователем. Этот метод был реализован в статическом анализаторе SharpChecker с акцентом на приложения WPF. Он включает в себя синтаксический анализ XAML, извлечение ViewModel для шаблонов MVVM и генерацию кода на основе CodeDom, имитирующую обработку событий и вызовы команд в ответ на действия пользователя. Эксперименты в пяти проектах WPF с открытым исходным кодом выявили 77 новых положительных предупреждений, включая ошибки деления на ноль и ранее пропущенные разыменования нулевых указателей. Этот подход обеспечивает минимальные затраты на анализ и легко интегрируется с существующими анализаторами. Результаты демонстрируют, что генерация эквивалентного кода значительно повышает полноту статического анализа использующих фреймворки приложений.
Ключевые слова
Издание
Труды Института системного программирования РАН, том 38, вып. 2, 2026, стр. 95-110.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(2)-7
Для цитирования
Полный текст статьи в формате pdf
Вернуться к содержанию тома