Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Beskrovnov_poyasnitelnaya_zapiska.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆
      1. Модуль Dal

DAL – модуль содержащий в себе реализацию интерфейсов репозиториев описанных в DomainModel.DalInterfaces. Репозиторий – это класс, обеспечивающий операции с таблицей БД. Данный модуль можно разделить на совокупность следующих классов:

  • SnmpDbContext – EntityFramework (EF) контекс для работы с базой данных;

  • DatabaseInitializer – класс для создания базы данных;

  • DalInit – класс для инициализации DAL. Связывает интерфейсы репозиториев с конкретными классами (используется IOC контейнер StructureMap), настраивает маппинг EF сущностей с POCO объектами (используется AutoMapper);

  • Repos – содержит в себе реализации конкретных репозиториев и вспомогательные классы. Для каждого интерфейса, описанного в DomainModel.DalInterfaces есть собственная реализация.

Декомпозиция модуля Dal приведена на рисунке 3.8.

Рис.3.8.Декомпозиция модуля DAL

Компоненты инициализации базы данных отображены на рисунке 3.9.

Рис.3.9.Компоненты инициализации базы данных

Взаимодействие классов-репозиториев отображены на рисунке 3.10.

Рис.3.10.Взаимодействие классов - репозиториев

Описание репозиториев:

  • BaseRepository – базовый репозиторий для всех других;

  • ConfigRepo – репозиторий для загрузки устройств в кэш;

  • CustomersRepository – репозиторий для манипулирования объектами заказчиков;

  • DeviceItemsHistoryRepository – репозиторий для манипулирования объектами истории изменения параметров;

  • DeviceItemsRepository – репозиторий параметров устройства;

  • DeviceModelsRepository – репозиторий моделей устройств;

  • DevicesItemsRepository – репозиторий конкретных параметров устройств;

  • DeviceRepository – репозиторий устройств;

  • DeviceTypesRepository – репозиторий типов устройств;

  • EmailNotificationsRepository – репозиторий оповещений по email;

  • EmailsRepository – репозиторий адресов электронной почты;

  • MakersRepository – репозиторий производителей;

  • NotificationsRepository – репозиторий конкретных оповещений;

  • PhoneNotifications – репозиторий оповещений по телефону;

  • PhoneNumbersRepository – репозиторий номеров телефонов;

  • ReportParametersDataTypesRepository – репозиторий типов данных параметров отчетов;

  • ReportParametersRepository – репозиторий параметров отчетов;

  • ReportsRepository – репозиторий отчетов.

      1. Ядро системы

Основные классы системы:

  • SnmpScanServer – класс, инкапсулирующий в себе алгоритм опроса устройств, уведомления пользователя об изменении величины параметров согласно заданной конфигурации;

  • NotificationExecutor – класс, инкапсулирующий в себе логику уведомления пользователей;

  • EmailEntityComparer – вспомогательный класс;

  • PhoneNumberComparer – вспомогательный класс.

Схема взаимодействия классов изображена на рисунке 3.11.

Рис.3.11.Декомпозиция модуля Core

      1. Модуль «Пользовательский интерфейс»

UI – модуль содержит в себе веб - формы и вспомогательные классы. Используется паттерн MVC:

  • Models – содержит в себе модель для отображения пользователю Связана с моделью в DomainModel.EfModels по идентификаторам;

  • Controllers – контроллеры (обработчики) действий пользователя. Для каждого элемента модели есть свой контроллер;

  • UI – классы для конфигурирования приложения;

  • Code – содержит классы, инкапсулирующие логику веб - форм;

  • Helpers – вспомогательные классы.

Декомпозиция пользовательского интерфейса отображена на рисунке 3.12.

Рис.3.12.Декомпозиция модуля UI.

Основные модели и их взаимодействие отображены на рисунке 3.13.

Рис.3.13.Схема взаимодействия компонентов пользовательского интерфейсаI

        1. Модели

Описание моделей:

  • CustomerModel – модель заказчика;

  • DeviceModel – модель устройства;

  • DeviceModelModel – модель моделей устройства;

  • DeviceTypeModel – модель типа устройства;

  • EmailModel – модель адресов электронной почты;

  • EmailNotificationModel – модель оповещений по email;

  • ItemModel – модель параметра устройства;

  • MakerModel – модель производителя;

  • NotificationModel - модель оповещения;

  • PhoneNotificationModel – модель оповещения по телефону;

  • PhoneNumberModel – модель номера телефона;

  • ReportModel – модель отчета;

  • ReportParameterModel – модель параметра отчета;

  • UserModel – модуль пользователя;

  • WarningModel – модель аварийного устройства.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]