Пояснительная записка (1195493), страница 4
Текст из файла (страница 4)
Рисунок 3.2.2 – Диаграмма классов приложения администратора
Подключаемая библиотека классов содержит вспомогательные классы, классы обеспечивающие основной функционал системы, классы для взаимодействия с базой данных, а также классы, повторяющие структуру таблиц в базе данных. Класс ApplicationDBContext, унаследованный от класса DbContext, обеспечивает весь функционал для взаимодействия с базой данных, с помощью классов, описывающих структуру базы данных. Классы, описывающие структуру базы данных, описывают поля таблиц и связи базы данных. Данный класс имеет функционал для вставки, изменения, удаления и выборки данных из базы данных. Библиотека содержит класс ConnectedFlashdisk, описывающий подключенный flash-накопитель информации и его свойства, необходимые для регистрации устройства. Класс CryptoHash содержит методы для генерации случайной соли и для генерации хэша с помощью криптографической хэш-функции SHA-512. Класс WMIHelper содержит методы для получения информации о flash-накопителе с помощью классов технологии WMI. Полученная информация, в дальнейшем, используется для формирования экземпляра класса ConnectedFlashdisk. Данные классы были вынесены в подключаемую библиотеку, так как используются, как и в приложении администратора, так и в приложении пользователя. В подключаемой библиотеке класс ApplicationDBContext используется как в приложении администратора, так и в приложении пользователя. Этот класс необходим для взаимодействия с базой данных, что является основным способом получения и обработки данных, используемых в приложениях администратора и пользователя. Класс CryptoHash используется как в приложении администратора, так и в приложении пользователя. Этот класс необходим для хэширования паролей и данных на flash-накопителе. С помощью этого класса осуществляется проверка пароля и данных на flash-накопителе информации. Класс ConnectedFlashdisk используется как в приложении администратора, так и в приложении пользователя. Этот класс необходим для отображения информации о подключенном flash-накопителе. Данная диаграмма представлена на рисунке 3.2.3.
Рисунок 3.2.3 – Диаграмма классов подключаемой библиотеки
Приложение пользователя содержит классы, описывающие интерфейс, класс, определяющий права для пользователя, на основании подключенных flash-накопителей, класс выставляющий разрешения на доступ к flash-накопителям на основе полученных прав. Данная диаграмма представлена на рисунке 3.2.4.
Рисунок 3.2.4 – Диаграмма классов приложения пользователя
3.3 Диаграммы последовательности
На диаграммах последовательности отображается структура взаимодействия между объектами системы и экземплярами актеров. Кроме того, на диаграмме последовательности отображается примерное время выполнения различных операции и время существования и активности объектов. Взаимодействие между экземплярами актеров и объектами моделируется посредством передачи сообщений. Сущность, отправляющую сообщение, называют клиентом, а принимающую – сервером. Таким образом, сообщения не только передают некоторую информацию, но и требуют или предполагают выполнения сервером определенных действий или передачу (возврат) клиенту необходимой информации. Если принимающей сообщение сущностью является объект, то оно представляет собой операцию (метод) объекта-сервера. Прием сообщения обычно трактуется, как возникновение события на сервере. Сообщения изображаются стрелкой с обязательным указанием направления (остриё стрелки указывает на принимающую сторону) и спецификации
Для разрабатываемой информационной системы были построены две диаграммы последовательности: первая описывает взаимодействие между пользователем и клиентским приложением, которая представлена на рисунке 3.3.1.
Рисунок 3.3.1 – Диаграмма последовательности – пользователь и клиентское приложение
Пользователь на диаграмме является актером, получающим информацию о flash-накопителях и права доступа посредством различных запросов.
Приложение формирует и отправляет запрос WMI для получения данных о накопителях, а затем на основе полученных данных отправляет запрос СУБД на получение прав. Права имеют приоритет, сначала приложение будет пытаться найти правило для пользователя и конкретного накопителя, если такое не будет найдено, то для должности пользователя и конкретного накопителя. В случае если и такое не будет найдено, будут запрошены общие права для пользователя, если таковых нет, то для должности пользователя. Если не будет найдено ни одного из перечисленных правил, то будет использовано общее правило для накопителя, если такое не будет найдено, то доступ будет закрыт.
Взаимодействие между администратором и приложением администратора, представлено на рисунке 3.3.2.
Рисунок 3.3.2 – Диаграмма последовательности – администратор и приложение администратора
3.4 Диаграмма базы данных
Информационная модель предназначена для представления объектов и отношений, ограничений, правил и операций с целью указать семантику данных для конкретной предметной области. Как правило, она определяет отношения между классами объектов, но может также включать отношения между конкретными объектами. Таким образом, разработка информационной модели представляет собой проектирование модели базы данных.
Для решения USBRC диаграмма базы данных представлена на рисунке 3.4.1.
Рисунок 3.4.1 – Диаграмма базы данных
Таким образом, в базу данных, разработанную для системы USBRC входят 10 таблиц.
Таблица Positions (таблица 3.4.2) содержит информацию о должностях, которые назначаются пользователям. Также для должности может назначаться право и таблица связана с таблицей Rights по полю RightID.
Таблица 3.4.2 – Positions – список должностей
| Наименование поля | Тип | Описание |
| PositionID | int | Идентификатор должности |
| PositionName | nvarchar | Название должности |
| RightID | int | Идентификатор права |
Таблица Users (таблица 3.4.3) содержит информацию о пользователях. Также пользователю можно назначаться право и таблица связана с таблицей Rights по полю RightID и с таблицей Position по полю PositionID.
Таблица 3.4.3 – Users – список пользователей
| Наименование поля | Тип | Описание |
| UserID | int | Идентификатор пользователя |
| UserLogin | nvarchar | Логин пользователя |
| UserPassword | nvarchar | Пароль пользователя |
| UserAuthKey | varbinary | Соль для хэширования пароля |
| UserSurname | nvarchar | Фамилия пользователя |
| UserName | nvarchar | Имя пользователя |
| UserPatronymic | nvarchar | Отчество пользователя |
| PositionID | int | Идентификатор должности |
| RightID | int | Идентификатор права |
Таблица AccessHistories (таблица 3.4.4) содержит информацию о доступах. Также записи о доступе назначается flash-накопитель, пользователь и право, таблица связана с таблицей Flashdisks по полям FlashdiskVID и FlashdiksPID, с таблицей Users по полю UserID и с таблицей Rights по полю RightID.
Таблица 3.4.4 – AccessHistories – список записей о доступах
| Наименование поля | Тип | Описание |
| AccessHistoryID | int | Идентификатор записи истории доступа |
| AccessHistoryDate | datetime | Дата и время доступа |
| FlashdiskVID | nvarchar | VID flash-накопителя |
| FlashdiskPID | nvarchar | PID flash-накопителя |
| UserID | int | Идентификатор пользователя |
| RightID | int | Идентификатор права |
Таблица LoginHistories (таблица 3.4.5) содержит информацию об авторизациях на пользовательских приложениях. Таблица связана с таблицей Users по полю UserID.
Таблица 3.4.5 – LoginHistories – список записей о входах и выходах
| Наименование поля | Тип | Описание |
| LoginHistoryID | int | Идентификатор записи истории аутентификаций |
| LoginHistoryDate | datetime | Дата и время входа/выхода |
| LoginHistoryComputerName | nvarchar | Имя компьютера |
| LoginHistoryDirection | bit | Направление действия: вход или выход |
| UserID | int | Идентификатор пользователя |
Таблица Roles (таблица 3.4.6) содержит информацию ролях.
Таблица 3.4.6 – Roles – список ролей
| Наименование поля | Тип | Описание |
| RoleID | int | Идентификатор роли |
| RoleName | nvarchar | Имя роли |
Таблица RoleUsers (таблица 3.4.7) содержит сопоставление id пользователя и id роли для связи многие ко многим. Таблица связана с таблицей Users по полю UserID и с таблицей Roles по полю RoleID.
Таблица 3.4.7 – RoleUsers – вспомогательная таблица
| Наименование поля | Тип | Описание |
| Role_RoleID | int | Идентификатор роли |
| User_UserID | int | Идентификатор пользователя |
Таблица Rights (таблица 3.4.8) содержит информацию о правах.
Таблица 3.4.8 – Rights – список прав
| Наименование поля | Тип | Описание |
| RightID | int | Идентификатор права |
| RightName | nvarchar | Название права |
Таблица UserRightFlashdisks (таблица 3.4.9) содержит информацию о правах для конкретного пользователя на конкретный flash-накопитель. Также записи назначается flash-накопитель, пользователь и право. Таблица связана с таблицей Flashdisks по полям FlashdiskVID и FlashdiksPID, с таблицей Users по полю UserID и с таблицей Rights по полю RightID.















