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

Бродт, Игорь Иванович. Разработка и реализация методов устранения клонов программного кода [Электронный ресурс]: магистерская диссертация: 09.04.01 / И. И. Бродт; Санкт-Петербургский политехнический университет Петра Великого, Высшая школа биотехнологии и пищевых технологий ; науч. рук. В. М. Ицыксон. — Электрон. текстовые дан. (1 файл : 1,38 Мб). — Санкт-Петербург, 2017. — Загл. с титул. экрана. — Свободный доступ из сети Интернет (чтение, печать, копирование). — Adobe Acrobat Reader 7.0. — <URL:http://elib.spbstu.ru/dl/2/v17-5099.pdf>. — <URL:http://doi.org/10.18720/SPBPU/2/v17-5099>.

Дата создания записи: 26.10.2017

Тематика: Информация — Защита; Вычислительные системы — Обеспечение сохранности данных; дублирование кода; программные клоны; методы устранения клонов

УДК: 004.7.056.5(043.3)

Коллекции: Выпускные квалификационные работы; Общая коллекция

Ссылки: DOI

Разрешенные действия: Прочитать Загрузить (1,4 Мб) Для чтения документа необходим Flash Player

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

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

Аннотация

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

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

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
-> Интернет Все Прочитать Печать Загрузить

Оглавление

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

Статистика использования документа

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