Details

Title Разработка и реализация методов устранения клонов программного кода: магистерская диссертация: 09.04.01
Creators Бродт Игорь Иванович
Scientific adviser Ицыксон Владимир Михайлович
Organization Санкт-Петербургский политехнический университет Петра Великого
Imprint Санкт-Петербург, 2017
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects Информация — Защита ; Вычислительные системы — Обеспечение сохранности данных ; дублирование кода ; программные клоны ; методы устранения клонов
UDC 004.7.056.5(043.3)
Document type Master graduation qualification work
File type PDF
Language Russian
Level of education Master
Speciality code (FGOS) 09.04.01
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/2/v17-5099
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key RU\SPSTU\edoc\46111
Record create date 10/26/2017

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

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

Network User group Action
ILC SPbPU Local Network All
Read Print Download
Internet Authorized users SPbPU
Read Print Download
Internet Anonymous
  • ВВЕДЕНИЕ
  • 1. Анализ подходов к устранению клонов программного кода
    • 1.1. Понятие программного клона. Дублирование кода
      • 1.1.1. Типы клонов
    • 1.2. Причины появления программных клонов
      • 1.2.1. Использование C&P-программирования
      • 1.2.2. Использование систем и платформ, не придерживающихся принципа DRY
      • 1.2.3. Обеспечение требований к производительности ПО
      • 1.2.4. Незнание о существовании уже готовых решений
    • 1.3. Синтаксический подход к устранению клонов
    • 1.4. Семантический подход к устранению клонов
    • 1.5. Обзор готовых программных решений для устранения клонов программного кода
    • 1.6. Вывод
  • 2. Постановка задачи
    • 2.1. Формулировка требований
    • 2.2. Решаемые задачи
    • 2.3. Вывод
  • 3. Разработка комбинированного метода устранения клонов
    • 3.1. Методы устранения программных клонов
      • 3.1.1. Извлечение метода (Extract method)
      • 3.1.2. Подъём метода (Pull up method)
      • 3.1.3. Подъём поля (Pull up field)
      • 3.1.4. Подъём тела конструктора (Pull up constructor body)
      • 3.1.5. Извлечение суперкласса (Extract superclass)
      • 3.1.6. Извлечение класса (Extract class)
      • 3.1.7. Объединение условных операторов (Consolidate Conditional Expression)
      • 3.1.8. Объединение дублирующихся фрагментов в условных операторах (Consolidate Duplicate Conditional Fragments)
      • 3.1.9. Извлечение одинаковых фрагментов клона в лямбда-выражение
      • 3.1.10. Извлечение различных фрагментов клона в лямбда-выражение
      • 3.1.11. Использование функционального интерфейса Predicate
      • 3.1.12. Извлечение клонов в объект
    • 3.2. Определение входных данных
      • 3.2.1. Критерии эффективности
      • 3.2.2. Критерии применимости
    • 3.3. Разработка алгоритма устранения клонов
      • 3.3.1. Создание рабочей модели
      • 3.3.2. Определение метода рефакторинга
      • 3.3.3. Применение метода рефакторинга
    • 3.4. Вывод
  • 4. Реализация разработанного метода устранения клонов в виде Java библиотеки
    • 4.1. Средства разработки
    • 4.2. Построение модели кода
      • 4.2.1. Построение АСД
      • 4.2.2. Построение АСГ, добавление зависимостей по данным
      • 4.2.3. Определение возвращаемых выражениями типов
      • 4.2.4. Класс <>
    • 4.3. Объекты - клон и клоновая группа
    • 4.4. Класс <>
      • 4.4.1. Класс для сравнения выражений
    • 4.5. Вывод
  • 5. Тестирование Java библиотеки устранения клонов
    • 5.1. Программа тестирования
    • 5.2. Методика тестирования
      • 5.2.1. Примеры для тестирования
      • 5.2.2. Подготовка тестовой среды
      • 5.2.3. Протокол испытаний
    • 5.3. Выводы
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ А. Фрагменты текста программы разработанной Java библиотеки

Access count: 273 
Last 30 days: 0

Detailed usage statistics