АННОТАЦИЯ 3
Перечень условных обозначений, символов, сокращений, терминов 4
Введение 5
1 Анализ и проектирование 6
1.1 Краткий разбор текущей системы 6
1.2 Выявление недостатков системы TSU.Helper для обоснования реализации
новой системы 13
1.3 Описание требования к новой системе Request Helper 14
1.4 Формализация требований 14
1.5 Первичная архитектура слоя модели 18
1.6 Описание части системы, которая реализуется в данной работе 19
1.7 Описание особенностей части системы, которая реализуется в данной работе 20
1.7.1 Ролевая система 20
1.7.2 Переход статуса заявки 24
2 Обзор инструментов разработки и архитектурных решений 35
2.1 Инструменты 35
2.1.1 ASP.NET Core 6 35
2.1.2 Entity Framework Core 36
3 Проектирование и разработка 39
3.1 Диаграмма пакетов 39
3.1.1 Описание пакета RequestHelper.DataAccessLayer 40
3.1.2 Описание пакета RequestHelper.BusinessLayer 43
3.1.3 Описание пакета RequestHelper.Api 45
3.1.4 Описание пакета RequestHelper.Common 47
3.1.5 Зависимости между пакетами 48
3.2 Диаграмма слоя данных системы Request Helper 48
3.3 Алгоритмы формирования стейт-машины компаниями 50
3.4 Алгоритм перехода статусов 52
3.5 Реализация ролевой системы 53
3.6 Алгоритм назначения на роли 56
3.7 Результаты работы 58
Заключение 63
Литература 64
Приложение А. Внешний вид системы TSU.Helper 65
Хорошая, эффективная и быстрая работа любой компании не в последнюю очередь зависит от правильно выбранного программного обеспечения.
С ростом организации увеличивается число ее работников и возникает потребность в использовании программных продуктов для грамотной организации решения возникающих проблем, их быстрой обработки и реагирования.
Система Request Helper призвана помочь в этом. Она создана для того, чтобы работники компании могли подавать заявки о возникающих проблемах, а ответственные лица вовремя реагировали на возникающие заявки и решали проблему. Приложение предусматривает ролевую систему для разделения ответственности, удобного и грамотного взаимодействия с заявками внутри компании - в то время как одни пользователи будут непосредственно заниматься решением проблемы, другие смогут обрабатывать поступающие заявки, назначать им исполнителей. Менеджерам компаний доступно создание всех необходимых компаниям сущностей, а также гибкая настройка работы с заявками.
Для общежитий ТГУ подобная система, - TSU.Helper, - уже существует и активно используется. Благодаря опыту использования этого приложения возникла идея расширить область действия с ТГУ на различные компании, создав новое приложение - Request Helper.
Целью данной работы является: спроектировать и реализовать серверную часть приложения Request Helper, связанную с администрированием и менеджментом.
Для выполнения цели работы были поставлены и выполнены следующие задачи:
• Выявить преимущества и недостатки системы TSU.Helper и формализовать требования к новой системе
• Провести проектирование структуры данных серверной части
• Реализовать в системе функциональные возможности, которые связаны с администрированием и менеджментом.
Решению поставленных задач посвящена данная выпускная квалификационная работа.
В рамках выполнения выпускной квалификационной работы была разработана серверная часть приложения Request Helper, включающей в себя функциональные возможности, связанные с администрированием и менеджментом. Для этого были решены все поставленные в работе задачи:
• Выявить преимущества и недостатки системы TSU.Helper, описать их и сформулировать требования к новой системе
• Провести проектирование структуры данных серверной части
• Реализовать в системе Request Helper функциональных возможностей, которые связаны с администрированием и менеджментом
Разработанное решение допускает дальнейшее развитие функциональности приложения, что и планируется сделать в будущем. На данный момент приложение находился на стадии доработки. Таким образом, цель работы достигнута.
1. Code First Migrations в командных средах // Документация Microsoft - [Б. м.], 2022
- URL: https://learn.microsoft.com/ru-ru/ef7ef6/modeling/code-first/migrations/teams (дата обращения: 15.03.2023)
2. Database First // Metanit - [Б. м.], 2015 -
URL: httpsV/metanit.com/sharp/entityframework^A.php (дата обращения: 23.03.2023)
3. Finite-state machine // Википедия: свободная энциклопедия. - [Б. м.], 2023. - URL: https://wiki2.org/en/Finite-state_machine (дата обращения: 11.04.2023)
4. Понимание REST API: основные понятия и принципы работы // Документация Yandex Cloud - [Б. м.], 2023 - URL: https://cloud.yandex.ru/docs/glossary/rest-api (дата обращения: 22.04.2023)
5. Алистер Коберн. Современные методы описания функциональных требований к системам: пер. с англ. / Е. Борисова [и др.]. - Издательство «Лори», 2002. - 263c.
6. База данных first: // Документация Microsoft - [Б. м.], 2022 -
URL: https://learn.microsoft.com7ru-ru/ef/ef6/modeling/designer/workflows/database-first (дата обращения: 07.05.2023)
7. К. Ларман. Применение UML и шаблонов проектирования. 2-е издание. Пер. с англ. - А. Ю. Шелестова. - Издательский дом «Вильямс», 2004 - 624 с.
8. Мартин Фаулер. Архитектура корпоративных программных приложений.: Пер. с англ. — М.: Издательский дом "Вильяме", 2006. - 544 с.
9. Мягкое удаление в REST API // Статья на Habr - [Б. м.], 2019 -
URL: https://habr.com7ru/articles/440886/ (дата обращения: 05.04.2023)
10. Общие сведения об ASP.NET Core // Документация Microsoft - [Б. м.], 2023 - URL: httpsV/learn.microsoft.com/ru-ru/aspnet/core/introduction-to-aspnet- core?view=aspnetcore-6.0 (дата обращения: 04.04.2023)
11. Простые стейт-машины на службе у разработчика // Статья на Habr - [Б. м.], 2012