Details

Title: Разработка аспектно-ориентированного расширения для языка Kotlin: магистерская диссертация: 09.04.01
Creators: Скрипаль Борис Алексеевич
Scientific adviser: Ицыксон Владимир Михайлович
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2017
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: Программирования языки; Вычислительные машины электронные персональные — Программирование; аспектно-ориентированное программирование; аспектно-ориентированное расширение
UDC: 004.42.04(043.3); 004.438(043.3)
Document type: Master graduation qualification work
File type: PDF
Language: Russian
Speciality code (FGOS): 09.04.01
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/2/v17-4122
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

Работа посвящена разработке аспектно-ориентированного подхода для языка Kotlin. Аспектно-ориентированный подход позволяет компактно описывать и внедрять сквозную функциональность в программы, написанные в стиле объектно-ориентированного программирования. Для большинства популярных языков программирования уже существуют подобные расширения. Язык Kotlin является новым языком программирования, для которого еще не разработано многих необходимых расширений. В данной работе решается задача разработки АОП-расширения для языка Kotlin, закрывающего один из пробелов. Для решения указанной задачи был разработан язык описания аспектов и подход статического внедрения аспектов на уровне промежуточного представления программы. Спроектирована архитектура АОП-расширения Kotlin, реализованы парсеры, составляющие модель аспектов по их описанию. Реализован модуль внедрения аспектов на уровне промежуточного представления программы. Проведено функциональное тестирование разработанного прототипа. Разработанное АОП-расширение может быть использовано для внедрения сквозной функциональности в программы на языке Kotlin. Разработанный язык аспектов описан отдельно от приложения и может быть использован при проектировании других АОП-расширений языка Kotlin.

Document access rights

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

Table of Contents

  • ВВЕДЕНИЕ
  • 1. Обзор существующих аспектно-ориентированных расширений
    • 1.1. Аспектно-ориентированный подход
    • 1.2. Способы применения аспектов
    • 1.3. Критерии оценки аспектно-ориентированного расширения
    • 1.4. Обзор существующих аспектно-ориентированных расширений
      • 1.4.1. AspectJ
      • 1.4.2. SpringAOP
      • 1.4.3. PostSharp
      • 1.4.4. Aspect.NET
      • 1.4.5. Результаты сравнения
    • 1.5. Выводы
  • 2. Постановка задачи
    • 2.1. Функциональные требования
    • 2.2. Решаемые задачи
    • 2.3. Выводы
  • 3. Проектирование аспектно-ориентированного расширения для языка Kotlin
    • 3.1. Разработка языка аспектов
      • 3.1.1. Описание аспекта
      • 3.1.2. Описание срезов
      • 3.1.3. Описание советов
    • 3.2. Выбор способа внедрения аспектов
    • 3.3. Архитектура программной системы
    • 3.4. Внедрение аспектов
      • 3.4.1. Выбор способа внедрения аспектов
      • 3.4.2. Описание PSI
      • 3.4.3. Формирование срезов
      • 3.4.4. Внедрение кода советов
    • 3.5. Выводы
  • 4. Разработка прототипа аспектно-ориентированного расширения
    • 4.1. Средства разработки
    • 4.2. Архитектура проекта
      • 4.2.1. Разработка грамматики аспектов
      • 4.2.2. Разработка структуры прототипа
    • 4.3. Выводы
  • 5. Тестирование прототипа аспектно-ориентированного расширения
    • 5.1. Программа испытаний
      • 5.1.1. Проверка правильности построения срезов
      • 5.1.2. Проверка корректности построения кода совета
      • 5.1.3. Проверка способа внедрения советов
      • 5.1.4. Проверка работоспособности прототипа на больших проектах
    • 5.2. Методика испытаний
      • 5.2.1. Методика проверки корректности формирования срезов
      • 5.2.2. Методика проверки корректности построения кода совета
      • 5.2.3. Методика проверки корректности внедрения кода совета
      • 5.2.4. Методика проверки корректности прототипа на больших проектах
    • 5.3. Проведение испытаний
      • 5.3.1. Проверка корректности построения срезов
      • 5.3.2. Проверка корректности построения кода совета
      • 5.3.3. Проверка корректности внедрения советов
      • 5.3.4. Проверка работы на больших программах
    • 5.4. Выводы
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ А. Грамматика языка аспектов
  • ПРИЛОЖЕНИЕ Б. Текст программы, используемой при тестировании
  • ПРИЛОЖЕНИЕ В. Фрагмент текста программы прототипа

Usage statistics

stat Access count: 202
Last 30 days: 0
Detailed usage statistics