Автор24

Информация о работе

Подробнее о работе

Страница работы

Разработка инструментальных средств рефакторинга кодовой базы ПО для поддержания актуальности версий используемых программных компонентов»

  • 61 страниц
  • 2019 год
  • 27 просмотров
  • 0 покупок
Автор работы

ksfei121

В основном сосредоточен на продажу готовых своих личных работ по символическим ценам.

900 ₽

Работа будет доступна в твоём личном кабинете после покупки

Гарантия сервиса Автор24

Уникальность не ниже 50%

Фрагменты работ

Перечень условных обозначений, символов, единиц, сокращений и терминов 4
Введение 6
Глава 1 8
1.1 Исследование предметной области 8
1.2 Постановка требований 9
1.3 Обзор программных систем существующих на рынке 10
Глава 2 12
2.1 Проектирование архитектуры 12
2.2 Формат отчета об изменениях 13
2.3 Протокол связи 14
2.4 Формат сообщений 15
2.5 Организация работы 15
2.6 Выбор технологий 16
Глава 3. Реализация серверной части 18
3.1 Организация проекта 18
3.2 Использование Gradle 18
3.3 Communication 19
3.3 Router 20
3.4 Внедрение зависимостей 22
3.6 Controller 23
3.7 Migrate 24
Глава 4. Разработка клиентской части 31
4.1 Общее 31
4.2 Electron 31
4.3 Scala.js 32

4.4 Sbt 32
4.5 Модули 33
Заключение 36
Список использованных литературных источников 37
Приложение А 38
Приложение Б 61

Введение

В современно процессе разработки программного обеспечения достаточно часто используются уже готовые сторонние программные компоненты с целью снижения трудоемкости, стоимости и длительности непосредственной разработки. При этом разработка используемых программных компонентов также не прекращается, что ведет к появлению новых версий библиотек.
Можно выделить следующие причины необходимости миграции на новые версии используемых библиотек:
▪ Новые версии содержат исправления существующих ошибок в работе программного компонента.
▪ Упрощение API для работы с библиотекой.
▪ Более длительный срок поддержки со стороны разработчиком компонента.
▪ Появление нового функционала в программном компоненте.
▪ Увеличение количества поддерживаемых устройств в новой версии библиотеки.
...

1.1 Исследование предметной области

Ручной процесс по обновлению версии используемого программного компонента в проекте состоит из следующих шагов:
1. При помощи систем автоматизации сборок или ручным способом устанавливается новая версия программного компонента.
2. Используя исходный код и документацию программного компонента находятся все изменения в API.
3. После нахождения всех изменений необходимо произвести рефакторинг существующей кодовой базы. Рефакторинг состоит из следующих этапов:
a. Нахождение использования устаревшего API в исходном коде проекта.
b. Замена обращений к старому API на альтернативы согласно найденным изменениям на 2 шаге.
Главным минусом ручной миграции является высокая ресурсоемкость процесса рефакторинга, требующие огромное количество рабочих часов разработчиков.
Существуют следующие изменения API ведущие к необходимости рефакторинга:
▪ Удаление пакета/класса.
▪ Удаление конструктора класса.
...

1.2 Постановка требований

Исходя из исследования предметной области следуют следующие требования к рабочему окружению разрабатываемого приложения:
▪ Приложение должно иметь доступ к исходному коду проекту, в котором необходимо произвести обновление программного компонента.
▪ Отчет об изменениях API должен быть выполнен в поддерживаемом системой формате и содержать всю необходимую для миграции информацию.
▪ Исходный код программных компонентов (библиотека, проект в котором используется указанная библиотека) над которыми будет производиться миграция должен быть под VCS. Использование систем контроля версий является стандартом при разработке ПО и позволяет создать безопасное хранилище исходного кода с историей изменений.
...

2.1 Проектирование архитектуры

Для выполнения поставленных задач, а также для соответствия поставленных требованиям была принято решение использовать клиент- серверную архитектуру.
Особенностью данной архитектуры является разделение логики работы программного обеспечения между поставщиком услуг-серверной частью системы и заказчиком — клиентской частью. Чаще всего эти компоненты расположены на разных устройствах и взаимодействуют между собой при помощи сети и специальных сетевых протоколов. Схематично данный подход представлен на рисунке 1.

Клиентская часть

Канал связи

Серверная часть

Рисунок 1. Общая архитектура
Основными достоинствами данного подхода организации архитектуры программного обеспечения являются:
▪ Позволяет избежать дублирования исходного кода в различных клиентских приложениях за счет хранения бизнес правил на стороне сервера.
...

2.5 Организация работы

При разработки данной системы было принято решение использовать итеративную модель разработки программного обеспечения. Особенностью данной моделью является, что процесс разработки ПО разбивается на последовательность итераций, каждая из которых содержит в себе все процессы разработки ПО: сбор и анализ требований, составление спецификаций, непосредственную реализацию, тестирование и запуск. Каждый новый шаг содержит в себе реализацию новых возможность, так и весь функционал предыдущих итераций.
Основными преимуществами итеративной модели разработки ПО являются:
▪ Уменьшение возможных рисков за счет динамического формирования требований.
▪ Быстрый выпуск работоспособного продукта, а также возможность начать эксплуатацию системы в самые быстрые сроки.
▪ Акцентирование внимания на критический функционал.
▪ Непрерывное тестирование системы.
▪ Распределение затрат на весь срок создания системы.
...

2.6 Выбор технологий

Для реализации серверной части системы был выбран язык программирования общего назначения Java. Основными причинами данного выбора являются следующие пункты:
▪ Java является объектно ориентированным языком, что позволяет создавать модульные программы с возможностью дальнейшего переиспользования.
▪ Наличие стандартной библиотеки, которая содержит огромное количество готовых стандартных алгоритмов и наиболее популярные структуры данных.
▪ Независимость от платформы. Программы написанные на языке Java транслируется в байт код Java и выполняются на виртуальной машине - программе обрабатывающей байт код. Главным достоинством данного подхода является полная независимость байт кода от операционной системы и оборудования, что позволяет выполнять программы на любом устройстве на котором установлена виртуальная машина.
...

3.2 Использование Gradle

Gradle это инструмент автоматизации сборки проектов написанных на языке Java выполняющий такие действия как:
▪ Компиляция исходного кода
▪ Создания дистрибутива программы
▪ Выполнение автотестов
▪ Генерация документации.
Для платформы java существуют три основных инструмента
автоматизации сборки Ant, Maven и Gradle. При разработки системы было принято решение использовать Gradle из за следующих его достоинств:
▪ Компактность конфигурационного файла.
▪ Совмещает в себе возможности императивного и декларативного подхода описания проекта.
▪ Независимость от операционной системы. Gradle возможно запустить на большинстве современных системах.
▪ Возможен вызов из командной строки.
▪ Имеется поддержка инкрементальной сборки. Которая позволяет отслеживать изменения файлов по сравнению с предыдущей сборкой.
...

▪ Communication отвечающий за взаимодействие с клиентской частью
▪ Controller содержит в себе контроллеры, классы отвечающие за обработку приходящих и исходящих сообщений с клиентской стороны.
▪ Migrate отвечает за процесс миграции.
▪ Router отвечает за пересылку пришедших сообщений со стороны клиента на нужные контроллеры обработки.

3.2 Использование Gradle

Gradle это инструмент автоматизации сборки проектов написанных на языке Java выполняющий такие действия как:
▪ Компиляция исходного кода
▪ Создания дистрибутива программы
▪ Выполнение автотестов
▪ Генерация документации.
Для платформы java существуют три основных инструмента
автоматизации сборки Ant, Maven и Gradle. При разработки системы было принято решение использовать Gradle из за следующих его достоинств:
▪ Компактность конфигурационного файла.
...

3.4 Внедрение зависимостей

Данный модуль содержит классы необходимые для реализации паттерна “Внедрение зависимостей”, позволяющего динамически описывать зависимости в коде разделяя тем самым бизнес логику от создания объектов.
Описанный паттерн применяется для устранения прямых зависимостей объектов друг от друга. Основными преимущества его использования являются:
▪ Ослабление связности между классами системы. Зависимости четко определены в каждом классе. Сведения о конфигурации, создании объектов зависимостей хранятся в специальном объекте. Слабая связанность компонентов позволяет при необходимости заменять реализацию без внесения каких либо изменений в код.
▪ Упрощение тестирования. Использование внедрения зависимостей предоставляет возможность подменять определенные объекты тестовыми заглушками.
▪ Создание кода, который лучше поддается проверке.
...

▪ Controller содержит в себе контроллеры, классы отвечающие за обработку приходящих и исходящих сообщений с клиентской стороны.
▪ Migrate отвечает за процесс миграции.
▪ Router отвечает за пересылку пришедших сообщений со стороны клиента на нужные контроллеры обработки.

3.2 Использование Gradle

Gradle это инструмент автоматизации сборки проектов написанных на языке Java выполняющий такие действия как:
▪ Компиляция исходного кода
▪ Создания дистрибутива программы
▪ Выполнение автотестов
▪ Генерация документации.
Для платформы java существуют три основных инструмента
автоматизации сборки Ant, Maven и Gradle. При разработки системы было принято решение использовать Gradle из за следующих его достоинств:
▪ Компактность конфигурационного файла.
▪ Совмещает в себе возможности императивного и декларативного подхода описания проекта.
▪ Независимость от операционной системы.
...

4.2 Electron

Технология Electron является средой выполнения настольных приложений, написанных на языке программирования JavaScript. Основными преимуществами данной платформы являются:
▪ Независимость от операционной системы.
▪ Хорошая документация.
▪ Имеет открытый исходный код.
Принцип работы данной технологии основан на взаимодействии двух типов процессов. Первый тип процесса является основным и отвечает за интеграцию и взаимодействие с операционной системой. Данный процесс может быть запущен всего один раз на весь жизненный цикл приложения.
Второй тип является процессом рендеринга и отвечает за отображения окна браузера с интерфейсом приложения. Количество процессов второго типа не ограничено, за их создание отвечает основной процесс. Принцип работы технологии Electron изображен на рисунке 5.

Рисунок 5. Принцип работы технологии Electron

4.3 Scala.
...

4.3 Scala.js

Для написания клиентской части системы было принято решение использовать языка Scala вместе с технологией Scala.js. Scala.js является компилятором позволяющим транслировать исходный код написанный на языке программирования Scala в код языка JavaScript, данное решение позволяет использовать язык Scala для написания приложений запускаемых в браузере и в других окружениях поддерживающих язык JavaScript.

4.4 Sbt

Для автоматизации процесса сборки проекта клиентской части было принято решение использовать инструмент Scala Build Tool. Данный
инструмент построен на принципах Apache Maven, однако для описания процесса сборки используется язык Scala, вместо традиционного xml.

4.5 Модули

Исходный код клиентской части распределен в отдельные пакеты по реализуемому функционалу. Были выделены следующие модули:
▪ Main
▪ Bindings
▪ Communication
▪ Render
▪ Widget

4.5.
...

Заключение

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

Приложение А
Серверная часть системы

package main;

import communication.CommunicationModule; import di.app.AppComponent;
import di.app.DaggerAppComponent;

public class Main {

private static final String HOST = "localhost"; private static final int PORT = 8000;
private static AppComponent appComponent;

public static AppComponent getAppComponent() { return appComponent;
}

public static void main(String[] args) throws Exception {
appComponent = DaggerAppComponent.builder()
.communicationModule(new CommunicationModule(HOST, PORT))
.build(); appComponent.getSocketServer().start();
}
}
package migrate;

import di.project.ProjectScope; import migrate.cases.DeletedClassCase; import migrate.cases.DeletedFieldCase;
import migrate.cases.DeletedMethodCase; import migrate.cases.DeletedPackageCase; import migrate.cases.method.MethodChangeCase; import model.*;
import spoon.reflect.code.CtExpression; import spoon.reflect.code.CtInvocation; import spoon.reflect.declaration.
...

1. Макконнелл С. Совершенный код. Мастер-класс / Пер. с англ. — М. : Издательско-торговый дом «Русская Редакция» ; СПб.: Питер, 2005. — 896 с.
2. Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс. Паттерны проектирования. — СПб.: Питер, 2011. — 656 с.
3. Брюс Эккель Философия Java. 4 изд. СПб.: Питер, 2016. — 1168 с.
4. Building a desktop application with Electron [Электронный ресурс] https://medium.com/developers-writing/building-a-desktop-application-with- electron-204203eeb658
5. Кей Хостманн SCALA для нетерпеливых. — Москва: ДМК Пресс, 2015. — 408 с.
6. Босуэлл Д., Фаучер Т. Читаемый код, или Программирование как искусство.
— CПб.: Питер, 2012. — 208 c.
7. Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс, Эрих Гамма Рефакторинг. Улучшение существующего кода. - СПб: Символ-Плюс, 2008. - 432 с.

Форма заказа новой работы

Не подошла эта работа?

Закажи новую работу, сделанную по твоим требованиям

Оставляя свои контактные данные и нажимая «Заказать Дипломную работу», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.

Фрагменты работ

Перечень условных обозначений, символов, единиц, сокращений и терминов 4
Введение 6
Глава 1 8
1.1 Исследование предметной области 8
1.2 Постановка требований 9
1.3 Обзор программных систем существующих на рынке 10
Глава 2 12
2.1 Проектирование архитектуры 12
2.2 Формат отчета об изменениях 13
2.3 Протокол связи 14
2.4 Формат сообщений 15
2.5 Организация работы 15
2.6 Выбор технологий 16
Глава 3. Реализация серверной части 18
3.1 Организация проекта 18
3.2 Использование Gradle 18
3.3 Communication 19
3.3 Router 20
3.4 Внедрение зависимостей 22
3.6 Controller 23
3.7 Migrate 24
Глава 4. Разработка клиентской части 31
4.1 Общее 31
4.2 Electron 31
4.3 Scala.js 32

4.4 Sbt 32
4.5 Модули 33
Заключение 36
Список использованных литературных источников 37
Приложение А 38
Приложение Б 61

Введение

В современно процессе разработки программного обеспечения достаточно часто используются уже готовые сторонние программные компоненты с целью снижения трудоемкости, стоимости и длительности непосредственной разработки. При этом разработка используемых программных компонентов также не прекращается, что ведет к появлению новых версий библиотек.
Можно выделить следующие причины необходимости миграции на новые версии используемых библиотек:
▪ Новые версии содержат исправления существующих ошибок в работе программного компонента.
▪ Упрощение API для работы с библиотекой.
▪ Более длительный срок поддержки со стороны разработчиком компонента.
▪ Появление нового функционала в программном компоненте.
▪ Увеличение количества поддерживаемых устройств в новой версии библиотеки.
...

1.1 Исследование предметной области

Ручной процесс по обновлению версии используемого программного компонента в проекте состоит из следующих шагов:
1. При помощи систем автоматизации сборок или ручным способом устанавливается новая версия программного компонента.
2. Используя исходный код и документацию программного компонента находятся все изменения в API.
3. После нахождения всех изменений необходимо произвести рефакторинг существующей кодовой базы. Рефакторинг состоит из следующих этапов:
a. Нахождение использования устаревшего API в исходном коде проекта.
b. Замена обращений к старому API на альтернативы согласно найденным изменениям на 2 шаге.
Главным минусом ручной миграции является высокая ресурсоемкость процесса рефакторинга, требующие огромное количество рабочих часов разработчиков.
Существуют следующие изменения API ведущие к необходимости рефакторинга:
▪ Удаление пакета/класса.
▪ Удаление конструктора класса.
...

1.2 Постановка требований

Исходя из исследования предметной области следуют следующие требования к рабочему окружению разрабатываемого приложения:
▪ Приложение должно иметь доступ к исходному коду проекту, в котором необходимо произвести обновление программного компонента.
▪ Отчет об изменениях API должен быть выполнен в поддерживаемом системой формате и содержать всю необходимую для миграции информацию.
▪ Исходный код программных компонентов (библиотека, проект в котором используется указанная библиотека) над которыми будет производиться миграция должен быть под VCS. Использование систем контроля версий является стандартом при разработке ПО и позволяет создать безопасное хранилище исходного кода с историей изменений.
...

2.1 Проектирование архитектуры

Для выполнения поставленных задач, а также для соответствия поставленных требованиям была принято решение использовать клиент- серверную архитектуру.
Особенностью данной архитектуры является разделение логики работы программного обеспечения между поставщиком услуг-серверной частью системы и заказчиком — клиентской частью. Чаще всего эти компоненты расположены на разных устройствах и взаимодействуют между собой при помощи сети и специальных сетевых протоколов. Схематично данный подход представлен на рисунке 1.

Клиентская часть

Канал связи

Серверная часть

Рисунок 1. Общая архитектура
Основными достоинствами данного подхода организации архитектуры программного обеспечения являются:
▪ Позволяет избежать дублирования исходного кода в различных клиентских приложениях за счет хранения бизнес правил на стороне сервера.
...

2.5 Организация работы

При разработки данной системы было принято решение использовать итеративную модель разработки программного обеспечения. Особенностью данной моделью является, что процесс разработки ПО разбивается на последовательность итераций, каждая из которых содержит в себе все процессы разработки ПО: сбор и анализ требований, составление спецификаций, непосредственную реализацию, тестирование и запуск. Каждый новый шаг содержит в себе реализацию новых возможность, так и весь функционал предыдущих итераций.
Основными преимуществами итеративной модели разработки ПО являются:
▪ Уменьшение возможных рисков за счет динамического формирования требований.
▪ Быстрый выпуск работоспособного продукта, а также возможность начать эксплуатацию системы в самые быстрые сроки.
▪ Акцентирование внимания на критический функционал.
▪ Непрерывное тестирование системы.
▪ Распределение затрат на весь срок создания системы.
...

2.6 Выбор технологий

Для реализации серверной части системы был выбран язык программирования общего назначения Java. Основными причинами данного выбора являются следующие пункты:
▪ Java является объектно ориентированным языком, что позволяет создавать модульные программы с возможностью дальнейшего переиспользования.
▪ Наличие стандартной библиотеки, которая содержит огромное количество готовых стандартных алгоритмов и наиболее популярные структуры данных.
▪ Независимость от платформы. Программы написанные на языке Java транслируется в байт код Java и выполняются на виртуальной машине - программе обрабатывающей байт код. Главным достоинством данного подхода является полная независимость байт кода от операционной системы и оборудования, что позволяет выполнять программы на любом устройстве на котором установлена виртуальная машина.
...

3.2 Использование Gradle

Gradle это инструмент автоматизации сборки проектов написанных на языке Java выполняющий такие действия как:
▪ Компиляция исходного кода
▪ Создания дистрибутива программы
▪ Выполнение автотестов
▪ Генерация документации.
Для платформы java существуют три основных инструмента
автоматизации сборки Ant, Maven и Gradle. При разработки системы было принято решение использовать Gradle из за следующих его достоинств:
▪ Компактность конфигурационного файла.
▪ Совмещает в себе возможности императивного и декларативного подхода описания проекта.
▪ Независимость от операционной системы. Gradle возможно запустить на большинстве современных системах.
▪ Возможен вызов из командной строки.
▪ Имеется поддержка инкрементальной сборки. Которая позволяет отслеживать изменения файлов по сравнению с предыдущей сборкой.
...

▪ Communication отвечающий за взаимодействие с клиентской частью
▪ Controller содержит в себе контроллеры, классы отвечающие за обработку приходящих и исходящих сообщений с клиентской стороны.
▪ Migrate отвечает за процесс миграции.
▪ Router отвечает за пересылку пришедших сообщений со стороны клиента на нужные контроллеры обработки.

3.2 Использование Gradle

Gradle это инструмент автоматизации сборки проектов написанных на языке Java выполняющий такие действия как:
▪ Компиляция исходного кода
▪ Создания дистрибутива программы
▪ Выполнение автотестов
▪ Генерация документации.
Для платформы java существуют три основных инструмента
автоматизации сборки Ant, Maven и Gradle. При разработки системы было принято решение использовать Gradle из за следующих его достоинств:
▪ Компактность конфигурационного файла.
...

3.4 Внедрение зависимостей

Данный модуль содержит классы необходимые для реализации паттерна “Внедрение зависимостей”, позволяющего динамически описывать зависимости в коде разделяя тем самым бизнес логику от создания объектов.
Описанный паттерн применяется для устранения прямых зависимостей объектов друг от друга. Основными преимущества его использования являются:
▪ Ослабление связности между классами системы. Зависимости четко определены в каждом классе. Сведения о конфигурации, создании объектов зависимостей хранятся в специальном объекте. Слабая связанность компонентов позволяет при необходимости заменять реализацию без внесения каких либо изменений в код.
▪ Упрощение тестирования. Использование внедрения зависимостей предоставляет возможность подменять определенные объекты тестовыми заглушками.
▪ Создание кода, который лучше поддается проверке.
...

▪ Controller содержит в себе контроллеры, классы отвечающие за обработку приходящих и исходящих сообщений с клиентской стороны.
▪ Migrate отвечает за процесс миграции.
▪ Router отвечает за пересылку пришедших сообщений со стороны клиента на нужные контроллеры обработки.

3.2 Использование Gradle

Gradle это инструмент автоматизации сборки проектов написанных на языке Java выполняющий такие действия как:
▪ Компиляция исходного кода
▪ Создания дистрибутива программы
▪ Выполнение автотестов
▪ Генерация документации.
Для платформы java существуют три основных инструмента
автоматизации сборки Ant, Maven и Gradle. При разработки системы было принято решение использовать Gradle из за следующих его достоинств:
▪ Компактность конфигурационного файла.
▪ Совмещает в себе возможности императивного и декларативного подхода описания проекта.
▪ Независимость от операционной системы.
...

4.2 Electron

Технология Electron является средой выполнения настольных приложений, написанных на языке программирования JavaScript. Основными преимуществами данной платформы являются:
▪ Независимость от операционной системы.
▪ Хорошая документация.
▪ Имеет открытый исходный код.
Принцип работы данной технологии основан на взаимодействии двух типов процессов. Первый тип процесса является основным и отвечает за интеграцию и взаимодействие с операционной системой. Данный процесс может быть запущен всего один раз на весь жизненный цикл приложения.
Второй тип является процессом рендеринга и отвечает за отображения окна браузера с интерфейсом приложения. Количество процессов второго типа не ограничено, за их создание отвечает основной процесс. Принцип работы технологии Electron изображен на рисунке 5.

Рисунок 5. Принцип работы технологии Electron

4.3 Scala.
...

4.3 Scala.js

Для написания клиентской части системы было принято решение использовать языка Scala вместе с технологией Scala.js. Scala.js является компилятором позволяющим транслировать исходный код написанный на языке программирования Scala в код языка JavaScript, данное решение позволяет использовать язык Scala для написания приложений запускаемых в браузере и в других окружениях поддерживающих язык JavaScript.

4.4 Sbt

Для автоматизации процесса сборки проекта клиентской части было принято решение использовать инструмент Scala Build Tool. Данный
инструмент построен на принципах Apache Maven, однако для описания процесса сборки используется язык Scala, вместо традиционного xml.

4.5 Модули

Исходный код клиентской части распределен в отдельные пакеты по реализуемому функционалу. Были выделены следующие модули:
▪ Main
▪ Bindings
▪ Communication
▪ Render
▪ Widget

4.5.
...

Заключение

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

Приложение А
Серверная часть системы

package main;

import communication.CommunicationModule; import di.app.AppComponent;
import di.app.DaggerAppComponent;

public class Main {

private static final String HOST = "localhost"; private static final int PORT = 8000;
private static AppComponent appComponent;

public static AppComponent getAppComponent() { return appComponent;
}

public static void main(String[] args) throws Exception {
appComponent = DaggerAppComponent.builder()
.communicationModule(new CommunicationModule(HOST, PORT))
.build(); appComponent.getSocketServer().start();
}
}
package migrate;

import di.project.ProjectScope; import migrate.cases.DeletedClassCase; import migrate.cases.DeletedFieldCase;
import migrate.cases.DeletedMethodCase; import migrate.cases.DeletedPackageCase; import migrate.cases.method.MethodChangeCase; import model.*;
import spoon.reflect.code.CtExpression; import spoon.reflect.code.CtInvocation; import spoon.reflect.declaration.
...

1. Макконнелл С. Совершенный код. Мастер-класс / Пер. с англ. — М. : Издательско-торговый дом «Русская Редакция» ; СПб.: Питер, 2005. — 896 с.
2. Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс. Паттерны проектирования. — СПб.: Питер, 2011. — 656 с.
3. Брюс Эккель Философия Java. 4 изд. СПб.: Питер, 2016. — 1168 с.
4. Building a desktop application with Electron [Электронный ресурс] https://medium.com/developers-writing/building-a-desktop-application-with- electron-204203eeb658
5. Кей Хостманн SCALA для нетерпеливых. — Москва: ДМК Пресс, 2015. — 408 с.
6. Босуэлл Д., Фаучер Т. Читаемый код, или Программирование как искусство.
— CПб.: Питер, 2012. — 208 c.
7. Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс, Эрих Гамма Рефакторинг. Улучшение существующего кода. - СПб: Символ-Плюс, 2008. - 432 с.

Купить эту работу

Разработка инструментальных средств рефакторинга кодовой базы ПО для поддержания актуальности версий используемых программных компонентов»

900 ₽

или заказать новую

Лучшие эксперты сервиса ждут твоего задания

от 3000 ₽

Гарантии Автор24

Изображения работ

Страница работы
Страница работы
Страница работы

Понравилась эта работа?

или

25 июля 2020 заказчик разместил работу

Выбранный эксперт:

Автор работы
ksfei121
4.7
В основном сосредоточен на продажу готовых своих личных работ по символическим ценам.
Купить эту работу vs Заказать новую
0 раз Куплено Выполняется индивидуально
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что уровень оригинальности работы составляет не менее 40%
Уникальность Выполняется индивидуально
Сразу в личном кабинете Доступность Срок 1—6 дней
900 ₽ Цена от 3000 ₽

5 Похожих работ

Дипломная работа

Диплом Нейросети "Распознавание сервированных блюд с использованием нейронных сетей" сдан на 5 + исходный код

Уникальность: от 40%
Доступность: сразу
249 ₽
Дипломная работа

Разработка програмного обеспечения для предоставления государственных услуг через портал

Уникальность: от 40%
Доступность: сразу
2800 ₽
Дипломная работа

Разработка компьютерного демонстрационного эксперемента по физике на флеше

Уникальность: от 40%
Доступность: сразу
2800 ₽
Дипломная работа

Разработка AMR-специалиста отдела снабжения предприятия малого бизнеса

Уникальность: от 40%
Доступность: сразу
2800 ₽
Дипломная работа

Разработка WEB-cистемы "АРМ сотрудник УМО" средствами ASP.NET версии 4.0 и СУБД Microsoft SQL сервер

Уникальность: от 40%
Доступность: сразу
2800 ₽

Отзывы студентов

Отзыв Геннадий Полушкин об авторе ksfei121 2018-04-25
Дипломная работа

Автор молодец, просто работа не нужна больше

Общая оценка 5
Отзыв Lesha об авторе ksfei121 2014-06-17
Дипломная работа

Работа сложная, диплом по программированию. Большое спасибо за ответственный подход.

Общая оценка 5
Отзыв user13484 об авторе ksfei121 2016-05-11
Дипломная работа

Большое спасибо, все замечательно!

Общая оценка 5
Отзыв vovikluch об авторе ksfei121 2014-06-24
Дипломная работа

очень хороший автор Спасибо за работу

Общая оценка 5

другие учебные работы по предмету

Готовая работа

Электронная ведомость учета часов, пропущенных студентами (Excel+VBA)

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Разработка системы сбора и анализа информации о новой коронавирусной инфекции (Python Django)

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Автоматизация комплекса задач складского предприятия с использованием 1С

Уникальность: от 40%
Доступность: сразу
2200 ₽
Готовая работа

WEB-приложение для школы. Предмет исследования – учет успеваемости в школе.

Уникальность: от 40%
Доступность: сразу
3500 ₽
Готовая работа

программный продукт в виде компьютерной обучающей игры на движке Unity

Уникальность: от 40%
Доступность: сразу
5000 ₽
Готовая работа

Разработка web-информационной системы отдела кадров

Уникальность: от 40%
Доступность: сразу
1500 ₽
Готовая работа

Системы идентификации личности по лицу

Уникальность: от 40%
Доступность: сразу
3000 ₽
Готовая работа

Создание интернет-магазина на примере ООО «Альфа-Бизнес»

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

Разработка информационной системы для арт-галереи

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

ИС бюро судебно-медицинской экспертизы (C#+WPF+MS SQL Server)

Уникальность: от 40%
Доступность: сразу
7500 ₽
Готовая работа

Статический анализ распространения выходных значений хранимых процедур и функций в прикладном программном обеспечении

Уникальность: от 40%
Доступность: сразу
1500 ₽
Готовая работа

Разработка сайта с древовидной структурой

Уникальность: от 40%
Доступность: сразу
2000 ₽