Files
SSAUGenerator/content/03-design.md
2026-10-03 23:45:19 +04:00

7.8 KiB
Raw Blame History

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ

В разделе описаны архитектура, модель данных и пользовательские сценарии разрабатываемой информационной системы.

Архитектура системы

Система построена по трёхуровневой архитектуре. Взаимодействие компонентов показано на рисунке @fig:data-flow.

::: figure "Схема информационных потоков" id=data-flow file=images/data-flow.png а) направление передачи данных; б) компоненты системы. :::

Состав программных модулей приведён в таблице @tbl:modules.

::: table "Состав программных модулей" id=modules

Модуль Назначение Технология
Веб-интерфейс Отображение рабочих экранов оператора React
API-шлюз Обработка HTTP-запросов клиентов Node.js
Модуль заявок Жизненный цикл обращения Node.js
Модуль уведомлений Рассылка оповещений исполнителям Node.js
Модуль отчётности Формирование отчётов за период Node.js
Служба аутентификации Проверка учётных данных JWT
Хранилище данных Хранение заявок и справочников PostgreSQL
Кэш Ускорение чтения справочников Redis
Очередь сообщений Асинхронная обработка событий RabbitMQ
Сборщик журналов Централизованное логирование ELK
Планировщик Периодические задачи и отчёты Cron
Модуль интеграции Обмен данными с внешними системами REST
:::

Модель данных

Основные сущности предметной области и их атрибуты приведены в таблице @tbl:entities.

::: table "Основные сущности и атрибуты" id=entities

Сущность Атрибут Тип Обяз. Описание
Заявка id Целое Да Уникальный идентификатор
Заявка subject Строка Да Тема обращения
Заявка description Текст Да Описание проблемы
Заявка category_id Целое Да Ссылка на категорию
Заявка priority_id Целое Да Ссылка на приоритет
Заявка assignee_id Целое Нет Ссылка на исполнителя
Заявка created_at Дата/время Да Момент регистрации
Заявка closed_at Дата/время Нет Момент закрытия
Категория id Целое Да Уникальный идентификатор
Категория name Строка Да Наименование категории
Приоритет id Целое Да Уникальный идентификатор
Приоритет name Строка Да Наименование приоритета
Приоритет reaction_min Целое Да Норматив реакции, мин
Пользователь id Целое Да Уникальный идентификатор
Пользователь full_name Строка Да Фамилия, имя, отчество
:::

Связи между сущностями описаны в таблице @tbl:relations.

::: table "Связи между сущностями" id=relations

Связь Тип Описание
Заявка — Категория Многие к одному Заявка относится к одной категории
Заявка — Приоритет Многие к одному Заявка имеет один приоритет
Заявка — Пользователь Многие к одному Заявка назначена одному исполнителю
Заявка — Комментарий Один ко многим Заявка содержит комментарии
Пользователь — Роль Многие ко многим Пользователь может иметь роли
Категория — Подкатегория Один ко многим Категория содержит подкатегории
:::

Пользовательские сценарии

Интерфейс списка заявок приведён на рисунке @fig:interface.

::: figure "Интерфейс списка заявок" id=interface file=images/interface.png а) область навигации; б) табличное представление данных. :::

Зависимость трудозатрат от выбранной стратегии обработки показана на рисунке @fig:chart.

::: figure "Зависимость трудозатрат от стратегии обработки" id=chart file=images/chart.png Оценка получена по результатам пилотной эксплуатации. :::

Экономия времени за месяц вычисляется по формуле @eq:gain.

::: formula id=gain G = (T_base - T_new)*N :::

::: where G — экономия времени за месяц, мин; N — число обращений в месяц. :::

К системе предъявляются следующие требования:

  • функциональные:
    1. регистрация и классификация заявок;
    2. назначение исполнителя и контроль сроков;
    3. формирование отчётов за период.
  • нефункциональные:
    1. время отклика не более двух секунд;
    2. одновременная работа не менее ста пользователей.

Особенности реализации

При проектировании учтены ограничения, перечисленные в таблице @tbl:constraints.

::: table "Ограничения и меры" id=constraints

Ограничение Влияние Мера
Ограниченный бюджет Сужение выбора технологий Применение открытых библиотек
Сжатые сроки Риск неполной реализации Итеративная разработка
Нагрузка до 100 пользователей Требования к производительности Кэширование и индексы
Устаревшее оборудование Ограничение ресурсов Облегчённый веб-интерфейс
Разрозненные данные Сложность интеграции Единая модель данных
Требования безопасности Дополнительные проверки Аутентификация и журналирование
:::

::: notes Оценка выполнена для среднего месяца пилотной эксплуатации. Отклонение фактических значений не превышает десяти процентов. :::