Skip to content

14. Пояснительная записка EJB

AnastasiyaTarasova edited this page May 25, 2016 · 1 revision

1. Анализ задания

Разрабатываемая информационная система "Порта экскурсий" позволяет автоматизировать процесс мониторинга спроса на экскурсии.

В информационной системе предусмотрены следующие РОЛИ:

  1. Администратор - человек, управляющий содержимым сервиса;
  2. Экскурсовод- проведение мероприятий;
  3. Клиент - выбор и заказ персонажа.

ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ: 1. для АДМИНИСТРАТОРА

  • Создание и удаление клиента и экскурсовода;

2. для КЛИЕНТА

  • Просмотр экскурсий;
  • Оформление заявки.

3. для ЭКСКУРСОВОДА

  • Создание экскурсии
  • Просмотр количества предварительных заказов

Обобщенная диаграмма прецедентов

ДИАГРАММЫ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ для разных ролей:

Клиент:

Экскурсовод:

Администратор:

Текстовое описание вариантов использования с альтернативами

1. Клиент

1.1 Регистрация нового пользователя

  • Пользователь вводит логин и пароль;
  • После проверки регистрация завершается успешно;
  • _Альтернатива:_пользователь с таким логином уже существует в системе или введен недопустимый пароль (менее четырех символов). Система предложит ввести иной логин или пароль.

1.2 Авторизация пользователя

  • Пользователь вводит свои регистрационные данные;
  • Данные проходят проверку, авторизация завершается успешно, затем система переходит на страницу пользователя;
  • Альтернатива: данные не проходят проверку (например, если такого пользователя не существует в базе). Система предложит заново ввести логин и пароль.

1.3 Заполнение личной информации

  • Авторизованный пользователь, заходит на свою страницу;
  • Пользователь нажимает "изменить личные данные", после этого система переводит его на страницу редактирования личных данных;
  • Пользователь вводит информацию о себе(Имя, фамилия, пол, возраст, город по которому он проводит экскурсии и т.д.), а затем подтверждает ввод данных;
  • Измененные данные сохраняются и выводится сообщение "данные успешно изменены".

1.4 Просмотр информации об экскурсии

  • Система выводит информацию об экскурсиях;
  • Пользователь задает условия поиска (по названию, цене и др.);
  • Пользователь имеет возможность отсортировать результаты поиска.

1.5 Оформление заказа

  • Клиент просматривает и выбирает экскурсию;
  • Клиент указывает дату и время выполнения заказа;
  • Клиент указывает продолжительность экскурсии;
  • Клиент указывает место отправной точки, куда необходимо прибыть экскурсоводу;
  • Клиент подтверждает окончание оформления заявки.

2. Экскурсовод

2.1 Регистрация экскурсовода

  • Ввод логина и пароля;
  • После проверки данных регистрация успешно завершается;
  • _Альтернатива:_пользователь с таким логином уже существует в системе или введен недопустимый пароль (менее четырех символов). Система предложит ввести иной логин или пароль.

2.2 Авторизация экскурсовода

  • Администратор вводит свои регистрационные данные;
  • Данные проходят проверку, авторизация завершается успешно, затем система переходит на страницу администратора;
  • Альтернатива: данные не проходят проверку (например, если такого пользователя не существует в базе). Система предложит заново ввести логин и пароль.

2.3 Просмотр информации об экскурсии

  • Система выводит информацию об экскурсиях;
  • Пользователь задает условия поиска (по названию, цене и др.);
  • Пользователь имеет возможность отсортировать результаты поиска.

2.4 Просмотр и изменение статуса заказов

  • Просмотр заказов, имеющихся у экскурсовода на данных момент;
  • Изменение статуса заказа (Принят/Не принят);
  • Удаление заказа, если заказ имеет статус "Выполнен".

3. Администратор

3.1 Регистрация

  • Ввод логина и пароля;
  • После проверки данных регистрация успешно завершается;
  • _Альтернатива:_пользователь с таким логином уже существует в системе или введен недопустимый пароль (менее четырех символов). Система предложит ввести иной логин или пароль.

3.2 Авторизация администратора

  • Администратор вводит свои регистрационные данные;
  • Если данные проходят проверку, авторизация завершается успешно и система переходит на страницу администратора;
  • Альтернатива: данные не проходят проверку (например, если такого пользователя не существует в базе). Система предложит заново ввести логин и пароль.

3.3 Действия с экскурсиями

  • После авторизации, администратор может выполнить следующее: добавить новую экскурсию или изменить уже существующую;
  • Задать условия поиска, очуществить сортировку и фильтрацию.

3.4 Действия с заказами

  • Просмотр заказов, имеющихся на данных момент;
  • Изменение статуса заказа (Принят/Не принят);
  • Удаление заказа, если заказ имеет статус "Выполнен".

2.Реализация индивидуального задания

2.1 Объектно-ориентированное проектирование

Разработав и подробно описав варианты использования, разработав как статическую, так и динамическую объектные модели предметной области, необходимо определить используемые инструменты в проекте.

В качестве СУБД было решено использовать MySql, так как это открытая, бесплатная и популярная СУБД.

В качестве решения для организации бизнес-логики было решено использовать сеансовые компоненты без состояния (Stateless Session Beans), так как все временные данные можно хранить в БД, при этом в дальнейшем приложение может легко масштабироваться. Также Stateless Session Beans проще в использовании.

Так как для указанного решения уже была разработана БД, то слой доступа к данным был автоматически сгенерирован при помощи IDE IntelliJ IDEA. Для каждой полученной сущности также были сгенерированы локальные фасады (Stateless Session Beans). Вся необходимая бизнес логика, которой не хватало была добавлена в указанные классы. Было решено не создавать удаленный интерфейсов для бизнес-логики. Весь компоненты слиты в один проект. Это позволяет получить доступ к сущностям из более высокоуровневых слоев. Это удобно, например, в случае отображения данных или при подготовке создания объекта.

2.2 Описание программы

В ходе разработки приложения было решено реализовать GUI при помощи JQuery. Управление страницами осуществляется при помощи сервлета.

2.3 Текст программы

Все исходники программы расположены в репозитории по адресу: https://github.com/AnastasiyaTarasova/excursions

2.4 Методика и результаты тестирования

Для тестирования web-приложениz использовались такие браузеры как Google Chrome, Mozilla и Opera. Тестирование проводилось вручную. В качестве основы были использованы use cases из главы 1. Отдельно тестировалась корректность авторизации и ограничения доступа, а также устойчивость приложения к некорректным данным. Тестирование показало, что разработанная реализация удовлетворяет основным требованиям.

2.5 Инструкция системного администратора

Для работы приложения понадобится СУБД MySql.

Для развертки приложения необходим GlassFish Server версии 4.1.1.

Запуск домена:

asadmin start-domain domain1

Далее скачать исходники проекта с GitHub:

`git clone https://github.com/AnastasiyaTarasova/excursions/tree/master/excursionEJB

Собрать проект:

mvn package

Развернуть приложение не сервере GlassFish:

asadmin deploy excursions.war

Также приложение можно развернуть используя удаленный интерфейс GlassFish.

2.6 Инструкция пользователя

Пользовательский интерфейс предусмотрен для трех ролей. Страница администратора:

Страница экскурсовода:

Страница клиента:

Вывод

В ходе разработки информационной системы "Портал экскурсий" были рассмотрены все роли пользователей. Для каждой из ролей были определены функциональные требования, после чего разработаны и описаны варианты использования.

Далее, разработав и подробно описав варианты использования, разработав как статическую, так и динамическую объектные модели предметной области,был спроектирован слой предметной области. Для организации бизнес-логики разрабатываемого приложения была изучена и использована спецификация Enterprise JavaBeans (EJB).

В дальнейшем расширение системы не составит труда. Это обусловлено подходом к проектированию приложения, разделению бизнес-логики, работу с данными и преставление на разные слои.

Clone this wiki locally