Диплом: Адаптивная динамическая информационная система управления сайтом

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
75
многие тесты требуют определенной доработки, да и само приложение
недостаточно покрыто тестами.
Стоит обратить внимание на то, что для общего и непрерывного
тестирования кода приложения используется SonarQube - платформу с
открытым исходным кодом для непрерывного анализа и измерения качества
кода. Данный инструмент позволяет проводить тестирование всего кода
приложения, и в удобном виде отображать как обыкновенные ошибки в коде
приложения, так и, например, недостаточное покрытие тестами, наличие
дублирующего кода и уязвимостей (Рисунок 5).
Рисунок 5 – Пример пройденного теста SonarQube
Установка и настройка SonarQube не представляет из себя каких-либо
сложностей, и для работы он требует только сервер баз данных (Microsoft SQL
Server, Oracle, MySQL или Postgress), но является чрезвычайно полезным
инструментом тестирования програмного обеспечения, как при
индивидуальной разработке, так и при разработке больших и серьезных
проектов.
В заключительной, третьей главе был рассмотрен процесс создания
системы управления содержимым с использованием языка программирования
Java и набора библиотек Spring Framework. В первой части данной главы был
разработан каркас системы управления содержимым на основе инструментария
Spring Boot и системы сборки Gradle, реализована система безопасности
приложения для пользователей, имеющих различные права доступа к ресурсам
системы с использованием Spring Security, а также был реализован доступ
приложения к базам данных с использованием Spring Data (ORM), что
позволило решить проблему работу системы с различными СУБД.
76
Далее был описан процесс разработки внутренней логики приложения с
использованием сервисного слоя приложения и процесс создания клиентской
часть приложения (отвечающей за отображения информации, и взаимодействия
с пользователями) с использованием шаблонизатора Apache FreeMarker и
фреймворка Twitter Bootstrap. В заключении третьей главы был описан процесс
тестирования приложения при помощи написания тестовых классов библиотеки
spring-boot-starter-test (по сути являющимися тестами JUnit), и инструментом
общего интеграционного тестирования кода SonarQube.
77
ЗАКЛЮЧЕНИЕ
На данный момент времени существует явный дефицит систем
управления содержимым, нацеленных на корпоративный сегмент, и
удовлетворяющим таким требованиям, как возможность работы с различными
СУРБД уровня предприятия (Microsoft SQL Server, Oracle DB), быть простыми
для инсталляции, использования и написания своих модулей и иметь открытый
исходный код. Одной из причин этого являются требования к информационным
системам, которые как можно лучше отвечают рабочей специфике
предприятия, из-за чего в рамках предприятия проще нанять команду
разработчиков (как вариант заказать внешним компаниям-разработчикам) и
таким разработать собственное ПО, полностью отвечающее требованиям
предприятия.
Цель данной выпускной квалификационной работы заключалась в
реализации проекта адаптивной динамической информационной системы
управления сайтом (англ. Content Management System, CMS), удовлетворяющим
вышеописанным условиям, и написанной на языке программирования Java с
использованием фреймворка Spring.
Для достижения указанной цели перед работой был поставлен ряд задач,
таких как:
Подбор и изучение необходимой для выполнения задачи литературы.
Формирование требований к проекту информационной системы
управления сайтом.
Подбор необходимых для разработки информационной системы
инструментов и технологий.
Описание архитектуры информационной системы управления сайтом.
Разработка ядра адаптивной динамической информационной системы
управления сайтом.
78
В первой главе данной работы были подобраны и изучены необходимые
для выполнения работы литература и иные источники информации, были
раскрыты используемые термины и понятия. Так же были рассмотрены этапы
создания информационных систем (ИС) согласно стандарту, ГОСТ 34.601-90,
была произведена классификация систем управления содержимым по уровням
разработки и назначения, и указаны основные требования для этих систем,
такие как надежность, простота использования и другие.
Во второй главе были описаны общая архитектура систем управления
сайтами, ее основные компоненты (такие как ядро системы, ядро баз данных,
пользовательские и административные отображения). Так же в этой главе были
рассмотрены пять существующих на рынке систем управления содержимым,
таких как -Битрикс: Управление сайтом, Joomla, WordPress, MODX, Drupal,
их функционал, основные особенности, желательные сценарии их
использования, а также подробно описаны достоинства и недостатки данных
систем управления содержимым.
В третьей, заключительной главе был рассмотрен сам процесс
разработки динамической информационной системы управления сайтом. В
данной главе были описаны общие принципы работы с Java фреймворком
Spring, его составляющими, такими как системой создания каркаса приложения
Spring Boot, системы доступа к данным Spring Data, системы обеспечения
безопасности приложений Spring Security, а также системой сборки проекта
Gradle. В дальнейшем был описан процесс создания ядра системы с
использованием данных технологий, а также была реализована клиентская и
административная части веб приложения на основе библиотеки Twitter
Bootstrap с использованием шаблонизатора Apache FreeMarker. Стоит обратить
внимание на то, что немаловажную часть третьей главы составило описание
тестирования приложения, с использованием, как и юнит тестирования, так и с
инструментом общего тестирования приложений SonarQube.
79
В результате выполнения данной дипломной работы были выполнены
следующие практические задачи:
1. Была изучена необходимая теоретическая части.
2. Была разработана адаптивная система управления содержимым,
работающая с раздельными СУРБД и поддерживающая авторизацию
пользователей.
Таким образом, цель работы в большей своей части решена,
поставленная цель - реализация проекта адаптивной динамической
информационной системы управления сайтом (англ. Content Management
System, CMS) выполнена.
В то же время часть желаемого функционала не было реализовано на
стадии написания данной работы, и нуждаются в некоторой доработке.
Первым, и основным недостатком является отсутствие документации (даже в
формате Javadoc), что несомненно осложняет изучение, понимание, и
разработку программных продуктов на основе данной системы. Вторым
недостатком является некоторая перегруженность кода, например, в классах
сущностей его количество можно сократить в 4-5 раза, с использованием
библиотеки аннотаций Lombok, которая при помощи аннотаций сама
генерирует конструкторы классов, методы геттеров, сеттеров, и многое другое.
Третьим недостатком является определенная сложность развертки приложения
разработчиками, не знакомыми с данной спецификой, что является решаемой
проблемой.
В процессе разработки продукта были выделены следующие пути
развития и модификации:
Облегчение развертки приложения путем создания и опубликования
артефактов системы сборки Gradle.
Создание системы быстрой развертки приложения за счет
использования системы образов Docker.
80
Модернизация приложения с целью возможности работы с Vaadin -
сервер-ориентированным набором библиотек для взаимодействия с
пользователями, которая более удачно могла бы быть использована в
корпоративной среде.
Практическая польза данной заключается в том, что, используя данный
проект можно относительно легко создавать новые проекты, добавляя или
изменяя набор библиотек, и легко добавляя новый функционал, причем это
экономит огромное количество времени. Как пример можно привести проекты
по подсчету показаний счетчиков электричества и воды, ведения статистики
денежных трат на автомобиль. Данные проекты находятся в стадии разработки
и тестирования, но все построены с использованием данного приложения как
каркаса.
Так же стоит добавить, что на данный момент проект продолжает свое
развитие, в связи с чем некоторые его части могут отличаться от описанных в
данной работе. Актуальный код проекта находится в репозитории Github по
адресу https://github.com/porollo/PlatformCMS.
81
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Изучаем Java EE 7. / Э. Гонсалвес. - СПб.: Питер, 2014. - 640 с.: ил.
2. Лямбда-выражения в Java 8. Функциональное программирование - в
массы / Уорбэртон Р. пер. с анг. А. А. Слинкина. - М.: ДМК Пресс, 2014. -
192 с.: ил.
3. Java 7 / Ильдар Хабибуллин БХВ-Петербург 2012 - 768 c.
4. Java 8. Полное руководство. / Шилдт, Герберт. 9-е изд.: Пер. с англ. - М.:
ООО "И.Д. Вильяме", 2015. - 1376 с.: ил. - Парал. тит. англ.
5. Java EE 6 и сервер приложений GlassFish 3 / Дэвид Хеффельфингер ДМК
Пресс 2013 - 416 c.
6. Java EE. Паттерны проектирования для профессионалов. / Мурат Йенер,
Алекс Фидом Питер 2016 - 240 с.
7. Just Hibernate / Madhusudhan Konda. - O'Reilly Media 2014. - 140 с.
8. Microsoft SQL Server 2012. Создание запросов. / Ицик Бен-Ган, Диджан
Сарка, Рон Талмейдж Русская Редакция 2014 - 720 с.
9. Microsoft SQL Server 2012. Справочник администратора / Уильям Р.
Станек Русская Редакция, БХВ-Петербург 2013 - 576 c.
10. Microsoft SQL Server 2014 / Александр Бондарь БХВ-Петербург 2015 - 592
c.
11. Pro Spring Security / C. Scarioni Apress 2013 - 330 c.
12. Spring в действии. / Уоллс К. – М.: ДМК Пресс, 2013. - 752 с
13. Spring 3 для профессионалов / Кларенс Хо, Роб Харроп. Вильямс, 2013 -
880 стр., с ил.
14. Spring 4 для профессионалов. / Крис Шефер, Кларенс Хо, Роб Харроп
Вильямс 2015 - 752 c.
15. Web-сервисы Java. / Тимур Машнин - БХВ-Петербург, 2012 - 560 с.
16. JSR-000338 Java Persistence 2.1 Final Release for Evaluation [Электронный
ресурс] // Корпорация Oracle [Офиц. сайт].
URL:http://download.oracle.com/otndocs/jcp/persistence-2_1-fr-eval-
spec/index.html
17. Spring Security Reference [Электронный ресурс] // Pivotal Software [Офиц.
сайт]. URL:https://docs.spring.io/spring-security/site/docs/4.0.x/reference/html/
Система управления содержимым [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Система_управления_содержимым
18. Программная платформа Java [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Java_(программная_платформа)
82
19. Java [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Java
20. Java Persistence API [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Java_Persistence_API
21. ORM [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/ORM
22. Hibernate (библиотека) [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Hibernate_(библиотека)
23. Java Database Connectivity [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Java_Database_Connectivity
24. Enterprise JavaBeans [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Enterprise_JavaBeans
25. JavaServer Faces [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/JavaServer_Faces
26. FreeMarker [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/FreeMarker
27. Apache Tomcat [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Apache_Tomcat
28. WildFly [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/WildFly
29. Капча [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Капча
30. KISS principle [Электронный ресурс] // Wikipedia
URL:https://en.wikipedia.org/wiki/KISS_principle
31. Веб-форум [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Веб-форум
32. WYSIWYG [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/WYSIWYG
33. Каталог решений [Электронный ресурс] // 1C Битрикс
URL:https://marketplace.1c-bitrix.ru/
34. [Электронный ресурс] // CMS Magazine – электронное СМИ
URL:http://www.cmsmagazine.ru/
35. Joomla! [Электронный ресурс] // Wikipedia
URL:https://ru.wikipedia.org/wiki/Joomla!
36. WordPress — свободное программное обеспечение [Электронный ресурс]
// WordPress URL:https://ru.wordpress.org/
37. PEAR - PHP Extension and Application Repository [Электронный ресурс] //
The PEAR Group URL:https://pear.php.net/
83
38. ГОСТ 34.601-90 [Электронный ресурс] //
URL:https://standartgost.ru/g/%D0%93%D0%9E%D0%A1%D0%A2_34.601-
90
39. ГОСТ 34.201-89 [Электронный ресурс] //
URL:https://standartgost.ru/g/%D0%93%D0%9E%D0%A1%D0%A2_34.201-
89
40. ГОСТ 19.101-77 [Электронный ресурс] //
URL:https://standartgost.ru/g/%D0%93%D0%9E%D0%A1%D0%A2_19.101-
77
41. PlatformCMS [Электронный ресурс] // Dmitriy S. Porollo
URL:https://github.com/porollo/PlatformCMS
84
Приложение 1
buildscript {
ext {
springBootVersion = '1.5.8.RELEASE'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-
plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'idea'
jar {
baseName = 'platform'
version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)