Тема: АВТОМАТИЧЕСКАЯ ГЕНЕРАЦИЯ БАЗОВОЙ АРХИТЕКТУРЫ ANDROID-ПРИЛОЖЕНИЙ НА ОСНОВЕ ДЕКЛАРАТИВНОГО ОПИСАНИЯ
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1 ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ 5
1.1 Обзор паттернов проектирования 5
1.2 Выбор паттерна проектирования в генерируемом приложении 12
2 ТРЕБОВАНИЯ К ПРОГРАММНОМУ РЕШЕНИЮ 14
2.1 Структура входного файла 14
2.2 Общие требования к программному продукту 18
3 РЕАЛИЗАЦИЯ ПРОГРАММНОГО РЕШЕНИЯ 21
3.1 Общая структура программного решения 21
3.2 Базовые компоненты 23
3.3 Конкретные сущности 27
3.4 Система шаблонов 30
3.5 Генераторы 32
3.6 Взаимодействие компонентов системы 43
3.7 Результат работы программного решения 45
ЗАКЛЮЧЕНИЕ 48
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 49
ПРИЛОЖЕНИЕ А. Пример входного файла 51
ПРИЛОЖЕНИЕ Б. Пример сгенерированного кода приложения 53
ПРИЛОЖЕНИЕ В. Исходный код программы
📖 Введение
В процессе реализации архитектуры приложения, которая включает в себя создание интерфейсов для компонентов приложения, создание сервисов, которые могут предоставлять данные как из сети, так и из внутреннего хранилища устройства, создание окон с наиболее часто встречающимся функционалом, разработчик может столкнуться с написанием однотипного кода так как, зачастую, для решения тривиальных задач архитектура приложения и её элементы схожи. Из-за схожести элементов возникает повторение однотипных действий как на уровне разных проектов, так и на уровне одного проекта. Это значит, что разработка и написание архитектуры приложения происходит по большей части вручную, что требует определенных временных затрат, размер которых зависит от нетривиальное™ задач и общего объема проекта.
Частичная автоматизация процесса построения архитектуры приложения позволит уменьшить количество однотипного кода, который программист пишет вручную, что в большинстве случаев позволит сократить время на построение и написание архитектуры и снизить количество кода, который пишет разработчик, что снижает шансы допущения ошибки последним, так как, по результатам исследования компании Coverity, на 1000 строк кода в открытом ПО насчитывается около 0.45 ошибки, на 1000 строк кода в проприетарном ПО насчитывается около 0.64, где средний размер проекта с открытым исходным кодом около 832000 строк кода, а средний размер проекта с закрытым исходным кодом около 7500000 строк кода [4].
Цель данной работы - разработать программный продукт, который позволяет автоматизировать построение архитектуры приложения.
Задачи, выполнение которых необходимо для достижения поставленной цели:
• выделить основные сущности, представляющие из себя компоненты архитектуры приложения;
• разработать структуру входного файла, который описывает архитектуру разрабатываемого приложения в декларативном стиле;
• выявить связи между сущностями и их взаимодействие друг с другом;
• реализовать генерацию кода, опираясь на описанные сущности.
✅ Заключение
Для достижения данной цели были выполнены следующие задачи:
• выделены основные сущности, представляющие из себя компоненты приложения;
• на основании выделенных сущностей разработана структура входного файла, который описывает структуру генерируемого приложения в декларативном стиле;
• выявлены связи между сущностями генерируемого приложения и их взаимодействие друг с другом;
• реализована генерация кода компонентов приложения (классы данных, Kotlin-интерфейсы компонентов, реализация классов репозиториев, реализация Interactor-компонентов, компоненты, отвечающие за инъекцию зависимостей, файлы настроек системы автоматической сборки Gradle).
Для дальнейшего развития данного программного решения планируется реализовать поддержку генерации экранов приложения, кэширования данных, а также графический интерфейс для программного решения.
Результаты данной выпускной квалификационной работы опубликованы в открытом доступе в репозитории GitLab и доступны по ссылке http://gititis.kpfu.ru/OrtyomZ/project architecture generation.



