отображает каталог книг и данные читателя;
принимает действия пользователя (поиск, оформление заявки, возврат);
передаёт запросы бизнес-логике.
Модуль учёта выдачи и возврата книг
оформляет выдачу книги читателю;
фиксирует возврат книги;
продлевает срок пользования книгой;
контролирует сроки возврата и выявляет просрочки.
Модуль хранения данных
сохраняет информацию о книгах, читателях и выдачах;
выполняет поиск данных;
обеспечивает их обновление и удаление.
Такое разделение соответствует принципу разделения ответственности.
4. Определение связей между компонентами
Компоненты взаимодействуют следующим образом:
читатель и библиотекарь работают через пользовательский интерфейс;
пользовательский интерфейс обращается к модулям бизнес-логики;
модули бизнес-логики используют модуль хранения данных;
модуль учёта выдачи и возврата книг взаимодействует с модулем управления каталогом книг для проверки доступности экземпляра;
модуль учёта выдачи и возврата книг взаимодействует с модулем уведомлений для рассылки напоминаний о сроках возврата;
модуль управления каталогом книг использует модуль управления пользователями при определении прав доступа сотрудников к редактированию каталога.
Подобная организация уменьшает количество прямых зависимостей между компонентами.
5. Выбор архитектурного стиля
Для данной информационной системы выбрана слоистая клиент-серверная архитектура. Она включает три основных уровня (слоя) (табл. 2).
Уровень
Назначение
Слой представления
Обеспечивает взаимодействие читателя и библиотекаря с системой
Слой бизнес-логики
Реализует основные функции системы: учёт книг, выдачу, возврат, уведомления
Слой данных
Отвечает за хранение информации о книгах, читателях и выдачах в базе данных
6. Обоснование выбора архитектуры
Выбранная архитектура позволяет:
разделить пользовательский интерфейс и бизнес-логику;
упростить сопровождение системы;
независимо изменять пользовательский интерфейс и внутреннюю реализацию;
добавлять новые функции (например, электронные книги или онлайн-бронирование) без существенного изменения существующих компонентов.
Поскольку система управления библиотекой относится к информационным системам среднего размера, использование микросервисной архитектуры является избыточным.
7. Выводы
В ходе проектирования была разработана архитектура программного средства «Система управления библиотекой». Определены основные компоненты системы, установлены их обязанности и взаимосвязи, а также выбран архитектурный стиль — слоистая клиент-серверная архитектура, наиболее подходящий для дальнейшей разработки программного обеспечения.