Разработка сайта для ведения блога с элементами социальных сетей
Создание интернет-сайта для ведения блога. Анализ предметной области. Выбор средств разработки, архитектуры приложения. Создание use-case диаграммы. Проектирование базы данных, пользовательского интерфейса, серверной и клиентской частей приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 14.12.2019 |
Размер файла | 993,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Важно помнить, что страница должна отвечать техническим стандартам:
· кодировка UTF-8 (либо другая оговоренная в ТЗ);
· стандарт HTML;
· стандарт CSS (стоит отметить, что в этой проверке предупреждения допустимы, а ошибки - нет).
· Первый пункт можно легко проверить в самом браузере с помощью инструментов разработчика на вкладке Elements.
В правильности соблюдения стандарта написания кода мы можем убедиться с помощью сервисов от w3.org: достаточно написать адрес страницы в специально отведенное поле и запустить проверку. Все, что не попадает под «стандарты», будет обозначено словом ERROR.
4.1.3 Системное тестирование
Системное тестирование -- это тестирование, проводимое на полностью интегрированной системе для оценки соответствия системы ее указанным требованиям.
В качестве входных данных для тестирования системы используются все интегрированные компоненты, прошедшие интеграционное тестирование. Целью интеграционного тестирования является обнаружение любых несоответствий между модулями, которые объединены вместе (так называемые сборки). Системное тестирование направлено на обнаружение дефектов как внутри «сборок», так и внутри системы в целом. Фактический результат -- это поведение, производимое или наблюдаемое при тестировании компонента или системы. Системное тестирование выполняется на всей системе в контексте спецификаций функциональных требований (FRS) или спецификации системных требований (SRS), или обоих. Тестирование системы проверяет не только дизайн, но также поведение и даже ожидания клиента. Он также предназначен для тестирования до и за пределами, определенных в спецификации (требованиях) программного или аппаратного обеспечения.
Пример разработанного тест-кейса:
Тест-кейс № 1. Создание дубликата аккаунта.
Шаги:
1. Зайти на сайт
2. Перейти на страницу регистрации и ввести следующие данные:
a. Имя: Test
b. Электронная почта: test@test.com
c. Имя пользователя: test
d. Пароль и подтверждение пароля: test123456
3. Нажать на кнопку «создать аккаунт»
4. На главной странице сайта нажать кнопку «выход»
5. Повторить пункт 2
Ожидаемый результат:
Выделение полей «электронная почта» и «логин» красной рамкой и появление сообщения об ошибке рядом с каждым полем. Тест-кейсы были разработаны на все критичные функции приложения.
4.2 Результаты тестирования
Тестирование проводится локально на компьютере разработчика, затем на удаленном сервере приложений. Модульное тестирование запускается внутри интегрированной среды разработки IntelliJ IDEA 2018. Вся бизнес логика приложения покрыта тестами. Все тесты прошли успешно.
Первая часть тестирования верстки клиентской части - визуальное тестирование не выявило дефектов. Вторая часть - валидация проводилась через официальный сервис W3C (validator.w3.org). Валидатор не выявил ошибок HTML кода. Тестирование верстки клиентской части пройдено успешно.
Рисунок 4.1 - Результаты валидации HTML кода
Во время системного тестирования вручную были проверены все тест-кейсы. Дефектов выявлено не было. Системное тестирование пройдено успешно.
Нагрузочное тестирование (англ. load testing) -- подвид тестирования производительности, сбор показателей и определение производительности и времени отклика программно-технической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству).
Для исследования времени отклика системы на высоких или пиковых нагрузках производится стресс-тестирование, при котором создаваемая на систему нагрузка превышает нормальные сценарии её использования. Не существует чёткой границы между нагрузочным и стресс-тестированием, однако эти понятия не стоит смешивать, так как эти виды тестирования отвечают на разные бизнес-вопросы и используют различную методологию.
Нагрузочное тестирование проводится с помощью сервиса loaddy.com. Сценарий тестирования включает в себя такие параметры как:
· Тип нагрузки: равномерная или нарастающая;
· Время проверки: от 1 до 15 минут;
· Количество посетителей.
Во время тестирования проверяется доступность сайта, время ответа от сервера, время загрузки страницы. Результаты тестирования при максимальной нагрузке за 1.5 минут показаны на рисунке 4.2.
Рисунок 4.2 - Результаты нагрузочного тестирования
При максимальной нагрузке сервер быстро и корректно обрабатывает запросы. Нагрузочное тестирование пройдено успешно.
Приложение прошло все этапы тестирования. Тестирование приложения считаем успешным.
5. Опытная эксплуатация
Для запуска приложения в опытную эксплуатацию необходимо выполнить несколько шагов: настройка сервера, привязка доменного имени, настройка инструментов для автоматического развертывания приложения.
5.1 Настройка сервера
Для работы приложения требуется сервер, на котором будет установлен контейнер сервлетов Tomcat 9.
Apache Tomcat (также называемый Tomcat Server) реализует несколько спецификаций Java EE, включая Java Servlet, JavaServer Pages (JSP), Java EL и WebSocket, и предоставляет среду веб-сервера HTTP "на чистой Java", в которой может выполняться код Java.
Tomcat разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation, выпускается под лицензией Apache License 2.0 и является программным обеспечением с открытым исходным кодом.
Было принято решение арендовать виртуальный приватный сервер. Виртуальный частный сервер (VPS) -- это виртуальная машина, продаваемая как услуга интернет-хостингом. Виртуальный выделенный сервер (VDS) также имеет аналогичное значение.
VPS запускает свою собственную копию операционной системы (ОС), и клиенты могут иметь доступ уровня суперпользователя к этому экземпляру операционной системы, поэтому они могут установить практически любое программное обеспечение, работающее в этой ОС. Для многих целей они функционально эквивалентны выделенному физическому серверу и, будучи определяемыми программным обеспечением, могут быть гораздо проще создавать и настраивать. Они оценены намного ниже, чем эквивалентный физический сервер. Однако, поскольку они совместно используют базовое физическое оборудование с другими VPS, производительность может быть ниже, в зависимости от рабочей нагрузки любых других исполняемых виртуальных машин.
Сервер был арендован у компании Heroku. Основные характеристики:
· Процессор: Intel Xeon 1vCPU
· Оперативная память: 512Мб
· SSD диск: 10 Гб
· Лимит интернет-траффика: 1 Тб в месяц
5.2 Настройка инструментов для автоматического развертывания приложения
Для хранения исходного кода, а также непрерывного процесса развертывания приложения использована платформа GitHub.
GitHub, дочерняя компания Microsoft, является американской веб-службой хостинга для контроля версий с помощью Git. В основном используется для компьютерного кода. Он предлагает все функции распределенного контроля версий и управления исходным кодом (SCM) в Git, а также добавляет свои собственные функции.
В репозитории было создано две ветки: master и wip (от английского work in progress). Такое количество веток оптимально, для разработки приложения одним человеком. На ветке wip идет основная разработка приложения. На ветку master сливаются стабильные этапы развития проекта.
Для того чтобы активировать процесс непрерывного развертывания необходимо настроить и активировать систему CI/CD. В разработке программного обеспечения CI / CD или CICD могут относиться к объединенным методам непрерывной интеграции и непрерывной доставки и / или непрерывного развертывания.
В программной инженерии непрерывная интеграция (CI) -- это практика объединения рабочих копий всех разработчиков в общую магистраль несколько раз в день. Грэди Буч впервые предложил термин CI в своем методе 1991 года, хотя он не выступал за интеграцию несколько раз в день. Экстремальное программирование (XP) приняло концепцию CI и выступало за интеграцию более одного раза в день - возможно, десятки раз в день.
Непрерывная доставка (CD или CDE) -- это подход к разработке программного обеспечения, при котором команды производят программное обеспечение в короткие циклы, гарантируя, что программное обеспечение может быть выпущено надежно в любое время, а при выпуске программного обеспечения - вручную. Он направлен на создание, тестирование и выпуск программного обеспечения с большей скоростью и частотой. Этот подход помогает снизить стоимость, время и риск внесения изменений, допуская более постепенные обновления приложений в рабочей среде. Простой и повторяющийся процесс развертывания важен для непрерывной доставки.
СD отличается от непрерывного развертывания, аналогичного подхода, при котором программное обеспечение также производится в короткие циклы, но посредством автоматического развертывания, а не ручного развертывания.
Непрерывное развертывание (CD) -- это подход к разработке программного обеспечения, при котором функциональные возможности программного обеспечения часто предоставляются посредством автоматического развертывания. CD отличается от непрерывной доставки, аналогичного подхода, при котором функциональные возможности программного обеспечения также часто предоставляются и считаются потенциально способными к развертыванию, но фактически не развертываются.
После того как была произведена настройка CI/CD, при каждом новом коммите будет запускаться автоматическая сборка и тестирование приложения. Если изменения будут добавлены на ветку master, то произойдет сборка, тестирование и загрузка приложения на сервер. Благодаря процессам непрерывного развертывания, внесение изменений в проект проходит автоматическую проверку и загрузку на сервер.
Заключение
Целью дипломного проекта стала разработка сайта для Интернет-блоггинга. Для достижения цели был проведен аналитический обзор, в ходе которого были поставлены задачи, которые будет решать данный продукт, проведен анализ существующих решений, определены категории пользователей и бизнес-правила. В ходе проектирования была создана use-case диаграмма, выбраны средства разработки, спроектирована схема базы данных, а также произведено проектирование пользовательского интерфейса. Разработка программного продукта проходила в два этапа. Первым этапом была разработка серверной части, в которой содержится бизнес-логика и работа с базой данных. Вторым этапом была разработана клиентская часть, которая обрабатывает взаимодействие с пользователем. Тестирование программного продукта состояло из четырех частей: модульного тестирования серверной части, тестирования верстки клиентской части, системного тестирования, нагрузочного тестирования.
Разработанный программный продукт выполняет поставленные задачи. В разработанном сайте удачно сочетается интерфейс блога с его функциональностью и простотой использования. Разбитые по категориям статьи, просмотр «новинок» и самых популярных статей улучшат внешний вид сайта и его положение в поисковых системах. Для обеспечения защиты передаваемых данных используется 128-битный протокол безопасности SSL.
Список литературы
1. Н. А. Гайдамакин Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие. - М.: Гелиос АРВ, 2002. - 368 с., ил.
2. С.Ю. Ржеуцкая Базы данных. Теоретические и языковые основы: Учеб. пособие. - Вологда: ВоГУ, 2016. - 112 с.
3. Главное - Живой Журнал. [Электронный ресурс]. - Режим доступа: https://www.livejournal.com/.. - Заглавие с экрана.
4. Топ-10 лучших бесплатных платформ для создания блога. [Электронный ресурс]. - Режим доступа: http://www.optimization.com.ua/articles/top-free-online-blogging.html - Заглавие с экрана.
5. Spring Framework [Электронный ресурс]. - Режим доступа: https://spring.io/.. - Заглавие с экрана.
6. Hibernate (библиотека) [Электронный ресурс]. - Режим доступа: https://dic.academic.ru/dic.nsf/ruwiki/192528/.. - Заглавие с экрана.
7. Jetty - Servlet Engine [Электронный ресурс]. - Режим доступа: https://www.eclipse.org/jetty/.. - Заглавие с экрана.
8. GitHub: [Электронный ресурс]. URL: https://github.com/.
Размещено на Allbest.ru
Подобные документы
Анализ создания удобного инструмента, максимально упрощающего процесс осуществления заказа клиентом ювелирных изделий. Изучение принципов построения web-сайта, структуры базы данных, проектирования архитектуры приложения и пользовательского интерфейса.
дипломная работа [7,0 M], добавлен 11.02.2012- Создание защищенного приложения для ведения учета продаж и закупок, ориентированного на малый бизнес
Проектирование модели базы данных в соответствии с предметной областью "Торговля". Разработка архитектуры системы безопасности приложения по ведению базы данных. Реализация приложения, обеспечивающего учет продаж и закупок предприятия. Способы его защиты.
дипломная работа [2,5 M], добавлен 05.02.2017 Разработка архитектуры, отдельных модулей и сайта Интернет–системы электронной торговли отопительными приборами. Проектирование интерфейса; программная реализация, создание базы данных. Раскрутка сайта: подбор ключевых слов, анализ конкурентных запросов.
курсовая работа [3,4 M], добавлен 20.04.2012Проектирование web-сайта. Пользовательские персонажи, детальная концепция сайта. Разработка скелетной схемы страниц, информационной архитектуры. Создание прототипа web-сайта. Выбор среды разработки. CMS системы и их анализ. Стадии проектирования сайта.
курсовая работа [346,7 K], добавлен 18.09.2016Методы проектирования базы данных по заданной предметной области с использованием CASE-средств ER/Studio и СУБД MS Access. Формирование и связывание таблиц, ввод данных. Создание экранных форм, запросов, отчетов, меню приложения. Генерация приложения.
курсовая работа [884,0 K], добавлен 08.09.2010Создание Интернет-сайта для упрощения связи учителей-логопедов и родителей учащихся. Проектирование макета графического интерфейса. Выбор средств разработки программного продукта. Требования к функционалу ученика. Возможности интерфейса администратора.
дипломная работа [2,8 M], добавлен 01.04.2013Проектирование архитектуры и разработка веб-сайта для магазина строительных материалов. Анализ ключевых процессов работы интернет-магазинов, составление схем работы сервиса и схем товарооборота. Проектирование базы данных и бизнес-логики приложения.
курсовая работа [826,4 K], добавлен 09.09.2022Технологии создания web-страниц. Появление Active Server Pages. Разработка динамического web-сайта на asp.net. Создание дизайна и каркаса сайта с использованием стандартных HTML таблиц. Проектирование базы данных на основе ado.net и подключение к ней.
контрольная работа [2,4 M], добавлен 24.05.2019Разработка приложения, позволяющего автоматизировать документооборот предприятия по списанию основных средств. Мероприятия по защите и обеспечению целостности базы данных. Разработка клиентского приложения. Запросы к базе данных, руководство пользователя.
курсовая работа [700,0 K], добавлен 14.01.2015Анализ систем для создания сайта "Интеллектика". Архитектура и структура сайта; технические требования. Выбор базы данных. Процесс разработки приложения авторизации для просмотра закрытых научных проектов. Техническая документация для администратора.
дипломная работа [2,0 M], добавлен 19.01.2017