Details

Title: Интеграция статического анализатора Infer в IntelliJ IDEA: выпускная квалификационная работа магистра: 09.04.01 - Информатика и вычислительная техника ; 09.04.01_15 - Технологии проектирования системного и прикладного программного обеспечения
Creators: Олейник Максим Александрович
Scientific adviser: Ицыксон Владимир Михайлович
Other creators: Новопашенный Андрей Гелиевич
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2019
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: Программирования языки; Интернет; Джава (JAVA); инкрементальный анализ; статический анализ кода; facebook infer; intellij idea
UDC: 004.438(043.3); 004.738.5(043.3)
Document type: Master graduation qualification work
File type: PDF
Language: Russian
Speciality code (FGOS): 09.04.01
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
Links: Отзыв руководителя; Рецензия; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2019/vr/vr19-721
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

Магистерская работа рассматривает интеграцию статического анализатора Facebook Infer в среду разработки IntelliJ IDEA. В ходе выполнения работы был разработан алгоритм инкрементального статического анализа Java проектов при помощи Infer и создан плагин для IntelliJ IDEA, который интегрирует анализатор и расширяет способы взаимодействия с ним такими функциями, как инкрементальный анализ, проверка при сохранении изменённых файлов, отображение ошибок в отчёте и редакторе текста, быстрая навигация к местам ошибок.

In this work we develop an integration between Facebook Infer static analyzer and IntelliJ IDEA IDE. To implement that, we have created an algorithm for incremental analysis of Java projects, based on Infer, allowing for better interoperation with the IDE. We have also implemented an IDEA plugin, based on the incremental analysis, which adds Infer support together with such functions as on-save analysis, IDE-based error reporting, quick navigation, etc.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users SPbPU Read Print Download
Internet Authorized users (not from SPbPU)
-> Internet Anonymous

Table of Contents

  • ВВЕДЕНИЕ
  • 1. Анализ предметной области и обзор технологий
    • 1.1. Проблема ошибок в программном коде
    • 1.2. Статический анализ кода
      • 1.2.1. Инкрементальный статический анализ кода
    • 1.3. Статические анализаторы языка Java
    • 1.4. Статический анализатор Infer
      • 1.4.1. Принцип работы Infer
    • 1.5. Среда разработки IntelliJ IDEA
      • 1.5.1. IntelliJ Platform
    • 1.6. Итоги раздела
  • 2. Постановка задачи
    • 2.1. Формулирование требований к разрабатываемому продукту
    • 2.2. Решаемые задачи
    • 2.3. Итоги раздела
  • 3. Разработка IntelliJ IDEA плагина для интеграции Infer
    • 3.1. Разработка алгоритма инкрементального анализа при помощи Infer
      • 3.1.1. Захват данных
      • 3.1.2. Анализ
      • 3.1.3. Алгоритм инкрементального анализа
    • 3.2. Разработка IntelliJ IDEA плагина для интеграции Infer
      • 3.2.1. Общая структура плагина
      • 3.2.2. Получение аргументов компилятора
      • 3.2.3. Работа с анализатором Infer
      • 3.2.4. Работа с отчётом
      • 3.2.5. Режимы проверок
      • 3.2.6. Отображение ошибок
      • 3.2.7. Конфигурация
      • 3.2.8. Получение исполняемых файлов Infer
    • 3.3. Итоги раздела
  • 4. Тестирование
    • 4.1. Конфигурация тестовой платформы
    • 4.2. Исследование характеристик плагина
    • 4.3. Результаты тестирования
    • 4.4. Итоги раздела
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ. ЛИСТИНГИ

Usage statistics

stat Access count: 44
Last 30 days: 2
Detailed usage statistics