Детальная информация

Название: Разработка библиотеки для журналирования состояния объектов на платформе JVM: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Авторы: Романов Алексей Леонидович
Научный руководитель: Ахин Марат Халимович
Другие авторы: Нестеров Сергей Александрович
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2021
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: трансформация кода; журналирование; логирование; изменение объектов; статическийанализ; анализ псевдонимов; code transformation; logging; changing objects; static analysis; alias analysis
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
Ссылки: Отзыв руководителя; Рецензия; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2021/vr/vr21-709
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\11723

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Бакалаврская работа рассматривает разработку инструмента журналирования состояния Java объектов. В качестве языка разра­ботки также выбран язык программирования Java. Исходная зада­ча разбивается на две подзадачи: отслеживание изменений состояния объектов (трекинг) и логирование. В качестве основного подхода к решению задачи трекинга ис­пользуется трансформация исходного кода программы, так как это позволяет освободить пользователя от написания кода для трекингавручную, а также скрыть от пользователя детали реализации инстру­мента. Для оптимизации трекинга используется статический анализ,целью которого является определение полей, которые могут изменить­ся во время выполнения программы. Данная оптимизация позволя­ет отслеживать только те поля, которые могут измениться. Помимо этого, для того, чтобы сделать результат статического анализа более точным, был реализован алгоритм анализа псевдонимов Андерсена,который помогает определять изменения полей в случаях, когда поле объекта меняется не через ссылку на самого себя. Для реализации логирования применяется стандартный механизм логирования языка Java. Разработанный инструмент был протестирован, а также было проведено исследование работы инструмента на реальном проекте с дальнейшим анализом полученных характеристик.

The bachelor’s work considers the development of a tool for loggingstate for Java objects. The Java programming language was also chosen asthe development language. The original task is divided into two subtasks: tracking changes in the state of an object (tracking) and logging. As the main approach to solving the tracking problem, thetransformation of the program source code is used, since this allows you tohide the details of the instrument implementation from the user, and alsofree the user from writing the tracking code manually. Also, to optimizetracking, static analysis is used, the purpose of which is to identify fieldsthat can change during program execution. This optimization allows you to track only those fields that can change. In addition, in order to makethe result of static analysis more accurate, the Andersen alias analysisalgorithm was implemented, which helps to determine field changes incases where the object’s field changes not through a reference to itself. To implement logging, the standard Java language logging mechanism isused.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Внешние организации №2 Все Прочитать
Внешние организации №1 Все
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
Интернет Авторизованные пользователи (не СПбПУ, №2) Прочитать
Интернет Авторизованные пользователи (не СПбПУ, №1)
-> Интернет Анонимные пользователи

Оглавление

  • СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
  • ВВЕДЕНИЕ
  • 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ОБЗОР ТЕХНОЛОГИЙ
    • 1.1. Проблема журналирования изменений объектов
    • 1.2. Трекинг
    • 1.3. Обзор существующих инструментов для решения задачи трекинга
      • 1.3.1. PropertyChangeSupport
      • 1.3.2. JavaFX Properties
      • 1.3.3. JPA ChangeTracking
      • 1.3.4. Анализ рассмотренных подходов
    • 1.4. Обзор подходов для решения задачи модификации кода
      • 1.4.1. Java-Proxy
      • 1.4.2. Аспектно-ориентированное программирование
      • 1.4.3. Генерация исходного кода на этапе компиляции
    • 1.5. Подходы к реализации эффективного трекинга
      • 1.5.1. Статический анализ
      • 1.5.2. Анализ псевдонимов
    • 1.6. Итоги раздела
  • 2. Постановка задачи
    • 2.1. Формулирование требований к разрабатываемому продукту
    • 2.2. Решаемые задачи
    • 2.3. Итоги раздела
  • 3. РАЗРАБОТКА ИНСТРУМЕНТА ДЛЯ ЖУРНАЛИРОВАНИЯ СОСТОЯНИЯ ОБЪЕКТОВ
    • 3.1. Описание алгоритма использования инструмента
    • 3.2. Описание структуры проекта
      • 3.2.1. Runtime
      • 3.2.2. Compile
    • 3.3. Описание дополнительных опций инструмента
    • 3.4. Описание алгоритма работы инструмента на этапе компиляции
    • 3.5. Использование Spoon на этапе компиляции
    • 3.6. Разработка алгоритмов генерации вспомогательных полей и методов
      • 3.6.1. Реализация CtHelper и генерация полей и методов класса
      • 3.6.2. Трансформация методов
    • 3.7. Разработка алгоритмов поиска изменяемых полей класса
      • 3.7.1. Простая стратегия
      • 3.7.2. Стратегия на основе анализа псевдонимов
    • 3.8. Разработка инструмента журналирования и представления информации
    • 3.9. Итоги раздела
  • 4. Тестирование
    • 4.1. Unit-тестирование проекта
      • 4.1.1. Тестирование результата трекинга
      • 4.1.2. Тестирование обработки результата изменения поля
      • 4.1.3. Результаты unit-тестирования
    • 4.2. Тестирование и анализ эффективности на реальном проекте
      • 4.2.1. Определение основных характеристик
      • 4.2.2. Описание процесса исследования
      • 4.2.3. Результаты эксперимента
    • 4.3. Итоги раздела
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ. ЛИСТИНГИ КОДА

Статистика использования

stat Количество обращений: 9
За последние 30 дней: 0
Подробная статистика