Введение
1 Аналитическая часть
1.1 Анализ предметной области
1.1.1 Состояние и стратегия развития информационных технологий
1.1.2 Экономический анализ деятельности объекта исследования
1.1.3 Методологии разработки мобильного приложения
1.2 Анализ существующей организации прикладных и информационных процессов
1.3 Постановка задачи автоматизации прикладных процессов
1.3.1 Цели и задачи проекта автоматизации прикладных процессов
1.3.2 Спецификация функциональных требований
1.3.3 Спецификация нефункциональных требований
1.4 Календарно-ресурсное планирование проекта
2 Разработка мобильного приложения для интернет-магазина кондитерских изделий
2.1 Информационное обеспечение
2.2 Программное обеспечение
2.2.1 Структура программного обеспечения
2.2.2 Спецификации программных модулей
2.3 Описание пользовательского интерфейса
2.4 Обеспечение информационной безопасности
2.5 Тестирование и оценка качества информационной системы
2.6 Оценка эффективности проекта
Заключение
Список использованных источников
Приложение А – Листинг основных модулей программы
Приложение Б – Расчет экономической эффективности
Приложение В – ER-модель для базы данных
Приложение Г – дизайн модулей приложения
С каждым годом доля мобильного рынка увеличивается: по данным компании Google в 2011 году количество запросов с мобильных устройств превысило количество запросов со стационарных устройств. На сегодняшний день в процентном соотношении показатели таковы: 78.4% запросов исходит от мобильных устройств против 21.6% от остальных типов устройств. Если учесть тот факт, что стационарными устройствами пользуются в основном на рабочем месте (например, офисные работники), то этот процент в реальных условиях еще ниже.
Практически каждый житель земли имеет свое собственное мобильное устройство с возможностью выхода в сеть Интернет, а у некоторых такое устройство не одно. Помимо доступа к неограниченному количеству информации, размещенной в интернете, обрели небывалую популярность различные сервисы: начиная с медиа сервисов (предоставляющих доступ к музыке, фильмам, изображениям, и т.п.) и заканчивая мощнейшими облачными серверами, предоставляющими доступ к ресурсам удаленной машины (чаще они используются в технических целях, таких, например, как разработка и размещение веб-приложения, но в последнее время появилась новая тенденция: запуск всевозможных игр с использованием облачных технологий, т.е. устройство пользователя не получает никакой нагрузки и использует ресурсы удаленной машины).
Само собой, рыночные отношения тоже претерпели изменения и многие компании перешли на удаленный формат работы, в частности, в сфере торговли стало популярным направление так называемых «интернет-магазинов». Такая бизнес-модель позволяет, в первую очередь, сэкономить на оплате за аренду помещения под магазин и оплате работы сотрудников торгового зала. Некоторые магазины работают только удаленно, привозя клиенту заказанный товар по указанному им адресу, кто-то же предпочитает открывать «точки самовывоза товара», в которых клиент может забрать товар самостоятельно, не оплачивая его доставку.
В прошлом году внезапно обрушившаяся на мир тяжелая эпидемиологическая обстановка нанесла серьезный удар по экономике многих стран, в частности, по экономике Российской Федерации: многие компании не смогли продолжать свое существование и попросту закрылись. Те предприятия, которые смогли устоять в период кризиса, были вынуждены быстро перестраивать бизнес-модель и адаптироваться под новые условия. Таким образом, многие предпочли работать со своими клиентами по вышеописанной модели – через сеть Интернет, зачастую вообще без прямого контакта с клиентом.
За те же десять лет, мобильные устройства совершили прорыв, и для работы с данными придумали схему, схожую с работой на стационарном компьютере: посредством специального программного обеспечения – так называемых мобильных приложений.
Исходя из требований рынка автор считает, что актуальность данной работы очевидна, ведь современному бизнесу просто необходимо собственное мобильное приложение для привлечения новых клиентов и удержания старых.
Целью выпускной квалификационной работы является увеличение количества продаж товаров на предприятии, повышение имиджа путем разработки мобильного приложения для интернет-магазина, занимающегося продажей кондитерских изделий.
Объектом исследования является изучение рынка изготовления и реализации кондитерских изделий в сети Интернет, формирование требований для разрабатываемого мобильного приложения.
Предметом исследования является процесс улучшения сайта интернет-магазина для взаимодействия с разрабатываемым мобильным приложением, а также сам процесс разработки мобильного приложения.
Первая часть работы посвящена проблеме архитектуры мобильного приложения и инструментов взаимодействия с хранилищем данных. В ходе работы над первой частью выявлено, что база данных нуждается в некоторых улучшениях, а некоторые аспекты разработки мобильного приложения требуют дополнительных исследований. Также были рассмотрены вопросы выбора необходимых инструментов для разработки приложения, их актуальность и применимость, значительная часть уделена теоретической базе разработки мобильных приложений.
Вторая часть работы посвящена вопросам проектирования и разработки мобильного приложения для интернет-магазина, занимающегося продажей кондитерских изделий. В качестве методологии анализа использовались моделирование, наблюдение, сравнение, а также синтез и дедукция.
В процессе выполнения выпускной квалификационной работы были использованы следующие инструменты и методы: в качестве основного языка программирования – Dart, в качестве вспомогательных – Java, Swift и PHP. В качестве инструментальной среды разработки – Google Flutter, Apple XCode и JetBrains PHPStorm, Microsoft Visual Studio Code. Также в процессе выполнения работы использовалась система управления базами данных JetBrains DataGrip для работы с данными и среда проектирования сложных схем приложения и схем базы данных Miro.
В процессе выполнения выпускной квалификационной работы были сформированы навыки, закрепляющие следующие компетенции:
- способность проектировать сложные схемы работы сайта, мобильного приложения и взаимодействия различных компонентов между собой посредством специального интерфейса (ПК-1);
- способность искать, анализировать и структурировать полученную информацию (ПК-2);
- способность взаимодействовать со сторонними API и библиотеками, и использовать их в своем приложении (ПК-3);
- способность проектировать базы данных и описывать процесс взаимодействия таблиц схематически (ПК-4);
- способность разрабатывать мобильные приложения с использованием современных и передовых технологий, таких как язык Dart на базе платформы Google Flutter, язык Java на базе платформы Google Android Studio, язык Swift на базе Apple XCode (ПК-5);
- способность разрабатывать API для взаимодействия сайта с мобильным приложением с использованием современных и передовых технологий, таких как язык PHP на базе PHPStorm (ПК-6);
- способность разрабатывать модели и алгоритмы компонентов информационных систем, включая модели структур данных и модели интерфейсов «человек – электронно-вычислительная машина» (ПК-7);
- способность разрабатывать компоненты аппаратно-программных комплексов и баз данных, используя вышеназванные современные инструментальные средства и технологии программирования объектно-ориентированных языков программирования (ПК-8);
1 Аналитическая часть
1.1 Анализ предметной области
1.1.1 Состояние и стратегия развития информационных технологий
Мобильные устройства в нынешнем виде появились совсем недавно, но уже захватили львиную долю рынка устройств. Начиная примерно с 2010 года, профессия «Разработчик мобильных приложений» обрела небывалую популярность в связи с возникшим спросом, ведь практический каждый пункт взаимодействия бизнеса с клиентом можно автоматизировать, а если добавить к этой автоматизации:
- мобильность;
- доступность;
- скорость взаимодействия.
Тогда бизнес-процессы обретут новую форму, количество обрабатываемых запросов от клиентов увеличится в несколько раз, успешность выполнения своей цели вырастает в геометрической прогрессии, то же справедливо и в отношении нагрузки на сотрудников и предприятие в целом: такими же темпами она снижается. Правдивость этих утверждений подтверждает мировая статистика (рис. 1).
По официальным данным использования мобильного Интернета в 2020 году количество его уникальных пользователей составило 4,28 миллиарда, что означает, что более 90% мирового интернет-населения используют мобильные устройства для выхода в сеть Интернет. По прогнозам, в будущем количество владельцев мобильных устройств и использование Интернета только возрастут, поскольку мобильные технологии становятся более доступными, чем когда-либо. Эта тенденция к росту распространения мобильного Интернета особенно заметна на развивающихся цифровых рынках, где мобильные сети являются основным средством доступа в Интернет.
Рисунок 1 – Статистика по целям автоматизации до/после COVID-19.[1]
Сегодня, мобильный интернет-трафик составляет более 55% от общего веб-трафика, в то время как на рынках, ориентированных на мобильные устройства, таких как Азия и Африка, мобильные соединения составляют даже большую долю просмотров веб-страниц.
Согласно официальной статистике мобильного маркетинга: 71% маркетологов считают, что именно мобильный маркетинг является основой их бизнеса. 68% компаний интегрировали мобильный маркетинг в свою общую маркетинговую стратегию. Маркетологи и рекламодатели вкладывают 51% своего бюджета в мобильную рекламу, еще 66% говорят, что используют шаблоны, оптимизированные для мобильных устройств.
В целом, понять ситуацию более глубоко может каждый из нас, просто вспомнив свое ежедневное взаимодействие с мобильным устройством: кто-то открывает социальные сети сразу же после пробуждения, кто-то заказывает товары, услуги, еду с доставкой, кто-то выстраивает маршруты для комфортного передвижения по городу до конечной точки, а кому-то достаточно просто посмотреть погоду. Так или иначе, все эти кейсы объединяет одна цель: быстрое получение необходимых нам данных в комфортном виде. Для этих целей и был внедрен формат приложений в мобильные устройства.
Разработка приложений для мобильных устройств – это процесс, при котором приложения разрабатываются для небольших портативных устройств, таких, как КПК, смартфоны или сотовые телефоны. На сегодняшний день основными устройствами, под которые ведется разработка, это Android-смартфоны производства различных компаний и Apple iPhone с операционной системой iOS на борту.
1.1.2 Экономический анализ деятельности объекта исследования
Традиционно, самым первым процессом в разработке мобильного приложения принято считать концепт, в который входят:
- основные положения, определения, тезисы, то есть все то, что поможет как можно детальнее определить функционал, выполняемый приложением;
- дизайн-макет, или уже готовая верстка приложения, то есть всевозможные формы для страниц, кнопки, расположение элементов и т.п.;
- описание технической части, то есть взаимодействие с различными сервисами, API, получение, обработка, хранение и передача всевозможных данных, используемых в приложении.
Обычно, если проект организует средняя или крупная компания, разработку концепта делегируют сразу нескольким специалистам:
- аналитик собирает данные для приложения;
- дизайнер рисует дизайн-макет;
- frontend-разработчик занимается версткой дизайн-макета и всего, что связано с UI/UX;
- менеджер проекта (PM) определяет основные блоки с функционалом, утверждает время на разработку различных его частей и координирует работу между командами. Помимо прочего, менеджер работает непосредственно с самим заказчиком, уточняя необходимые детали.
После того, как концепт приложения готов, можно переходить ко второй стадии – разработка Backend (или серверной) части приложения. На данном этапе включаются в работу следующие сотрудники:
- аналитик утверждает и декомпозирует задачи для реализации функционала;
- менеджер проекта (PM) проверяет задачи на актуальность, уточняет требования по реализуемому функционалу у клиента, выставляет задачам приоритеты, делегирует задачи Backend-разработчикам;
- backend-разработчик выполняет поставленные задачи, выстраивает архитектуру проекта вместе с Архитектором программного обеспечения (Design Architect), либо самостоятельно: все зависит от масштаба задачи и ее влияние на приложение в целом.
Затем, когда основная часть мобильного приложения реализована, необходимо выполнить обязательный для каждого приложения этап – тестирование. Многие недооценивают этот этап, стараясь сэкономить на количестве сотрудников, хотя он является одним из ключевых в дальнейшей перспективе. На этом этапе:
- аналитик проверяет выполненную работу на соответствие задаче;
- менеджер проекта (PM) делегирует выполненную задачу Тестировщику (QA Engineer).
- тестировщик (QA Engineer) пишет тест-план, выполняет ручное или автоматическое тестирование (в зависимости от задачи);
Последние два этапа обычно проходят несколько итераций: если тестировщик нашел какие-то нестыковки, или бизнес-требования изменились в процессе выполнения задачи.
При этом несколько задач выполняются одновременно различными разработчиками, иногда даже в одном модуле приложения. Для разрешения конфликтов и удобства взаимодействия сотрудников друг с другом используется непрерывная интеграция (Continuous Integration) и контроль версионирования.
Непрерывная интеграция (Continuous Integration) – это практика автоматизации интеграции изменений кода от нескольких участников в один проект программного обеспечения. Это основная передовая практика DevOps, позволяющая разработчикам часто объединять изменения кода в центральный репозиторий, где затем запускаются сборки и тесты. Автоматизированные инструменты используются для подтверждения правильности нового кода перед интеграцией. Без CI разработчики должны вручную координировать и сообщать, когда они вносят код в конечный продукт. Эта координация распространяется не только на команды разработчиков, но и на операции и остальную часть организации.
Для версионирования и удобства работы команд между собой существует несколько утвердившихся на мировом рынке систем. Одной из самых популярных на сегодняшний день считается Git.
Git – это бесплатная распределенная система управления версиями с открытым исходным кодом, предназначенная для быстрой и эффективной обработки всего, от небольших до очень крупных проектов. Git прост в освоении, занимает мало места и обладает молниеносной производительностью. Основными преимуществами Git принято считать дешевое локальное ветвление, удобные промежуточные области и несколько рабочих процессов.