Автор: Пользователь скрыл имя, 18 Декабря 2012 в 17:28, курсовая работа
Целью данного курсового проекта является создание сервиса кулинарной книги с возможностью поиска блюд по ингредиентам. Для достижения данной цели необходимо решить следующие задачи:
1) изучить и проанализировать особенности процесса создания кулинарной книги;
2) описать модели, определить основные требования к разрабатываемой системе;
3) разработать сервис кулинарной книги с возможностью поиска блюд по ингредиентам.
ВВЕДЕНИЕ
В настоящее время все большое количество людей перестает питаться в фастфудах, а предпочитают здоровую и вкусную еду. Практически у каждой хозяйки дома есть кулинарная книга со множеством рецептов.
С развитием высоких технологий появилась потребность в электронных кулинарных книгах, рецепты в которые можно просто добавить, а не вписывать вручную. Также недостатком обычных кулинарных книг является трудность поиска рецепта по ингредиентам. Электронная книга будет лишена данных недостатков.
Целью данного курсового проекта является создание сервиса кулинарной книги с возможностью поиска блюд по ингредиентам. Для достижения данной цели необходимо решить следующие задачи:
1) изучить и проанализировать особенности процесса создания кулинарной книги;
2) описать модели, определить основные требования к разрабатываемой системе;
3) разработать сервис кулинарной книги с возможностью поиска блюд по ингредиентам.
1 ОСОБЕННОСТИ ПРОЦЕССА СОЗДАНИЯ КУЛИНАРНОЙ КНИГИ С ВОЗМОЖНОСТЬЮ ПОИСКА ПО ИНГРЕДИЕНТАМ
Создание кулинарной книги производится согласно методике указанием повара. Входными данными является список рецптов. В результате пользователь получает кулинарную книгу.
Контекстная диаграмма модели создания кулинарной книги представлена на рисунке 1.1.
Рисунок 1.1 – Контекстная диаграмма модели создания кулинарной книги
Процесс определения создания кулинарной книги состоит из следующих подпроцессов:
а) выделение категорий блюд;
б) разнесение блюд по категориям.
в) определение ингредиентов для каждого блюда
Данные подпроцессы представлены на рисунке 1.2.
Рисунок 1.2 – Декомпозиция блока “создание кулинарной книги ”
В рамках каждого подпроцесса выделяют определенные виды деятельности. В рамках подпроцесса «определение ингредиентов для каждого блюда» выделим следующие виды деятельности:
а) расчет минимально эффективного объема выпуска продукции:
б) нахождение отклонения от эффективного объема выпуска;
в) выдача рекомендаций.
Декомпозиция блока “
Рисунок 1.3 – Декомпозиция блока “ определение ингредиентов для каждого блюда ”
2 ПОСТАНОВКА ЗАДАЧИ И ОБЗОР МЕТОДОВ ЕЕ РЕШЕНИЯ
Сервис кулинарной книги с возможностью поиска блюд по ингредиентам должен обладать следующим функционалом:
а) возможность работы с категориями блюд: добавлять категорию, редактировать категорию, удалять категорию, просматривать все категории блюд .
б) возможность работы с блюдами: добавлять блюдо, редактировать блюдо, удалять блюдо, просматривать все блюда, добавлять ингредиенты в блюда.
в) возможность работы с ингредиентами: добавлять ингредиенты, редактировать ингредиенты, удалять ингредиенты, просматривать все ингредиенты .
г) возможность поиска блюд по ингредиентам .
Среди существующих сервисов кулинарных книг можно выделить следующий: Живая кулинарная книга/livecookbook.ru. Основные возможности сервиса:
− Хранение рецептов, привязка к категориям, кухням и др.;
− Создание своих кулинарных книг из любых рецептов сайта;
− Список покупок с возможность автоматического добавления ингредиентов рецепта в него;
− Список желаний, в котором хранятся рецепты, которые обязательно надо будет приготовить;
− Закладки, в которых удобно хранить ссылки на понравившиеся рецепты с других сайтов;
− История работы с сайтом, чтобы легко можно было найти «тот рецепт, который вчера так понравился»;
− Поиск рецептов, включая «холостяцкий» — когда рецепты выбираются исходя из имеющихся в холодильнике ингредиентов;
− Пользовательский раздел «вопросы и ответы» — место, где кулинары делятся своим опытом;
Скриншот программы представлен на рисунке 2.1
Рисунок 2.1 – Скриншот программы
3 СПЕЦИФИКАЦИЯ СИСТЕМЫ
Диаграмма вариантов использования сервиса кулинарной книги с возможностью поиска блюд по ингредиентам представлена на рисунке 3.1.
Рисунок 3.1 – Диаграмма вариантов использования
Пользователь системы может работать с категориями: просматривать, добавлять, удалять, изменять информацию; с блюдами: просматривать блюда, добавлять, редактировать, удалять, просматривать ингредиенты по каждому блюду, добавлять или удалять список ингредиентов. Также пользователь системы может осуществить поиск блюд по входящим в него ингредиентам.
4 МОДЕЛИ ПРЕДСТАВЛЕНИЯ СИСТЕМЫ И ИХ ОПИСАНИЕ
4.1 Диаграмма последовательностей
Диаграмма последовательностей сервиса кулинарной книги с возможностью поиска блюд по ингредиентам представлена на рисунке 4.1
Рисунок 4.1 – Диаграмма последовательностей
Диаграмма последовательностей
отображает процесс взаимодействия
компонентов системы при
4.2 Диаграмма состояний
На диаграмме состояний показаны переходы системы из состояния в состояние во время процесса добавления нового блюда. Диаграмм состояний представлена на рис. 4.2. На диаграмме изображено, что после запуска приложения отображается список категорий, после выбора нужной категории отображается список блюд данной категории. При выборе добавления нового блюда необходимо ввести название блюда и рецепт, после этого можно добавить ингредиенты в блюдо и сохранить блюдо.
Рисунок 4.2 – Диаграмма состояний системы
4.3 Диаграмма классов
На диаграмме классов представлены основные классы системы: Entity class, Session Façade, Business Delegate, Servlet. Диаграмма классов представлена на рис. 4.3
Рисунок 4.3 – Диаграмма классов
4.4 Диаграмма компонентов
Диаграмма компонентов позволяет определить архитектуру разрабатываемой системы, устанавливая зависимости между компонентами. Диаграмма компонентов системы представлена на рисунке 4.4.
Рисунок 4.4 – Диаграмма компонентов системы
Классы системы расположены в пакетах, в зависимости от их назначения.
4.5 Диаграмма развертывания
Диаграмма развертывания сервиса кулинарной книги с возможностью поиска блюд по ингредиентам изображена на рисунке 4.5.
Рисунок 4.5 – Диаграмма развертывания системы
5 ИНФОРМАЦИОННАЯ МОДЕЛЬ СИСТЕМЫ И ЕЁ ОПИСАНИЕ
После анализа предметной области было принято решение выделить 4 сущности: Категории, Ингредиенты, Блюда и БлюдаИнгредиенты. В таблице “Категории” были выделены следующие атрибуты:
− id (первичный ключ, целое число)
− name(название категории)
В таблице “Блюда” были выделены следующие атрибуты:
− id (первичный ключ, целое число)
− name(название блюда, текстовый тип данных)
− recept(рецепт, текстовый тип данных)
− categoryId(номер категории, целое число, внешний ключ)
В таблице “Ингредиенты” были выделены следующие атрибуты:
− id (первичный ключ, целое число)
− name(название ингредиента, текстовый тип данных)
В таблице “БлюдаИнгредиенты” были выделены следующие атрибуты:
− id (первичный ключ, целое число)
− bludoId(номер блюда, внешний ключ)
− ingredientId(номер ингредиента, внешний ключ
Между сущностями “Категории” и “Блюда” существует связь один-ко-многим. Между сущностями “Блюда” и “Ингредиенты” существует связь многие-ко-многим (1 блюдо может состоять из нескольких ингредиентов и один ингредиент может быть в нескольких блюдах). Логический и физический уровень модели, приведенной к третьей нормальной форме показан на рисунках 5.1 и 5.2
Рисунок 5.1– Логический уровень информационной модели
приведенной к третьей нормальной форме
Рисунок 5.2– Физический уровень информационной модели
приведенной к третьей нормальной форме
6 ОПИСАНИЕ АЛГОРИТМОВ РАБОТЫ ПРОГРАММЫ
Алгоритм работы программы
можно получить, если проанализировать
блок-схему обобщенного
Рассмотрим алгоритм программного модуля удаления категории:
1) Для удаления информации
пользователь выбирает нужную
строку и нажимает на ссылку “
2) Логика приложения определяет выбранную строку и передает делегату номер данной строки с требованием удаления. Делегат вызывает функцию соответствующего фасада для удаления нужной строки.
3) БД ищет категорию с таким номером и удаляет.
4) Делегат запрашивает у фасада обновленный список категорий и передает их сервлету. Фасад в свою очередь получает список категорий из БД.
5)Обновленный список
категорий отображается на XHT
7 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
При запуске приложения отображается список категорий блюд (рис. 7.1).
Рисунок 7.1– Список категорий блюд
Для редактирования категории необходимо нажать ссылку “редактирования”, а для удаления категории – ссылку “удалить”. Если пользователь нажмет ссылку “блюда”, откроется список блюд выбранной категории. Отображается название блюд, рецепт приготовления. Также можно рассмотреть ингредиенты по каждому блюду.
Рисунок 7.2– Список блюд
Если пользователь выберет в меню “Ингредиенты”, на экране отобразится список ингредиентов. Можно добавить новый ингредиент, изменить ингредиент, удалить ингредиент (7.3).
Рисунок 7.3– Ингредиенты
При нажатии на ссылку “редактировать” открывается страница редактирования ингредиента (рис. 7.4)
Рисунок 7.4– Редактирование ингредиента
Для того чтобы выполнить поиск блюд по ингредиентам, необходимо нажать ссылку “поиск по ингредиентам” и ввести через пробел список ингредиентов (рис. 7.5).
Рисунок 7.5– Поиск блюд по ингредиентам
8 РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ РАЗРАБОТАННОЙ
СИСТЕМЫ И ОЦЕНКА ВЫПОЛНЕНИЯ ЗАДАЧ
При тестировании сервиса кулинарной книги с возможностью определения блюд по ингредиентам не было найдено каких-либо недостатков программы: система быстро реагирует на пользовательские запросы, не было обнаружено случаев некорректной работы системы. Система обладает понятным и удобным интерфейсом.
С любой страницы приложения можно вернуться на главную страницу или перейти в один из разделов: модуль работы с категориями, модуль работы с блюдами и модуль работы с ингредиентами.
Система может быть использована как помощник хозяйки.
Система является клиент-сервером. Серверная часть разработана на языке Java с помощью технологии EJB 3.0. Данная технология позволяет разрабатывать распределенные приложения, отличающиеся слабой зависимостью компонентов между собой. Серверная и клиентская часть могут работать на разных компьютерах. Клиентская часть приложения разработана в веб-архитектуре. Взаимодействие между пользователем и клиентской частью происходит с помощью сервлета. Сервлет получает информацию с сервера, трансформирует xsl файлы и выводит информацию в браузер.
ЗАКЛЮЧЕНИЕ
В ходе выполнения данного курсового проекта был изучен процесс создания кулинарной книги с возможностью поиска блюд по ингредиентам. Определено, что для создания кулинарной книги необходимо иметь информацию о рецептах, ингредиентах для приготовления блюда.
В результате анализа предметной области было принято решение разработать сервис кулинарной книги с возможностью поиска блюд по ингредиентам. Для его разработки был выбран язык программирования Java, СУБД − Sybase SQL Anywhere 9.0, технология EJB 3.0. Было решено использовать следующую схему взаимодействия компонентов приложения : БД –Сущностные классы – Фасад – Бизнес делегат –Сервлет –Браузер.
Серверная часть приложения запускается с помощью сервера Glassfish , клиентская часть приложения (web-часть) с помощью сервера tomcat.
Можно сказать, что полученный
программный продукт является уникальным
и соответствует всем необходимым
параметрам. Наличие аналитической
составляющей делает разработанную
систему действительно полезной
и при незначительной доработке ее можно использовать
в реальных условиях. Возможно усовершенствование
программы путем улучшения интерфейса,
введением дополнительных функций и расширением
сферы применения проекта.