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