Table | Card | RUSMARC | |
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
Бакалаврская работа рассматривает разработку инструмента журналирования состояния 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.
Document access rights
Network | User group | Action | ||||
---|---|---|---|---|---|---|
ILC SPbPU Local Network | All | |||||
Internet | Authorized users SPbPU | |||||
Internet | Anonymous |
Table of Contents
- СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
- ВВЕДЕНИЕ
- 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. Итоги раздела
- 4.1. Unit-тестирование проекта
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- ПРИЛОЖЕНИЕ. ЛИСТИНГИ КОДА
Usage statistics
Access count: 17
Last 30 days: 0 Detailed usage statistics |