Приложение для автоматизации работы ресторана
Возможности приложения, обоснование необходимости разработки. Требования к пользовательскому интерфейсу, выбор базового программного обеспечения. Шаблоны и алгоритмы использованные в проекте, руководство пользователя. Особенности внедрения веб-приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 14.12.2019 |
Размер файла | 5,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Здесь мы видим основные компоненты меню: «Интерактивное меню», «Мои заказы», «Избранные кафе», «Корзина», «Настройки».
Для более детального рассмотрения экранных форм было принято решение выбрать интерактивное меню, так как оно ярко демонстрирует работы всего приложения. Итак, допустим пользователь выбрал какое-то кафе ( по договоренности с разработчиком веб-сервера, было принято решение создать свое виртуальное кафе, которое имитировало интерактивное меню настоящего кафе.), он попадает на экран списка категорий:
Рисунок 8 - Снимок экрана «Список категорий»
Здесь мы видим информацию о списки категорий меню выбранного ранее кафе. Далее выбираем нужную нам категорию, например закуски. Для этого нажимаем на соответствующую надпись. В результате пользователь попадает на экран «Список блюд».
Рисунок 9 - Снимок экрана «Список блюд»
Здесь представлен список блюд данной категории. Компонент данного списка содержит название блюда и его цену. Цена выдела полужирным шрифтом для наглядности. Дальше, чтобы выбрать приглянувшиеся нам блюдо необходимо нажать на текстовку с названием блюда. В результате пользователь попадет на экран с детальной информацией о выбранном блюде:
Рисунок 10 - Снимок экрана «Подробнее»
На данном экране отображается детальная информация о блюде. В эту информацию входят такие аспекты: «Название», «Описание», «Выход в граммах», «Цена» и состав. Стоит отметить, что существует определенные особенности отображения информации на этом экране:
Во-первых, это отображение информации на экране в зависимости от ориентации устройства. Существует 2 вида ориентации Вертикальная и горизонтальная - то есть когда телефон расположен прямо и перевернут. Ориентацию устройства в смартфоне определяет специальный датчик - гироскоп. Так, как компоненты намакета при разной ориентации будут выглядеть по-разному надо это учесть при разработке. Ниже представлено как реализовано отображение одного и того же экрана при разных ориентациях.
Рисунок 11 - Снимок экрана «Подробнее» при вертикальной ориентации.
Рисунок 12 - Снимок экрана «Подробнее» при вертикальной ориентации.
Как мы видим при смене ориентации контент не теряется.
Следующим, не менее важным моментом, является ситуация, когда на экране не достаточно места, чтобы разместить весь контент. Специально для этого в Androidсуществует такой элемент как NestedScrollView. Компонент экрана, который обернут в этот View, становится прокручиваемым элементом. Это означает пользователь может при помощи зажатия пальцем прокручивать страницу с контентом.Ниже продемонстрировано как реализован данный функционал:
Рисунок 13 - Снимок экрана «Подробнее» до прокрутки
Для начала мы продемонстрировали экран «Подробнее» без прокрутки. Сразу заметно, что часть перечисления ингредиентов не помещается на экране SonyXperiaM5. Чтобы увидеть скрытые за кнопкой ингредиенты, пользователю необходимо прокрутить страницу с контентом. Вот что из этого получается:
Рисунок 14 - Снимок экрана «Подробнее» после Прокрутки
Как мы видим, недостающая информация появилась, однако нам пришлось пожертвовать верхней частью надписи «Название». Для того чтобы ее снова увидеть нам надо прокрутить страницу с контентом обратно наверх.
Итак, после того как пользователь ознакомился с информацией о блюде, он принимает решение: добавить ли ему в свою корзину данное блюдо или нет. Если он выберет положительное ответ, то ему нужно нажать на кнопку «Добавить в корзину». После чего, произойдет отправка информации о внесении блюда в корзину на сервер и надпись на кнопке изменится. В этой ситуации экран будет выглядеть следующим образом:
Рисунок 15 - Снимок экрана «Подробнее» после нажатия на кнопку «Добавить в корзину»
Теперь это кнопка ведет на экран «Корзина». Допустим, пользователь решил посмотреть содержание своей корзины и нажал на кнопку «Вернуться в корзину». В результате пользователь попадет на экран с своей корзиной данного кафе.
Рисунок 16 - Снимок экрана «Корзина»
Здесь представлен список блюд, который пользователь добавил на экране подробнее. На данном экране он может удалить блюдо, если он передумал заказывать; очистить корзину, если расхотел в данное заведение общественного питания или оформить заказ, нажав на соответствующую кнопку.
4.2 Конфигурация устройства
К устройству на которое устанавливается данное приложение предъявляются следующие требования:
1. ARMпроцессор, двухъядерный, с частотой не менее 1 ГГц
2. Не менее 512 мб оперативной памяти
3. Наличие доступа в интернет(если доступ в интернет осуществляется с помощью мобильной связи, то устройство должно поддерживать стандарт сети 3G)
4. Сенсорный экран с диагональю не меньше 4,3 дюйма.
Только при соблюдении выше написанных требований возможна установка и запуск приложения.
4.3 Разработка руководства пользователя
Для того чтобы обеспечить положительный опыт использования мобильного приложения для обучения пользователя должен написан специальный документ - руководство пользователя, которое содержит информацию о приложении, системные требования а также порядок использования данным мобильным приложением. Ниже будет приведен данный алгоритм, который проиллюстирован в приложении 2.
Для того пользователь сделал заказ ему нужно:
1. Запустить приложение
2. Выбрать пункт в меню «Интерактивная карта», либо если он запускает приложение не первый раз и у него же есть отмеченные кафе, то он может выбрать пункт «Избранные кафе»
3. На интерактивной карте выбрать интересующее пользователя заведение общественного питания.
4. Выбрать категорию блюда.
5. Выбрать понравившиеся пользователю блюдо.
6. Прочитать детальную информацию и добавить его в корзину этого кафе, нажав соответствующую кнопку.
7. Нажать на изменившуюся кнопку «Вернуться в корзину»
8. При попадании на экран «Корзина» нажать кнопку оформить заказ.
9. На экране «Мои заказы» подтвердить заказ. Также пользователь может подтвердить заказ прямо из главного меню.
Для того чтобы пользователь очистил корзину последнего выбранного кафе надо:
1. Запустить приложение
2. На главном меню выбрать пункт «Корзина»
3. Нажать кнопку «Корзина»
5. ТЕСТИРОВАНИЕ
5.1 Функциональное тестирование
Перед тем как выпускать продукт на рынок нужно проверить работоспособность всех его компонентов и всего функционала, который он предоставляет, а также работу мобильного приложения в экстремальных ситуациях. Для этого проведем функциональное и нагрузочное тестирование.
Суть функционального тестирования - проверка всех предусмотренных функций мобильного приложения. Перечислим в списке ниже:
1. Приложение корректно запускается
2. Приложение корректно закрывается
3. Приложение устанавливает соединение с веб-сервером
4. Приложение отправляет запросу веб-серверу
5. Приложение принимает JSONответы от сервера
6. Приложение корректно отображает все экраны
7. Приложение отображает список блюд
8. Приложение отображает список категорий
9. Приложение отображает информацию о блюде
10. Приложение отображает компоненты главного меню.
11. Приложение отображает содержимое корзины.
12. Приложение корректно добавляет блюдо в корзину.
13. Приложение корректно удаляет блюдо из корзины.
14. Приложение корректно очищает корзину.
15. Приложение корректно переходит в корзину из детальной информации о блюде.
Данное мобильное приложение прошло все функциональные тесты. Это значит, что функциональное тестирование можно считать успешным.
5.2 Нагрузочное тестирование
Следующий этап тестирования, это нагрузочное тестирование. Основная идея нагрузочного тестирования - это проверка нетривиальных и экстремальных ситуаций. Ниже приведен список тестов, которые проверяют такие ситуации:
Тест 1 - Пользователь добавляет в корзину 10 блюд. Приложение работает корректно
Тест 2 - Пользователь добавляет в корзину 100 блюд. Приложение работает корректно.
Тест 3 - Пользователь добавляет в корзину 1000 блюд. Приложение работает корректно однако повышается нагрузка на оперативную память и процессор.
Тест 4 -Пользователь добавляет в корзину 10 блюд и поочередно их удаляет. Приложение работает корректно.
Тест 5 - Пользователь пытается добавить в корзину одно и то же блюдо 2 раза. Выходит всплывающее сообщение о том что пользователь уже добавил данное блюдо в корзину. Больше ничего не происходит - приложение работает корректно.
Тест 6 - Пользователь пытается нажать кнопку Очистить корзину на экране «Корзина». Выходит всплывающее сообщение о том что корзина пуста, но больше ничего не происходит. Приложение работает корректно.
Тест 7 - На экране «Подробнее» пользователь сворачивает приложение и вознобновляет его работу. Данные не утеряна, так как приложение хранит состояние активити, а значит приложение работает корректно.
Тест 8 - В кафе появилось блюдо состоящие из 10 ингредиентов. Приложение корректно отображает эту информацию.
Тест 9 - В кафе появилось блюдо состоящие из 100 ингредиентов. Приложение корректно отображает эту информацию.
Тест 10 - В кафе появилось блюдо у которых в составе нет ингредиентов. Приложение корректно отображает эту информацию.
6. ВНЕДРЕНИЕ
6.1 Особенности внедрения веб-приложения на предприятие
При внедрении веб-приложения в кафе, частью которого является данное мобильное приложение, следует договариваться с владельцем кафе и учитывать различные особенности:
1. Использует ли данное кафе облачные решения или предпочитают использовать свое аппаратное обеспечение?
2. Нужна ли владельца техническая поддержка от разработчиков данного веб-приложения?
3. Какая информация о кафе будет отображаться на интерактивной карте мобильного приложения?
4. Кто и каким образом будет заполнять базу данных наполняя интерактивное меню?
5. Внедрена ли уже какая-либо система автоматизации кафе и если она внедрена, то нужно учесть как будут взаимодействовать местная система автоматизации и данное веб-приложение.
Это основные вопросы, которые будут решаться в ходе внедрение веб-приложение в заведение общественного питания.
6.2 Внедрение мобильного приложения
Также стоит рассмотреть вопрос внедрения мобильного приложения. Существует 2 способа доставки мобильного приложения до пользователя:
1. Установка Apk, скачав с сайта разработчика. Не самый удобный способ так как предполагает, что пользователь будет заходить на какой-то посторонний сайт совершая много лишних действий.
2. УстановкаизGooglePlay. GooglePlay - это официальный репозиторийAndroidприложений, который обеспечивает пользователям удобный доступ к ним. Является предпочтительным источником получения приложения пользователем, так как пользователи доверяют мобильным приложениям из этого источника.
Данное мобильное приложение будет распространятся обоими этими способами.
ЗАКЛЮЧЕНИЕ
В ходе представленной выпускной квалификационной работы было разработано мобильное приложение для кафе, позволяющее существенно упростить жизнь жителю большего города, а также повысить прибыль для владельца заведения общественного питания. Кроме того, была изучена предметная область связанная с особенностью внедрения приложения в данную сферу человеческой деятельности. Разработанное мобильное приложение соответствует всем пользовательским, функциональным и требованием бизнеса. Также соблюдается требования по надежности и безопасности. Также, в ходе разработки данного программного проекта, разработчик получил опыт в написании Androidприложений и улучшил свои навыки в качестве Javaразработчика.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. devcolibri[Электронный ресурс]:- Режим доступа: https://devcolibri.com
2. Хабрахабр[Электронный ресурс]:- Режим доступа: https://habr.com/
3. Developers[Электронный ресурс]:- Режим доступа: https://developer.android.com/
4. FB[Электронный ресурс]: офиц. сайт - Режим доступа: https://fb.ru/
5. БизнесИдея[Электронный ресурс]: офиц. сайт - Режим доступа: https://бизнесидея.рф
6. GoogleMaps[Электронный ресурс]: офиц. сайт - Режим доступа: https://www.google.ru/maps/
7. STARTANDROID[Электронный ресурс]: офиц. сайт - Режим доступа: https://startandroid.ru/
8. JetBrains[Электронный ресурс]: офиц. сайт - Режим доступа: https://jetbrains.ru/
9. RestaurantGuru[Электронный ресурс]: офиц. сайт - Режим доступа: https://ru.restaurantguru.com/
10. Б.ХардиAndroid. Программирование для профессионалов. 2-е изд. -- СПб.: Питер, 2016. -- 640 с.: ил. -- (Серия «Для профессионалов»).
11. ДейтелПAndroid для разработчиков. 3-е изд. -- СПб.: Питер, 2016. -- 512 с.: ил. -- (Серия «Библиотека программиста»).
ПРИЛОЖЕНИЕ 1
Пример кода:
· DishDetailModel
·
package com.rider.diplom_cafe.model;
import com.rider.diplom_cafe.entity.Dish;
import com.rider.diplom_cafe.restControler.DishDetailRest;
import com.rider.diplom_cafe.restControler.DishRest;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class DishDetailModel {
public interface LoadDishDetailCallback {
void onLoad( Dish body );
}
public interface AddDishDetailCallback {
void onLoad( );
}
private Retrofit retrofit;
private Dish data;
public DishDetailModel() {
retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.100.7:8080/diplom/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public void loadDishes(String idCategory ,final DishDetailModel.LoadDishDetailCallback callback) {
DishDetailRestdishRest = retrofit.create(DishDetailRest.class);
Call<Dish> messages = dishRest.getDish(idCategory);
messages.enqueue(new Callback<Dish>() {
@Override
public void onResponse(Call<Dish> call, Response<Dish> response) {
if (response.isSuccessful()) {
data = response.body();
}
callback.onLoad(data);
}
@Override
public void onFailure(Call<Dish> call, Throwable t) {
}
});
}
public void addDishes(String idDish ,final DishDetailModel.AddDishDetailCallback callback) {
DishDetailRestdishRest = retrofit.create(DishDetailRest.class);
Call<Void> messages = dishRest.addDish(idDish);
messages.enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
callback.onLoad();
}
@Override
public void onFailure(Call<Void> call, Throwable t) {
}
});
}
}
· DishAdapter
·
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.rider.diplom_cafe.R;
import com.rider.diplom_cafe.entity.Dish;
import java.util.List;
public class DishAdapter extends BaseAdapter {
private Context ctx;
private LayoutInflaterlInflater;
private List<Dish> objects;
public DishAdapter(Context context) {
ctx = context;
lInflater = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public Dish getDish(int position) {
return ((Dish) getItem(position));
}
public void setDishList( List<Dish> objects ) {
this.objects = objects;
}
@Override
public intgetCount() {
return objects.size();
}
@Override
public Object getItem(int position) {
return objects.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.dish_item, parent, false);
}
Dish t = getDish(position);
((TextView) view.findViewById(R.id.dish_item_name)).setText(t.getName());
((TextView) view.findViewById(R.id.dish_item_price)).setText(t.getPrice());
return view;
}
}
ПРИЛОЖЕНИЕ 2
Графическое сопровождение руководства пользователя.
Рисунок 17 - Первый экран
Рисунок 18 - Второй экран
Рисунок 19 - Третий экран
Размещено на Allbest.ru
...Подобные документы
Диаграмма прецедентов взаимодействия игрока и программного продукта. Требования к пользовательскому интерфейсу. Диаграмма состояний проектируемого приложения. Выбор инструментальных средств разработки. Проектирование алгоритмов и иерархии классов.
дипломная работа [9,9 M], добавлен 20.03.2017Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.
дипломная работа [2,9 M], добавлен 17.10.2014Обоснование необходимости создания приложения для общения в Интернете, информационный анализ его структуры. Логическое проектирование чата. Выбор программной платформы, аппаратных средств и среды разработки. Интерфейс программы и руководство пользователя.
курсовая работа [287,7 K], добавлен 19.06.2013Требования к программному средству. Спецификация качества программного обеспечения. Требования к эргономике и технической эстетики. Стадии и этапы разработки, порядок контроля и приемки. Проектирование архитектуры приложения, руководство пользователя.
курсовая работа [381,6 K], добавлен 20.06.2012Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.
дипломная работа [1,4 M], добавлен 03.06.2014Требования к аппаратным и операционным ресурсам. Логическая и физическая организация. Состав основных классов проекта. Технико-экономическое обоснование разработки программного средства. Задержки при обработке данных. Разработка интерфейса приложения.
дипломная работа [4,4 M], добавлен 16.06.2017Принцип работы регулятора громкости в ОС Windows. Требования к интерфейсу программного продукта, программному и техническому обеспечению. Выбор ядра для разработки приложения. Инсталляция и выполнение программы. Контекстная диаграмма и листинг приложения.
курсовая работа [978,4 K], добавлен 18.06.2015Проект и реализация настольного и веб-приложения, которое считает площадь фигуры методом "Монте-Карло" на базе WPF/C#, ASP/JScript, WebForm/ASMX/C#. Программные средства разработки приложения. Системные требования. Руководство программиста, пользователя.
курсовая работа [819,9 K], добавлен 23.11.2015Требования к программе или программному изделию, к информационной и программной совместимости. Проектирование программного продукта. Процедура установки и удаления. Описание интерфейса, главное окно приложения. Основные возможности пользователя.
курсовая работа [678,1 K], добавлен 15.02.2016Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.04.2017Проектирование вариантов использования приложения. Анализ существующей версии приложения. Обоснование выбора инструментальных программных средств. Проектирование интерфейса пользователя. Адаптация под мобильные устройства. Описание программного продукта.
курсовая работа [2,8 M], добавлен 25.06.2017Выбор и обоснование аппаратного обеспечения. Типы архитектуры веб-приложений. Шаблоны проектирования архитектуры приложения. Разработка инфологической модели базы данных. Подготовка к разработке приложения. Рассмотрение причин возникновения паттернов.
дипломная работа [3,0 M], добавлен 27.11.2022Анализ предметной области. Диаграмма классов. Проектирование программного продукта "Часы". Тестирование и отладка, руководство программиста. Описание работы приложения. Руководство оператора, модель жизненного цикла. Файл Times.cs, Arrow.cs, Form1.cs.
курсовая работа [1,7 M], добавлен 20.04.2015Общие требования к АИС киноцентра "Пирамида". Концептуальное, логическое и физическое проектирование, запросы к базе данных и экранные формы. Основы разработки внешних приложений в Delphi. Создание внешнего приложения и руководство пользователя.
курсовая работа [1,3 M], добавлен 03.11.2014Назначение и структура таблиц, используемых в проекте. Задачи и требования приложения на уровне организации WEB-интерфейса. Функциональная структура программы. Алгоритм отображения разделов и подразделов. Процесс регистрации нового пользователя.
курсовая работа [1,0 M], добавлен 04.10.2010Общая характеристика и структурная схема приложения, требования к нему и функциональные особенности, сферы практического применения. Обоснование выбора языка программирования. Описание интерфейса и инструкция пользователя. Проведение листинга программы.
дипломная работа [1,0 M], добавлен 10.07.2017Проектирование удобного приложения для комфортной навигации по файлам облачного хранилища в одном файловом менеджере. Выбор интегрированной среды разработки. Выбор инструментов для визуализации приложения. Выбор средств отслеживания HTTPзапросов.
курсовая работа [3,6 M], добавлен 16.07.2016Предпроектное обследование объекта автоматизации. Область применения разработки Web-приложения "Туристическое агенство", ее назначение, требования к программному продукту и документации. Календарный план и порядок приемки. Приемы работы с программой.
курсовая работа [60,3 K], добавлен 28.12.2011Разработка и реализация демонстрационного многопоточного приложения. Выбор основных средств реализации. Описание логики работы приложения и разработка программного обеспечения. Описание пользовательского интерфейса. Реализация потоков в Delphi.
курсовая работа [462,5 K], добавлен 10.08.2014Требования к пользовательскому интерфейсу программного продукта. Выбор инструментальных средств разработки программы. Описание функциональной схемы, модульной структуры, структурной схемы. Технология разработки справочной системы программного продукта.
дипломная работа [2,7 M], добавлен 12.05.2016