МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ НАБЕРЕЖНОЧЕЛНИНСКИЙ ИНСТИТУТ (ФИЛИАЛ) ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО АВТОНОМНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ОБРАЗОВАНИЯ «КАЗАНСКИЙ (ПРИВОЛЖСКИЙ) ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Кафедра «Информационные системы» Утверждаю Заведующий кафедрой ИС Р.А.Валиев г. КУРСОВАЯ РАБОТА по дисциплине: «Проектирование и архитектура программных систем» на тему: «Проектирование требований на разработку архитектуры программных систем» Автор: студент группы 2192121 А. М. Ханов Оценка: Руководитель: Доцент кафедры ИС Ш.А.Хамадеев Дата защиты: Набережные Челны 2024 г. МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ НАБЕРЕЖНОЧЕЛНИНСКИЙ ИНСТИТУТ (ФИЛИАЛ) ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО АВТОНОМНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ОБРАЗОВАНИЯ «КАЗАНСКИЙ (ПРИВОЛЖСКИЙ) ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ (ИС) Направление подготовки 09.03.04 «Программная инженерия» Утверждаю Заведующий кафедрой ИС Р.А.Валиев г. ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ Студент: Ханов Айнур Марселович 1 Тема: «Проектирование требований на разработку архитектуры программных систем» 2 Срок представления к защите 22.01.2024 г. 3 Исходные данные - Информационная система для просмотра, чтения и прослушивания электронных и аудиокниг 4 Перечень подлежащих разработке вопросов - Описание бизнес-требований; - Разработка модели данных; - Моделирование бизнес-процессов; - Разработка пользовательских требований; - Разработка функциональных требований; - Разработка нефункциональных требований. Задание выдано 18.01.2024 г. Ш.А. Хамадеев Задание принято 18.01.2024 г. А. М. Ханов 2 СОДЕРЖАНИЕ ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ ........................................................................................................................................... 4 ВВЕДЕНИЕ ........................................................................................................................................................................ 6 1 Анализ предметной области ..................................................................................................................................... 8 1.1 Анализ информационной системы для чтения электронных книг, прослушивание аудиокниг, заказ и покупки книги ....................................................................................................................................................... 8 1.2 Анализ основных сущностей в области управления приложением ............................................................ 11 1.3 Анализ процессов управления заявками «Как есть» ...................................................................................... 14 1.4 Модуль взаимодействия разрабатываемой системы ................................................................................. 15 1.5 Анализ существующих решений на рынке ПО РФ........................................................................................... 26 1.6 Вывод по разделу ................................................................................................................................................ 28 2 Разработка требований к информационной системе управления заявками на перевозки ............................. 29 2.1 Разработка бизнес-требований к информационной системе ..................................................................... 29 2.2 Разработка пользовательских требований................................................................................................... 32 2.3 Разработка функциональных требований ..................................................................................................... 39 2.4 Разработка требований к справочникам системы....................................................................................... 45 2.5 Разработка нефункциональных требований ................................................................................................. 49 3 Разработка архитектуры информационной системы............................................................................................ 51 ЗАКЛЮЧЕНИЕ ................................................................................................................................................................ 20 СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ ................................................................................................................... 21 Приложение А .............................................................................................................................................................. 56 3 ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ Android Электронная книга — Операционная система для мобильных устройств, разработанная компанией Google. — Формат книги в электронном виду, доступный для чтения на мобильный устройствах и компьютерах. Аудиокнига — Формат книги, записанной в аудиоформате, доступный для прослушивания на мобильных устройствах и компьютерах. Приложение — Программное обеспечение, которое устанавливается на мобильное устройство и предоставляет определенные функциональные возможности. Разработка приложения — процесс создания приложения, начиная от идеи и заканчивая выпуском готового продукта. Интерфейс пользователя — Часть приложения, через которую пользователь взаимодействует с программным обеспечением. API — Интерфейс программирования приложений, который позволяет приложению взаимодействовать с операционной системой и другими приложениями. База данных — Структурированное хранилище данных, которое используется для хранения информации в приложении. Оффлайн-режим — это режим функционирования приложения при отсутствии доступа к сети. Нативный опыт — это известный, родной сценарий того, как ведёт себя интерфейс при взаимодействии с ним. Маркетплейс — платформа электронной коммерции, интернетмагазин электронной торговли, предоставляющий информацию о продукте или услуге третьих лиц. 4 Гаджет — Современное техническое портативное устройство Парсинг — это автоматический процесс сбора и систематизации данных. Технологический стек — это набор технологий, используемых для разработки ПО, включающий языки программирования, фреймворки, библиотеки, сторонние программы и другие инструменты. Apk (Апк) — формат архивных исполняемых файловприложений для Android и ряда других операционных систем, основанных на Android. WebView — сайт, адаптированный под мобильные устройства и упакованный в оболочку мобильного приложения. Модель MVC — Архитектурный шаблон, который разделяет приложение на три компонента: модель, представление и контроллер Java — Язык программирования, на котором часто разрабатывают приложения для Android. СУБД PostgreSQL — это объектно-реляционная система управления Фреймоворк Android Studio базами данных — это интегрированная среда разработки от Google для создания Android-приложений. В ней можно писать код, проектировать графический интерфейс, проводить отладку и сборку приложений для публикации в магазинах. 5 ВВЕДЕНИЕ Сегодня электронные книги и аудиокниги стали очень популярными среди людей, которые любят читать и слушать книги. Это связано с тем, что они являются более удобными и доступными, чем традиционные книги. Теперь пользователи могут хранить множество книг на своих устройствах и читать их в любое время и в любом месте. Целью данной проекта является функционал для чтения, покупки, просмотра и выбора электронных книг и аудиокниг на платформе Android. Приложение должно предоставлять пользователям широкий выбор книг и аудиокниг, возможность покупки их онлайн, а также удобный интерфейс для чтения и прослушивания. Для разработки приложения будет использоваться Android Studio интегрированная среда разработки для платформы Android. Она предоставляет широкий набор инструментов и библиотек для создания высококачественных приложений на Android. Объектом исследования в данной работе является разработка Android приложения на Android Studio для чтения и прослушивания электронных книг и аудиокниг Предметом исследования является информационная система для чтения электронных книг, прослушивание аудиокниг, заказ и покупка книги; Для достижения поставленной цели требуется решить следующие задачи: анализ существующих приложений для чтения, покупки, просмотра и выбора электронных книг и аудиокниг на платформе Android; проектирование архитектуры приложения и выбор необходимых библиотек и инструментов для разработки; реализация функций чтения, покупки, электронных книг и аудиокниг; тестирование и отладка приложения; 6 просмотра и выбора документирование приложения и написание руководства пользователя. разработать бизнес-требования к автоматизации управления заказами и книгами, в том числе аудиокнигами; разработать пользовательские требования к информационной системе чтение электронных книг, прослушивание аудиокниг, заказ и покупка книги; разработать функциональные требования к информационной системе чтение электронных книг, прослушивание аудиокниг, заказ и покупка книги; разработать функциональные требования к информационной системе чтение электронных книг, прослушивание аудиокниг, заказ и покупка книги; чтение электронных книг, прослушивание аудиокниг, заказ и покупка книги; разработать архитектуру информационной системы чтение электронных книг, прослушивание аудиокниг, заказ и покупка книги. Ожидается, что разработанное приложение будет удобным функциональным, а также будет иметь потенциал для дальнейшего развития. 7 и 1 Анализ предметной области 1.1 Анализ информационной системы для чтения электронных книг, прослушивание аудиокниг, заказ и покупки книги В настоящее популярными время форматами электронные чтения и книги и аудиокниги прослушивания являются литературы. Они предоставляют возможность читать и слушать книги в любое время и в любом месте, не зависимо от наличия физической книги. Это удобно для людей, которые много путешествуют или просто не хотят таскать с собой тяжелые книги. Разработка приложения на Android Studio для чтения, покупки, просмотра и выбора электронных книг и аудиокниг имеет большой потенциал на рынке мобильных приложений. Это приложение может предоставить пользователям широкий выбор книг и аудиокниг, а также удобный интерфейс для их чтения и прослушивания. Однако несмотря на то, что рынок электронных книг и аудиокниг быстро растет, он все еще имеет свои особенности и проблемы. В частности, одной из главных проблем является защита авторских прав. Многие книги и аудиокниги могут быть защищены авторским правом, что может привести к юридическим проблемам для разработчиков приложения. Кроме того, другой проблемой является конкуренция на рынке. Существует множество приложений для чтения электронных книг и прослушивания аудиокниг, таких как ЛитРэс, Google Play Books, Букмейт и др. Это означает, что разработчики должны создать уникальное и высококачественное приложение, чтобы выделиться на фоне конкурентов. Тем не менее, разработка приложения на Android Studio для электронных книг и аудиокниг имеет свои преимущества. В частности, это может быть выгодно для издательств, которые могут использовать приложение для продвижения своих книг. Также это может быть удобно для пользователей, которые могут с легкостью выбирать и покупать книги и аудиокниги в одном месте. В заключение, разработка приложения на Android Studio для чтения, 8 покупки, просмотра и выбора электронных книг и аудиокниг имеет большой потенциал на рынке мобильных приложений. Однако, разработчики должны учитывать особенности рынка электронных книг и аудиокниг, а также конкуренцию на рынке. Все это требует тщательного анализа и планирования при разработке приложения. По данным группы компаний «Литрес», (по собственной оценке, занимает около 70% рынка цифровых книг в России), Ozon и розничная сеть «Читай-город – Буквоед». В топ-50 вошли книги издательств «Эксмо», АСТ, «Альпина», «Азбука», «Бомбора», «Попурри», «Махаон», МИФ, «Синдбад», «София», Popcorn Books. Рейтинг охватывает период с 16 декабря 2021 г. по 15 мая 2022 г. и не учитывает учебники и юридические справочники. По данным рейтинга, главными бестселлерами декабря 2021 г. – мая 2022 г. стали психологический нон-фикшн «К себе нежно. Книга о том, как ценить и беречь себя» Ольги Примаченко, подростковый ЛГБТ-роман «Лето в пионерском галстуке» Катерины Сильвановой и Елены Малисовой и комикс «Земля королей. Червовый том» Федора Нечитайло. Рисунок 1.1 – Доля рынка электронных книг и аудиокниг В рынке электронных книг и аудиокниг можно выделить два несколько основных сегментов [4]: Электронные книги включает в себя книги, которые можно читать на различных устройствах, таких как смартфоны, планшеты и электронные книги. Преимуществом этого сегмента является то, что электронные 9 книги занимают меньше места и могут быть легко загружены на устройство. Аудиокниги состоят из книг, которые были записаны в аудиоформате. Они могут быть прослушаны на различных аудиоустройствах, таких как наушники, колонки и т.д. Преимущество этого сегмента заключается в том, что он позволяет читателям слушать книги в любое время и в любом месте, даже при выполнении других задач. Приложения для чтения представлены различными приложениями, которые позволяют читать книги на смартфонах и планшетах. Такие приложения обычно предлагают большой выбор книг и удобный интерфейс для чтения. Платформы для продажи электронных книг представляет собой платформы, на которых продаются электронные книги различных авторов. Некоторые из самых популярных платформ включают Букмейт, ЛитРЭС, Apple iBooks и Google Play Книги. Платформы для прослушивания аудиокниг: представляют платформы, на которых можно прослушать аудиокниги различных авторов. Популярные платформы включают Букмейт, ЛитРЭС, Google Play Музыку и Apple Podcasts. 10 1.2 Анализ основных сущностей в области управления приложением В области управления и разработки Android приложения для чтения, прослушивания и продажи электронных книг и аудиокниг, основными сущностями являются (рисунок 1.2): Пользователь: представляет пользователя приложения, который может создать учетную запись, войти в систему, просматривать и приобретать книги и аудиокниги, управлять своей библиотекой и настройками приложения. Книга: представляет электронную книгу, содержащую текстовое содержимое. Книга может иметь различные атрибуты, такие как название, автор, издательство, жанр и т.д. Аудиокнига: представляет аудиозапись книги, которую пользователь может прослушивать вместо чтения. Аудиокнига может иметь атрибуты, такие как название, автор, продолжительность и т.д. Библиотека: представляет собой коллекцию книг и аудиокниг, которые пользователь приобретает или добавляет в свою личную коллекцию. Пользователь может просматривать, управлять и читать или слушать книги и аудиокниги в своей библиотеке. Магазин: представляет собой место, где пользователь может приобрести книги и аудиокниги. Магазин может предлагать различные категории и фильтры для поиска книг и аудиокниг, а также предлагать рекомендации на основе предпочтений пользователя. Чтение и прослушивание: представляет возможность пользователя читать электронные книги или слушать аудиокниги. Это включает функции, такие как отображение текстового контента, управление размером шрифта и подсветка, а также возможность управления прослушиванием аудиокниги, такие как пауза, перемотка и т.д. Платежные системы: представляют собой интеграцию с различными платежными провайдерами, чтобы пользователь мог безопасно и удобно приобретать книги и аудиокниги через приложение. 11 Уведомления: представляют возможность отправки уведомлений пользователям о новых книгах, акциях, обновлениях и других событиях в приложении. Аналитика: представляет возможность сбора и анализа данных о поведении пользователей, чтобы предлагать персонализированные рекомендации, улучшать функционал приложения и оптимизировать маркетинговые стратегии. Эти основные сущности обеспечивают функциональность приложения для чтения, прослушивания и продажи электронных книг и аудиокниг на платформе Android. Рисунок 1.2 – Ключевые сущности процесса управления приложением «Пользователь» выбирает себе понравившуюся электронную книгу или аудиокнигу, если она платная, то пользователь добавляет товар в «Корзину», дальше пользователь может выбрать: отказаться от товара или же продолжить оформление товара и прейти на страницу «Платежная система – оплата». После оплаты товара, пользователю приходит «Уведомление» об успешной оплате и добавление электронной книги или аудиокниги в «Библиотеку». Так же в приложении присутствует такая сущность, как «Аналитика». 12 «Аналитика» - представляет возможность сбора и анализа данных о поведении пользователей, чтобы предлагать персонализированные рекомендации, улучшать функционал приложения и оптимизировать маркетинговые стратегии (рисунок 1.3) Рисунок 1.3 – Дополнительные сущности 13 1.3 Анализ процессов управления заявками «Как есть» На рисунке 1.4 представлен основной процесс управления заявкой от ее появления до полного закрытия: Рисунок 1.4 – Процесс «от заявки до оплаты» Основным действующим лицом в данном процессе является интегрированная система принятие заявки и оплаты. При появлении новой заявки на покупку электронной книги или аудиокниги приложение полностью отрабатывает все заложенные в него скрипты, от добавления в корзину, до получения товара в библиотеку. После выбора электронной книги или аудиокниги приложение присылает уведомление, информируя пользователя о том, что все товары добавлены в корзину и ждут дальнейшего действия со стороны пользователя. Пользователь может как оплатить товар и получить, и как отказаться от товара в момент оформления, если товар не пригодился или же передумал. 14 1.4 Модуль разрабатываемой системы При разработке Android-приложения для электронных книг и аудиокниг взаимодействие различных модулей можно представить следующей схемой (рисунок 1.5): 1. Модуль пользовательского интерфейса (UI): Отвечает за представление пользователю. пользовательского интерфейса Отображает список доступных электронных книг и аудиокниг. Позволяет пользователю искать, просматривать и выбирать книги. Предоставляет возможности управления создание закладок и создание заметок. воспроизведением, 2. Модуль управления данными: Управляет поиском и хранением данных электронных книг и аудиокниг. Извлекает метаданные книги, такие как название, автор и изображение обложки, из базы данных или онлайн-источника. Управляет локальным хранилищем загруженных электронных книг и аудиокниг. Обеспечивает синхронизацию с облачными сервисами, если применимо. 3. Модуль воспроизведения звука: Отвечает за воспроизведение аудиокниг. Декодирует и передает аудиоконтент. Обеспечивает элементы управления воспроизведением, паузой, перемоткой назад и вперед. Поддерживает такие функции, как регулировка скорости и громкости воспроизведения. Обрабатывает уведомления и фоновое воспроизведение. 4. Модуль рендеринга электронных книг: Отображает содержимое электронной книги для отображения. Поддерживает различные форматы электронных книг, такие как EPUB или PDF. 15 Предоставляет такие функции, как форматирование текста, настройка шрифта и навигация по страницам. Поддерживает функции аннотирования. создания закладок, выделения и 5. Интеграция с модулем внешних сервисов: Интегрируется с внешними сервисами, такими как книжные интернет-магазины или платформы аудиокниг. Обрабатывает аутентификацию и авторизацию для доступа к приобретенному или подписанному контенту. Обеспечивает плавную интеграцию со сторонними API, такими как Audible или Google Книги. 6. Модуль настроек и предпочтений: Позволяет пользователям настраивать параметры приложения. Предоставляет возможности для настройки параметров звука, предпочтений дисплея и настроек учетной записи. Управляет пользовательскими настройками, предпочтительный язык или режим чтения. такими как 7. Модуль уведомлений и оповещений: Отправляет уведомления и оповещения пользователю. Уведомляет о выходе новых книг, обновлениях или рекламных акциях. Оповещения о ходе загрузки, статусе воспроизведения или напоминания. Рисунок 1.5 – Схема взаимодействия модулей разрабатываемой системы 16 2. ПОСТАНОВКА ЗАДАЧИ Мобильное приложение должна быть способна анализировать требования пользователя и предоставлять всевозможные электронные книги и аудиокниги, которые предпочитает пользователь. Важно обеспечить точный анализ, поиск по все возможным фильтрам для удобного и упрощенного поиска. 2.1 Определение основных требований Масштабируемость и производительность: Мобильное приложение должна быть способна эффективно работать с большим числом запросов и объемом данных, возможность масштабирования при росте пользовательской базы. Интерфейс пользователя: Удобный и интуитивно понятный интерфейс для чтения электронных книг, прослушивания аудиокниг, поиска и выбора, личного кабинета, платежной системы. База данных: Надежная и эффективная система хранения данных о электронных книгах, аудиокнигах, добавленных в личную библиотеку пользователя, файлы, которые были или можно скачать на мобильный телефон. 2.2 Разработка мобильного приложения Дизайн интерфейса: Создание простого и понятного дизайна приложения Заполнение базы данных Интегрирование платежной системы 17 Тестирование: Проведение тестов на различных устройствах для обеспечения стабильности работы 2.3 Внедрение и поддержка Деплоймент: Развертывание мобильного приложения в магазинах приложений или доставка приложения другим способом Сбор обратной связи: Мониторинг отзывов пользователей и сбор данных для дальнейшего улучшения системы Обновление и поддержка: Проведение регулярных обновлений приложения и модели машинного обучения для улучшения качества и точности распознавания Обучение пользователей: Предоставление обучающих материалов и рекомендаций по использованию приложения. 18 3. Проектирование 19 Заключение Во время выполнения работы был произведен анализ рынка и разработка Android-приложения для выбора, просмотра, покупки, чтения электронных книг и прослушивания аудиокниг, сформулированы критичные на мой взгляд проблемы, произведен анализ существующих аналогов, были поставлены и успешно выполнены цели дипломной работы. Так как целью работы было создание системы, которая смогла бы решить поставленные проблемы, разработанное приложение в текущем виде не может быть напрямую внедрено в production-системы, у него есть ряд недостатков: • реализованы только базовые виджеты, необходимые для минимальной демонстрации системы • все UI-модули используют «технический» дизайн, далекий от демонстрации конечным пользователям • не были реализованы функциональные особенности магазинов (например, покупка товаров) Однако даже сейчас разработанная система справляется с основными задачами. По её примеру можно разработать крупное промышленное приложение, способное предоставить механизмы быстрой доставки обновлений и кастомизации персональных страниц электронных книг и аудиокниг. Исходный код мобильного приложения, модуля верстки и серверной части доступен в публичном репозитории, готов к исследованию и изменениям. 20 Список использованных источников 1. Flutter Developer Documentation // Flutter.dev - https://docs.flutter.dev (дата обращения 02.04.2023) 2. Интернет-торговля рынок России // TadViser.ru. - URL: https://www.tadviser.ru/index.php/Статья:Интернетторговля_(рынок_России) – 2023 - (дата обращения 07.04.2023) 3. Server-Driven UI: the Ultimate Solution for Mobile Apps? // Ramon Honório. URL: https://betterprogramming.pub/server-driven-ui-does-it-solve- everything-formobile-apps-4b38397b2e04 - 2023 - (дата обращения 10.04.2023) 4. Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг // AlfaTeam. - URL: https://habr.com/ru/companies/alfa/articles/668754/ 2022 - (дата обращения 10.04.2023) 5. Кастомизация страниц интернет-магазина на Shopify с помощью пейджбилдеров // Ecom Today. - URL: https://vc.ru/u/617145-ecomtoday/260644kastomizaciya-stranic-internet-magazina-na-shopify-s-pomoshchyupeydzhbilderov-obzor-top-5-konstruktorov - 2021- (дата обращения 10.04.2023) 6. New Epsilon research indicates 80% of consumers are more likely to make a purchase when brands offer personalized experiences // Epsilon. - URL: https://www.epsilon.com/us/about-us/pressroom/new-epsilon-research21 indicates-80-of-consumers-are-more-likely-to-make-a-purchase-whenbrands-offer-personalizedexperiences - 2018 (дата обращения - 10.04.2023) 7. Колчанова, С.А. Сравнение фреймворков Flutter и React Native, используемых в разработке гибридных приложений / С.А. Колчанова // электронный E-Scio: журнал. – URL: content/uploads/2022/05/ESCIO-4_2022.pdf http://e-scio.ru/wp- (дата обращения: 10.04.2023) 8. Сайт с пакетами для Dart и Flutter: сайт. – URL: https://pub.dev/ (дата обращения: 10.04.2023) 9. Фримен, Адам ASP.NET Core 3 с примерами на C# для профессионалов / Адам Фримен. – Нью-Йорк : Apress, 2021. – 1184 с. – ISBN 978-5907365-46-9 (дата обращения: 28.04.2023) 10.Website Builder Statistics // HTH_Editors. - URL: https://hth.guide/websitebuilder-statistics/ - 2023 - (дата обращения 28.04.2023) 31 11.Xcode Documentation // Apple Developer : сайт. – URL: https://developer.apple.com/xcode/ (дата обращения: 28.04.2023) 12.Нативный backend-driven UI в iOS приложении на базе Editor.js // Вадим Попов. - URL: https://vc.ru/dev/431694-nativnyy-backenddriven-ui-v-iosprilozhenii-na-baze-editor-js - 2022 - (дата обращения 28.04.2023) 13.Backend Driven Development // Rodrigo Maximo. - https://medium.com/movile-tech/backend-driven-development-iosd1c726f2913b-2020-(дата обращения 05.05.2023) 22 URL: 14.Simple Website Builder Usage Distribution in the Top 1 Million Sites // builtwith.com. - URL: https://trends.builtwith.com/cms/simple-websitebuilder (дата обращения 05.05.2023) 15.Implementing Server-Driven UI Architecture on the Shop App // Ashwin Narayanan. - URL: https://shopify.engineering/server-driven-ui-in-shopapp-2022-(дата обращения 05.05.2023) 16.Петров, М.В. Исходный код // GitHub. 2023. [Электронный ресурс]. URL: https://github.com/qscr/vkr_2023 (дата обращения: 14.06.2023). 23