Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА ФРЕЙМВОРКА ДЛЯ АВТОМАТИЗАЦИИ СОЗДАНИЯ КОНТРОЛЛЕРОВ ПРИ ПРОЕКТИРОВАНИИ КОРПОРАТИВНЫХ ПРИЛОЖЕНИЙ НА ЯЗЫКЕ JAVA

Работа №84346

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы101
Год сдачи2016
Стоимость4290 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
98
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
1. ПОСТАНОВКА ЗАДАЧИ 5
1.1 Существующие решения 5
1.2 Актуальность выбранных технологий 6
1.2 Требования к решению 8
1.3 Технология разработки 9
1.3.1 Архитектура серверной части приложения веб-приложения 9
1.3.2 Способы анализа кода 11
1.3.3 Метаданные фасада 13
1.3.4 Генерация путей к ресурсам 14
1.3.5 Запуск Web Generator 14
1.4 Вывод 15
2. РЕАЛИЗАЦИЯ ФРЕЙМВОРКА 15
2.1 Компоненты Web Generator 16
2.1.1 Аннотации 16
2.1.2 Сервис генерации кода и вспомогательные классы 19
2.1.3 Генерация методов контроллера 23
2.2 Реализация процесса запуска 30
2.2.1 Этапы настройки приложения 30
2.2.2 Интерфейс GenerationService 33
2.2.3 Расширение контейнера Spring Framework 33
2.3 Архитектура Web Generator 34
2.4 Сценарий работы 35
3. ПРИМЕНЕНИЕ РЕШЕНИЯ 36
3.1 Описание тестового приложения и применение Web Generator 36
3.2 Интеграционное тестирование сгенерированного кода 44
3.3. Применение решения на реальном проекте и оценка результатов 46
ЗАКЛЮЧЕНИЕ 46
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 47
ПРИЛОЖЕНИЕ


В настоящее время программистам приходится выполнять большое количество шаблонной работы, требующей применения ряда типовых решений. Подобные типичные задачи отнимают много времени, и в большинстве случаев отклонение от общепринятых лучших практик программирования приводит ко множеству ошибок.
Несмотря на нынешнюю тенденцию фреймворков облегчить и упростить создание программных продуктов посредством уменьшения повторяющегося кода, имеется потребность в создании программного инструмента, позволяющего ускорить процесс разработки.
Необходимость в подобном сервисе была выявлена на практике. В ходе работы над различными коммерческими проектами с использованием языка программирования Java и Spring Framework необходимо выполнять много шаблонной работы при написании классов контроллеров в веб-приложении. Данная проблема особенно актуальна в системах, в которых используются паттерн Модель-Представление-Контроллер (англ. Model-View-Controller - MVC) и REST- архитектура.
Целью работы является создание инструмента, обладающего элементами метапрограммирования [1], который позволит генерировать контроллеры при разработке серверной части веб-приложения на Java с использованием Spring Framework и концепцией REST API.
Для достижения поставленной цели были решены следующие задачи:
• Выбор способа генерации кода, проведение анализа возможных альтернатив.
• Выбор способа получения метаинформации о существующем коде для использования ее в качестве основы для будущих классов.
• Реализация системы анализа исходного кода для генерации URL-адресов.
• Применение выбранного метода генерации кода.
• Оценка влияния использования фреймворка на скорость и качество раз-работки веб-приложения.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В настоящей дипломной работе был реализован программный инструмент Web Generator, с помощью которого можно существенно ускорить разработку серверной части веб-приложения на языке программирования Java с ис-пользованием Spring Framework.
Фреймворк решает проблему написания шаблонного кода при разработке приложений.
Данный программный инструмент представляет собой генератор исходного кода контроллеров, где контроллеры являются компонентом приложения, в котором используется паттерн проектирования Model-View-Controller. Web Generator анализирует код классов, инкапсулирующих бизнес логику приложения, получает метаданные и на основе этой информации генерирует исходный код.
Для применения Web Generator необходимо подключить фреймворк, пометить классы сервис-слоя аннотациями и добавить постпроцессор Web Generator в конфигурацию приложения.
Разработанный фреймворк генерации кода может существенно повлиять на скорость и качество разработки системы. Данное утверждение проверено на практике при разработке коммерческого проекта.
Дальнейшая работа по развитию фреймворка предполагает выявление фрагментов в приложениях, где присутствует шаблонный код, таких как: конфигурация приложения, SQL-запросы и т.д. Кроме того, следует добавить возможность применения Web Generator при использовании других паттернов проектирования. Дальнейшее увеличение функционала системы позволит избавить разработчиков от выполнения однотипной работы.



1. Д. Бартлетт Искусство метапрограммирования, Часть 1: Введение в метапрограммирование [Электронный ресурс] / Обучающие материалы IBM developerWorks. Дата создания: 20.10.2005. URL: http: //www. ibm. com/developerworks/ru/library/l-metaprog 1/index. html. (Дата обращения: 20.05.2016).
2. Welcome to the Java Community Process! [Электронный ресурс] / Официальный сайт JCP; Oracle Corporation. URL: https://www.jcp.org/en/resources/contacts. (Дата обращения: 15.05.2016)
3. Фаулер, Мартин, Архитектура корпоративных программных приложений. М.: Издательский дом "Вильяме", 2006. — 544 с.
4. AJITESH KUMAR Java - Top 10 Java-based Web Frameworks for 2014-2015 [Элетронный ресурс] / Статистические данные. Дата обновления: 17.11.2014. URL: http://vitalflux.com/java-top-10-java-based-web- development-frameworks-2014-2015. (Дата обращения: 16.05.2016).
5. O. WHITE Top 4 Java Web Frameworks Revealed: Real Life Usage Data of Spring MVC, Vaadin, GWT and JSF [Электронный ресурс] / Статистические данные; ZeroTurnaround USA., Inc. Дата создания: 06.01.2015. URL: http://zeroturnaround.com/rebellabs/top-4-java-web- frameworks-revealed-real-life-usage-data-of-spring-mvc-vaadin-gwt-and-jsf. (Дата обращения: 17.05.2016).
6. Среда выполнения [Электронный ресурс] / Статья Wikimedia Foundation, Inc. Дата создания: 25.04.2016. URL: https://ru.wikipedia.org/wiki/Stack_Overflow. (Дата обращения: 17.05.2016)
7. Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс, Паттерны проектирования. СПб.: Питер, 2011. 656 с.
8. JFlex [Электронный ресурс] / Официальный сайт программы; JFlex Team. URL: http://jflex.de. (Дата обращения: 18.05.2016).
9. Р. Хантер, Основные концепции компиляторов. М.: Издательский дом "Вильяме", 2002. С. 15-17.
10. Шилдт, Герберт. Java 8. Полное руководство, 9-е изд. М.: Издательский дом "Вильяме", 2015. 1376 с.
11. Uniform Resource Locators (URL) [Электронный ресурс] / Официальная страница Network Working Group. URL: https://www.ietf.org/rfc/rfc1738.txt. (Дата обращения: 19.05.2016).
12. Шилдт, Герберт. Java 8. Полное руководство. C. 335-336.
13.Inversion of Control Containers and the Dependency Injection pattern [Электронный ресрус] / Статья о внедрении зависимостей М. Фаулер. Дата создания: 23.01.2004. URL: http://martinfowler.com/articles/injection.html. (Дата обращения: 19.05.2016).
14. RESTful Best Practices-v1_2 (2).pdf [Электронный ресурс] / Лучшие прак-тики REST; RestApiTutorial.com.Дата обновления: 01.02.2013. URL: http://www.restapitutorial.com/resources.html.(Дата обращения: 20.05.2016).
15. FasterXML/jackson-databind [Электронный ресурс] / Репозиторий фреймворка для работы с JSON. URL: https://github.com/FasterXML/jackson-databind.(Дата обращения: 21.05.2016).
16.Obtaining Names of Method Parameters [Электронный ресурс] / Официальная документация языка программирования Java; Oracle Corporation. URL:
https://docs.oracle.com/javase/tutorial/reflect/member/methodparameterreflection.html.(Дата обращения: 19.05.2016).
17. Javac - Java programming language compiler [Электронный ресурс] / Официальная документация языка программирования Java; Oracle Corporation. URL:
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html. (Дата обращения: 19.05.2016).
18. Naming Conventions [Электронный ресурс] / Конфенции именования Oracle Corporation. URL:
http: //www. oracle. com/technetwork/j ava/codeconventions-135099. html.(Дата обращения: 20.05.2016).
19. Р. Мартин, Чистый код: Создание, анализ и рефакторинг. СПб: Питер, 2010. 464 с.
20. Data Transfer Object (Объект передачи данных) [Электронный ресурс]. URL: http:ZZdesign-pattern.ru/patternsZdata-transfer-object.html. (Дата обращения: 20.05.2016).
21.Spring Framework Reference [Электронный ресурс] / Официальная документация Spring Framework. URL: http:ZZdocs.spring.ioZspringZdocsZcurrentZspring-framework- referenceZhtmlsingleZ#beans-factory-extension . (Дата обращения: 19.05.2016).


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ