Рисунок 3.1. Схема базы данных
Для представления значений полей, содержимое таблиц БД представлено в табл. 3.1-3.6. Переведем все эти таблицы в SQL.
Таблица 3.1. Поля таблицы MigrationHistory
|
Название поля |
Тип |
Описание |
|
|
MigrationId |
nvarchar |
Идентификатор |
|
|
ContextKey |
nvarchar |
Ключ контекста |
|
|
Model |
varbinary |
Модель |
|
|
ProductVersion |
nvarchar |
Версия продукта |
Таблица 3.2. Поля таблицы AspNetUserRoles
|
Название поля |
Тип |
Описание |
|
|
UserId |
nvarchar |
Идентификатор пользователя |
|
|
RoleId |
nvarchar |
Идентификатор роли |
Таблица 3.3. Поля таблицы AspNetRoles
|
Название поля |
Тип |
Описание |
|
|
Id |
nvarchar |
Идентификатор роли |
|
|
Name |
nvarchar |
Наименование роли |
Таблица 3.4. Поля таблицы Users
|
Название поля |
Тип |
Описание |
|
|
Id |
nvarchar |
Идентификатор |
|
|
|
nvarchar |
Почтовый адрес |
|
|
EmailConfirmed |
bit |
Совпадение почтовых адресов |
|
|
PasswordHash |
nvarchar |
Хэш пароля |
|
|
LockoutEndDateUtc |
datetime |
Время выхода |
|
|
LockoutEnabled |
bit |
Выход из системы |
|
|
AccessFailedCount |
int |
Количество неудачных входов |
|
|
UserName |
nvarchar |
Имя пользователя |
Таблица 3.5. Поля таблицы AspNetUserClaims
|
Название поля |
Тип |
Описание |
|
|
Id |
int |
Идентификатор запроса пользователя |
|
|
UserId |
nvarchar |
Идентификатор пользователя |
|
|
ClaimType |
nvarchar |
Тип запроса |
|
|
ClaimValue |
nvarchar |
Значение запроса |
Таблица 3.6. Поля таблицы UserLogins
|
Название поля |
Тип |
Описание |
|
|
LoginProvider |
nvarchar |
Логин провайдера |
|
|
ProviderKey |
nvarchar |
Ключ провайдера |
|
|
UserId |
nvarchar |
Идентификатор пользователя |
Таблица 3.7. Поля таблицы ConfigutationItemsModels
|
Название поля |
Тип |
Описание |
|
|
Id |
int |
Идентификатор КЕ |
|
|
Name |
nvarchar |
Наименование КЕ |
Таблица 3.8. Поля таблицы ConfigutationItemsLinks
|
Название поля |
Тип |
Описание |
|
|
Id |
int |
Идентификатор связи |
|
|
ConfigurationId |
int |
Идентификатор конфигурации |
|
|
ConfigurationItemId |
int |
Идентификатор конфигурационной единицы |
В общем случае модели данных разрабатываются таким образом, чтобы не зависеть от конкретной базы данных. Поэтому разработанную физическую модель данных можно применить к любой СУБД. В нашем случае это будет Miсrоsоft SQL Server 2014.
Таблица 3.9. Поля таблицы ConfigurationsModels
|
Название поля |
Тип |
Описание |
|
|
Id |
int |
Идентификатор |
|
|
Name |
nvarchar |
Наименование конфигурации |
|
|
StatusId |
int |
Идентификатор статуса |
|
|
Comment |
nvarchar |
Комментарий к конфигурации |
|
|
InfoInstallFile |
nvarchar |
Файл со стратегией установки |
|
|
InfoInstallUrl |
nvarchar |
Ссылка на стратегию установки |
|
|
InfoTestFile |
nvarchar |
Файл с отчётом о тестировании |
|
|
InfoTestUrl |
nvarchar |
Ссылка на отчёт о тестировании |
|
|
InfoCreatingName |
nvarchar |
Имя образа |
|
|
InfoCreatingDate |
datetime |
Дата создания образа |
|
|
InfoCreating Comment |
nvarchar |
Комментарий к созданию образа |
|
|
InfoTeachCount |
nvarchar |
Список учебных и рабочих мест для развёртывания |
|
|
InfoTeachInstallDate |
datetime |
Дата развёртывания |
|
|
InfoTeachComment |
nvarchar |
Комментарий к развёртыванию |
|
|
InfoAuditCount |
nvarchar |
Список учебных и рабочих мест для аудита |
|
|
InfoAuditInstallDate |
datetime |
Дата проведения аудита |
|
|
InfoAuditComment |
nvarchar |
Комментарий к аудиту |
Таблица 3.10. Поля таблицы ConfigurationStatusModels
|
Название поля |
Тип |
Описание |
|
|
Id |
int |
Идентификатор статуса |
|
|
Key |
int |
Ключ |
|
|
Name |
nvarchar |
Наименование статуса |
Таблица 3.11. Поля таблицы ConfigurationQueries
|
Название поля |
Тип |
Описание |
|
|
Id |
int |
Идентификатор запроса |
|
|
ConfigurationId |
int |
Идентификатор конфигурации |
|
|
UserId |
int |
Идентификатор пользователя |
|
|
Sign |
nvarchar |
Статус запроса |
Таблица 3.12. Поля таблицы ConfigurationPlans
|
Название поля |
Тип |
Описание |
|
|
Id |
int |
Идентификатор CM-плана |
|
|
Link |
nvarchar |
Ссылка на CM-план |
4. Реализация системы
4.1 Реализация пользовательских интерфейсов
Разрабатываемая информационная система имеет три категории пользователей - это инженер по конфигурациям, поставщик требований и поставщик запросов на изменение. Каждая из ролей имеет свой набор функциональных возможностей.
Первая форма при входе в систему - это форма авторизации в системе. Авторизация происходит по логину и паролю. Информация о роли пользователя уже хранится в системе. Внешнее представление данной формы представлено на рис. 4.1.
Рисунок 4.1. Окно авторизации
После входа появляется главное окно, представляющее возможность работы с конфигурациями и планом их управления. Внешнее представление этой формы представлено на рис. 4.2.
Рисунок 4.2. Главное окно системы
Данная форма даёт возможность просмотра существующих конфигураций. Для работы с какой-либо конфигурацией необходимо использовать кнопки справа. Напротив каждой из конфигураций указан статус конфигурации - текущее положение конфигурации в жизненном цикле. Статус изменяется системой автоматически и не может быть изменён вручную. Вверху имеется кнопка позволяющая создать новую конфигурацию, при нажатии на которую появляется новая форма. При нажатии на главной форме на кнопку создания новой конфигурации, откроется форма, представленная на рисунке 4.3. Необходимо ввести название новой конфигурации и произвести сохранение, после чего можно выйти обратно в главную форму.
Рисунок 4.3. Форма добавления конфигурации
При выборе в главном окне кнопки «Составы» осуществляется переход на библиотеку конфигурационных единиц (рис. 4.4).
Рисунок 4.4. Форма, отображающая конфигурационные единицы
Этот список можно пополнить новыми конфигурационными единицами, нажав соответствующую кнопку вверху страницы, после чего откроется новая форма (рис. 4.5).
Рисунок 4.5. Форма, отображающая конфигурационные единицы
Проекты конфигураций просматриваются по нажатию кнопки «Элементы состава». Список отображает нахождение конфигурационной единицы в составе конфигурации (рис. 4.6).
Рисунок 4.6. Форма проектов конфигураций
Кнопка «Создать» открывает новую форму и позволяет добавить одну конфигурационную единицу в состав любой из конфигураций (рис. 4.7).
Рисунок 4.7. Форма добавления конфигурационной единицы в проект
Окно запросов на изменение выглядит следующим образом (рис. 4.8) и позволяет просмотреть список запросов на утверждение поставщиками требований, созданных специалистом.
Рисунок 4.8. Форма запросов
Окно создания нового запроса выглядит следующим образом (рис. 4.9).
Рисунок 4.9. Форма создания запроса
При переходе по кнопке "Стратегия установки" появляется форма, изображённая на рисунке 4.10. Данная форма позволяет создать или изменить ссылку на стратегию установки.
Рисунок 4.10. Окно стратегии установки конфигурации
При переходе по кнопке "Отчёт о тестировании" появляется форма, изображённая на рисунке 4.11. Данная форма позволяет создать или изменить ссылку на отчёт о тестировании.
Рисунок 4.11. Окно отчёта о тестировании конфигурации
После заполнения форм «Стратегия установки» и «Отчёт о тестировании» в окне о конфигурации активируется кнопка "Отчёт о создании образа конфигурации". При переходе по этой кнопке появляется окно, представленное на рисунке 4.12.
Рисунок 4.12. Окно отчёта об создании образа конфигурации
После заполнения данной форму статус у конфигурации изменяется на "Изготовлено". В окне о конфигурации активируется кнопка "Отчёт о развёртывании". При переходе по данной кнопке появляется окно, представленное на рисунке 4.13.
Рисунок 4.13. Окно отчёта о развёртывании конфигурации
После заполнения данной форму статус у конфигурации изменяется на "Эксплуатируется". В окне о конфигурации активируется кнопка "Отчёт о проведении аудита". При переходе по кнопке "Отчёт о проведении аудита" появляется окно, представленное на рисунке 4.14.
Рисунок 4.14. Окно отчёта о проведении аудита конфигурации
После заполнения статус у конфигурации изменяется на "Выведено из эксплуатации".
Реализация компонентов
После этапа проектирования следует этап реализации и тестирования координатора бизнес-процессов. Инструментальными средствами выступили Visual Studio на языке высокого уровня С#. Возможности среды и языка очень велики, так что выбор инструментария можно считать эффективным.
Система выполнена с помощью ASP.NET MVC Framework - фреймворка для создания веб-приложений, который реализует шаблон Model-View-Controller.
Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») является схемой разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: модель, представление и контроллер таким образом, что модификация каждого компонента может осуществляться независимо.
Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние.
Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели.
Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.
По результатам данного этапа будут сформированы руководства пользователя и программиста.
Для более удобного доступа к данным используется фреймворк Entity Framework. Этот фреймворк позволяет абстрагироваться от структуры конкретной базы данных и вести все операции с данными через модель. Создается контекст данных для облегчения доступа к БД на основе некоторой модели. В соответствующую папку добавляются классы, описывающие модели каждой из сущностей системы. После завершения работы с моделями, необходимо создать контроллеры, которые будут связывать модели и пользовательские интерфейсы.
Например, для создания контроллера для Конфигурации получаем из базы данных список идентификаторов объектов Configurations. Далее мы создаем объект Id в объекте ViewBag и присваиваем ему этот список (рис. 4.15). Объект ViewBag является таким объектом, который передается в представление. И мы можем определить в этом объекте любую переменную и передать ей некоторое значение, а затем в представлении извлечь это значение.
Рисунок 4.15. Контроллер ConfigurationController
Создание конфигурации определяется в контроллере следующим образом (см. рис. 4.16).
Рисунок 4.16. Контроллер ConfigurationController