Программная система «Ресторан

advertisement
Выполнила:
ст. гр. ИСТ-107
Дергунова О.А.
Обзор предметной области
В настоящее время одной из наиболее динамично развивающихся
отраслей торговли является общественное питание, что стало причиной
достаточно жесткой конкуренции между кафе и ресторанами. В наше
время клиенты очень взыскательны и предъявляют самые высокие
требования
к
дополнительные
уровню
затраты
обслуживания,
для
что
повышения
заставляет
уровня
идти
на
сервиса
и
предоставления клиенту дополнительных услуг.
Существует множество кулинарных сайтов, благодаря
которым
достаточно легко ознакомиться с составом и способом приготовления
любого блюда. В нашей стране имеется огромное количество ресторанов,
занимающихся организацией различных праздников, таких как: День
рождения, Новый год, Рождество, свадебное торжество
и другие
значимые события в жизни человека.
У программной системы «Ресторан» следует отметить одну очень
удобную особенность. Зачастую людям необходимо зарезервировать
«столик» в ресторане для проведения какого-либо мероприятия. Для
этого достаточно зайти на сайт и выбрать место, время и состав блюд.
Программная система «Ресторан» предоставляет
пользователям
системы услуги по поиску нужных блюд. Вы можете подобрать
подходящее блюдо по базе сайта.
В данной программной системе очень практично организован поиск
нужных блюд. Пользователь вводит в строку поиска тот ингредиент,
который его интересует, и ему предоставляются все блюда, в составе
которых данный ингредиент присутствует. Также пользователь может
1
осуществить поиск, исходя из стоимости блюда. Эти критерии поиска
значительно сокращают время нахождения нужного блюда.
Заполнив необходимую информацию о себе, любой посетитель
легко сможет оформить заказ интересующих его блюд с минимальными
затратами времени.
Благодаря сайту программной системы «Ресторан» людям стало
намного проще подготовиться к проведению различных банкетов; найти
необходимые блюда и затем оформить их заказ.
Программная система «Ресторан»
Задача данного курсового проекта заключается в разработке
программной системы «Ресторан».
Ресторан «Sunshine» специализируется в предоставлении услуг по
заказу различных блюд. В данном ресторане имеется возможность
зарезервировать
место
для
проведения
какого-либо
мероприятия.
Разрабатываемая программная система является средством автоматизации
данного ресторана.
Цели создания системы
Данная программная система дает возможность клиентам оформлять
заказы через Интернет и предоставляет им всю необходимую интересующую
их информацию.
Программная система создается с целью обеспечения удобства и
быстроты работы ресторана.
Требования к системе
Требования к системе в целом:
1) требования к структуре и функционированию системы:
- система должна быть совместима с операционными системами
Windows 2000, Windows XP и Windows Vista;
- система должна быть совместима с различными браузерами;
- система должна быть совместима с Microsoft SQL Server 2000 и выше;
2
- система должна быть ориентирована на платформу Microsoft .NET.
2) требования к численности и квалификации персонала системы и
режиму его работы:
- с системой должны работать пользователи любого уровня подготовки.
3) требования к защите информации от несанкционированного доступа:
- при входе в систему должны проверяться данные пользователя.
Требования к информационному обеспечению:
Данные, помещаемые в систему, хранятся в специальной базе данных.
БД содержит необходимые справочники, которые используются для поиска
информации в системе.
Занесение данных в систему обеспечивается с помощью экранных
форм. Изменение данных производится пользователем в нужный момент
времени.
Характеристика
системы:
автоматизация
работы
Ресторана
осуществляет
поддержку
«Sunshine».
Разрабатываемая
программная
система
различных типов пользователей; вывод списка наиболее популярных блюд;
возможность оформить заказ блюда через Интернет. Программная система
Ресторан «Sunshine» хранит список предоставленных заказов; информацию о
заказчиках; данные о блюдах.
Функции программной системы:
 поддержка (авторизация) различных типов пользователей (менеджер,
заказчик);
 поддержка справочника блюд, ингредиентов (менеджер);
 план заказа блюд (аналог корзины);
 поиск блюд по следующим критериям:
1. вид блюда;
2. стоимость блюда;
3. состав блюда;
3
 резервирование времени, места, состава (система/ заказчик).
Словарь предметной области:
Заказ - запрос клиента изготовителю выполнить определенную
услугу.
Клиент
-
потенциальный
покупатель,
пользователем программной системы
который
является
с возможностью оформления
заказа.
Менеджер – ответственное лицо, отвечающее за корректность
хранимой в БД информации (изменение, добавление).
На рис.1 представлена диаграмма классов концептуального
уровня.
class классы концепт уровень
Пользователь
+
+
Авторизоватьс я() : void
Ознакомитьс я с предос тавляемыми ус лугами() : void
Заказчик
-
Идентификатор заказчика: int
ФИО: char
Номер телефона: char
Адрес : char
+
+
+
+
+
Зарегис трировватьс я() : void
Найти блюдо() : void
Выбрать вид ус луги() : void
Внес ти данные для оформления заказа() : void
Сделать заказ() : void
Ингредиент
-
Идентификатор ингредиента: int
Название ингредиента: int
Работник кухни
-
Блюдо
-
Менеджер
-
идентификатор менеджера: int
логин: char
пароль: char
+
+
Прос мотреть имеющиес я с правочники() : void
Внес ти изменения в с правочники() : void
Идентификатор блюда: int
Название блюда: char
Тип блюда: char
Стоимос ть блюда: double
Порция блюда: char
Идентификатор ингредиента: int
Идентификатор работника кухни: int
Страна: char
*
*
1
*
*
*
Столик
Заказ
-
Идентификатор работника кухни: int
ФИО: char
Опыт работы: char
Идентификатор заказа: int
Идентификатор заказчика: int
Идентификатор блюда: int
Дата: char
-
Идентификатор с толика: int
Идентификатор блюда: int
Статус : boolean
Время: char
Рис.1 Диаграмма классов концептуального уровня
Пользователи подразделяются по ролям на: менеджеров и
заказчиков. Для них определены следующие функции:
Менеджер:
4
- авторизуется;
- просматривает все предоставляемые услуги;
- просматривает имеющиеся справочники;
- вносит изменения в справочники.
Заказчик:
- регистрируется;
- осуществляет поиск блюд по различным критериям;
- просматривает все предоставляемые услуги;
- выбирает вид услуги;
- оформляет заказ.
На рис.2 проиллюстрирована диаграмма прецедентов взаимодействия с
системой.
5
analysis Business Process Model
Просмотреть
информацию в
имеющихся
справочниках
Менеджер
Внести изменения в
справочники
«extend»
Войти в систему
Ознакомиться с
предоставляемыми
услугами
Пользователь
Заказчик
Зарегистрироваться
Найти блюдо по
стоимости/виду/составу
блюда
Выбрать вид услуги
(зарезервировать
"столик", время;заказать
блюдо)
«include»
Сделать заказ
«include»
Ввести
пользовательские
данные
Рис.2 Диаграмма прецедентов
Распределение требований по субъектам и прецедентам
Табл.1. Распределение требований по субъектам и прецедентам
№
Требование
1
Пользователь заходит на сайт ресторана
2
Любой пользователь имеет возможность
зарегистрироваться на сайте.
Заказчик
Зарегистрироваться
3
Предоставляемые виды услуг доступны всем
Заказчик,
Ознакомиться с
предоставляемыми
Субъект
Прецедент
Заказчик,
Войти в систему
Менеджер
6
пользователям
Менеджер
услугами
4
У заказчика имеется возможность найти блюдо по
различным критериям
Заказчик
Найти блюдо по
стоимости/виду/состав
у
5
Заказчик выбирает вид услуги
Заказчик
Выбрать вид услуги
6
Заказчик имеет возможность оформить заказ на сайте
Заказчик
Сделать заказ
7
Заказчик должен внести данные для оформления заказа
Заказчик
Ввести личные данные
для оформления заказа
8
Менеджер просматривает и анализирует все
имеющиеся справочники
Менеджер
Просмотреть все
имеющиеся
справочники
9
Менеджер изменяет данные в справочниках, если это
необходимо
Менеджер
Внести изменения в
справочники
Прецедент «Войти в систему»
1.Краткое Описание
Прецедент отражает процесс входа пользователя в систему. Актер – Заказчик,
Менеджер.
2. Поток Событий
Основной Поток: Вход в систему
1. Пользователь заходит на сайт ресторана;
2. Система открывает главную страницу;
3. Пользователь вводит учетные данные.
Альтернативный Поток:
1. Пользователь ввел неверные данные, будет выслано сообщение об ошибке;
2. В системе произошел сбой, будет отображено сообщение об ошибке.
3. Предусловие
Пользователь должен набрать адрес сайта.
4. Постусловие
Пользователь авторизован
5. Точки расширения
Нет
7
Прецедент «Зарегистрироваться»
1.Краткое Описание
Прецедент отражает процесс регистрации пользователей. Актер – Заказчик.
2. Поток Событий
Основной Поток: Регистрация
1. Заказчик вводит личные данные;
2. Нажимает соответствующую кнопку для отправки данных.
Альтернативный Поток:
1. Если были введены не все данные, будет отображено соответствующее
уведомление;
2. В системе произошел сбой, будет выведено сообщение об ошибке.
3. Предусловие
Пользователь должен зайти на сайт.
4. Постусловие
Пользователь зарегистрирован.
5. Точки расширения
Нет.
Прецедент «Ознакомиться с предоставляемыми услугами»
1.Краткое Описание
После входа в систему предоставляются имеющиеся услуги. Актер – Заказчик,
Менеджер.
2. Поток Событий
Основной Поток: Просмотр услуг
Пользователь просматривает все предоставляемые услуги
Альтернативный Поток:
Если в системе произошел сбой, будет выслано соответствующее сообщение об
ошибке.
3. Предусловие
Пользователь должен зайти на сайт.
4. Постусловие
8
Пользователь переходит на следующую страницу или покидает систему, используя
соответствующие ссылки навигации.
5. Точки расширения
Нет.
Прецедент «Найти блюдо по стоимости/виду/составу блюда»
1.Краткое Описание
После входа в систему имеется возможность осуществить поиск блюда. Актер –
Заказчик.
2. Поток Событий
Основной Поток: Поиск блюда
1. Пользователь находится на странице поиска блюда по критериям;
2. Пользователь вводит критерий поиска.
Альтернативный Поток:
Если ничего не найдено, то будет выслано соответствующее уведомление.
3. Предусловие
Пользователь должен войти в систему.
4. Постусловие
Блюдо найдено.
5. Точки расширения
Нет.
Прецедент «Сделать заказ» («Выбрать вид услуги», «Ввести пользовательские
данные»)
1.Краткое Описание
У клиента имеется возможность оформить заказ при желании. Актер – Заказчик.
2. Поток Событий
Основной Поток: Оформление заказа.
1. Пользователь выбирает услугу;
2. Переходит на страницу оформления заказа;
3. Вводит данные, необходимые для оформления заказа;
4. Подтверждает оформление заказа.
9
Альтернативные Потоки:
1. Пользователь заполнил не все необходимые для оформления заказа поля, будет
выслано соответствующее уведомление;
2. Данное блюдо не подлежит заказу, будет выслано соответствующее
уведомление;
3. Не имеется в наличии свободных столиков для заказа, будет выслано
соответствующее уведомление;
4. Произошел сбой в системе, будет отображено сообщение об ошибке.
3. Предусловие
Выбрать вид услуги.
4. Постусловие
Пользователь делает заказ.
5. Точки расширения
Нет.
Прецедент «Просмотреть информацию в имеющихся справочниках»
1.Краткое Описание
Просмотр и анализ данных во всех справочниках. Актер – Менеджер.
2. Поток Событий
Основной Поток: Просмотр информации в справочниках
1. Просмотр всей информации в справочниках.
Альтернативный Поток:
Если обнаружены проблемы с системой, то будет выведено сообщение об ошибке.
3. Предусловие
Выбрать необходимый справочник.
4. Постусловие
Анализ информации, имеющейся в справочниках.
5. Точки расширения
Если необходимо, имеется возможность внести изменения в справочники.
Прецедент «Внести изменения в справочники»
1.Краткое Описание
10
Изменение информации в справочниках, если в этом имеется необходимость. Актер –
Менеджер.
2. Поток Событий
Основной Поток: Редактирование
1.Редактирование информации в справочнике (удаление записи; добавление
данных; изменение данных);
2. Сохранение изменений.
Альтернативный Поток:
Если обнаружены проблемы с системой, то будет выведено сообщение об ошибке.
3. Предусловие
Выбрать нужный справочник
4. Постусловие
Менеджер успешно изменил данные в справочниках.
5. Точки расширения
Нет.
На рис. 3 показана диаграмма последовательности для прецедента
«Внести изменения в справочники».
sd Business Process Model
Менеджер
Интерфейс
Controller
Прос мотреть имеющиес я с правочники()
Справочники(блюдо,заказы,
с толик, работник
кухни)
Show
dictionarys()
Dictionarys()
Изменить данные в с правочнике()
Choose dictionary()
Change data()
New Data()
Справочник с
измененными
данными()
Рис. 3 Диаграмма последовательности для прецедента «Внести изменения в справочники»
11
На рис. 4 представлена диаграмма последовательности для прецедента
«Сделать Заказ».
sd Business Process Model
Заказчик
AddOrder
Controller
Order
Dish
Place
Выбрать блюдо()
ChooseDish()
Dishes()
:Dishes()
Выбрать столик и время
резервирования()
ChoosePlace()
Place()
Place()
Ввести данные для
оформления заказа()
Сделать заказ()
MakeOrder()
AddOrder()
Record()
Список заказов()
Рис. 4 Диаграмма последовательности для прецедента «Сделать Заказ»
12
На рис. 5 продемонстрирована диаграмма последовательности для
прецедента «Найти блюдо».
sd Business Process Model
Заказчик
Интерфейс
Controller
Dish
Найти блюдо()
FindDish()
GetReults()
Results()
Найденные блюда()
Рис.5 Диаграмма последовательности для прецедента «Найти блюдо»
Сущность Manager - содержит информацию о менеджерах ресторана.
Атрибуты сущности:
char Login – логин менеджера;
char Рassword – пароль менеджера.
Сущность
Dish - содержит информацию о
блюдах, имеющихся в
ресторане.
Атрибуты сущности:
Int Id_dish - идентификатор блюда;
сhar Name_dish – название блюда;
сhar Country – страна-родоначальник блюда;
Ingredient
Id_ingredient
–
идентификатор
ингредиента,
используемого в блюде;
double Price – стоимость блюда;
char Portion – порция блюда;
char Type_dish – вид блюда;
13
Cooker
Id_cooker
–
идентификатор
работника
кухни,
занимающегося приготовлением данного блюда;
Сущность Ingredient – содержит информацию об ингредиентах, входящих
в состав блюд.
Атрибуты сущности:
int Id_ingredient – идентификатор ингредиента;
char Name_ingredient – название ингредиента;
Сущность Cooker – содержит информацию о работниках кухни ресторана.
Атрибуты сущности:
int Id_cooker – идентификатор работника кухни;
char Name_cooker – ФИО работника кухни;
char Experience – опыт работы работника кухни;
Сущность Customer – содержит информацию о заказчиках блюд,
столиков в ресторане.
Атрибуты сущности:
int Id_customer– идентификатор заказчика;
char Name_customer – ФИО заказчика;
char Address – адрес заказчика;
char Number_telephone – номер телефона заказчика;
Сущность Orders – содержит информацию о заказах;
Атрибуты сущности:
int Id_order – идентификатор заказа;
Dish Id_dish – идентификатор блюда;
Customer Id_customer – идентификатор посетителя;
char Date – дата заказа.
Сущность Place – содержит информацию о «столиках» ресторана.
Атрибуты сущности:
int Id_place – идентификатор «столика» в ресторане;
Dish Id_dish – идентификатор блюда;
boolean Status – указывает статус: занят «столик» или свободен;
14
double Time – указывает время.
На рис. 6 представлена диаграмма классов
class Data Model
Dish
Cooker
*
-
Id_cooker: int
Name_cooker: char
Experience: char
-
*
Ingredient
Country: char
Id_cooker: Cooker
Id_dish: int
Id_ingredient: Ingredient
Name_dish: char
Portion: char
Price: double
Type_dish: char
1
*
Id_customer: int
1
Name_customer: char
Address: char
Number_telephone: char
Orders
*
-
Id_dish: Dish
*
Id_order: int
Id_customer: Visitor
Date: char
*
Place
-
*
-
Id_ingredient: int
Name_ingredient: char
*
*
Customer
-
Id_place: int
Status: boolean
Time: double
Id_dish: Dish
Manager
1
-
Login: char
Password: char
Рис.6 Диаграмма классов
Для избавления от связи «многие-ко-многим» между сущностями
Cooker и Dish; Dish и Place; Dish и Orders необходимо создать
промежуточные таблицы.
15
Download