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

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

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

Document access rights

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

Table of Contents

  • ВВЕДЕНИЕ
  • 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 библиотеки

Usage statistics

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