Модель поведения автоматизированной системы
Для прецедентов, описанных выше, составим диаграмму видов деятельности.
Диаграмма видов деятельности для прецедента Считывание информации о звонках и запись в БД приведена на рисунке 5.
После срабатывания модуля регистрации звонков, система соединяется с АТС по SMDR протоколу и, если соединение успешно, считывает информацию о накопившихся звонках в памяти АТС. После считывания, информация о звонках записывается в БД, а из памяти АТС информация о звонках удаляется. Если при соединении с АТС произошла ошибка, система выводит соответствующее сообщение и записывает информацию об ошибке в LOG-файл.

Рисунок 5 - Диаграмма деятельностей для прецедента "Приём информации о звонках и запись в БД"
Следующий прецедент - просмотр информации об оплате. Диаграмма его деятельностей приведена на рисунке 6.
Для того чтобы просмотреть информацию об оплате, пользователь на вкладке "Отчёты", выбирает из выпадающего списка год и вводит номер телефона абонента, для которого требуется просмотреть информацию об оплате и нажимает на кнопку "Показать". Система проверяет корректность ввода (введён ли номер телефона). Если ввод не корректен, система выдаёт сообщение "Проверьте правильность ввода" и возвращается в исходное состояние. Если ввод корректен, система посылает запрос к БД на получение информации о сумме к оплате за каждый месяц выбранного года. Далее, система посылает запрос к ИС регистрации оплаты на получение информации об уже уплаченной сумме за каждый месяц выбранного пользователем года. Далее, система рассчитывает сумму долга за каждый месяц по формуле Sd = D - P, где Sd - сумма долга за месяц, D - сумма к оплате, P - уже уплаченная сумма. Далее система выводит полученный список на экран и остаётся в таком состоянии. А если пользователь нажал кнопку "Распечатать", система выводит полученный список на принтер.

Рисунок 6 - Диаграмма деятельностей для прецедента "Просмотр информации об оплате"
Диаграмма видов деятельности для прецедента Вывод расшифровки звонков показана на рисунке 7. Пользователь переходит на вкладку "Отчёты" на которой получает две возможности: вывести расшифровку звонков для конкретного абонента, либо распечатать расшифровки звонков для всех абонентов сразу. Если требуется распечатать расшифровку для всех абонентов, пользователь выбирает из выпадающего списка месяц и нажимает кнопку "Распечатать для всех абонентов". Система выводит расшифровку звонков для всех абонентов на принтер. Если требуется просмотреть расшифровку звонков для конкретного абонента, пользователь выбирает месяц из списка и вводит номер телефона абонента. Система проверяет корректность ввода и, если данные введены не корректно, выводит соответствующее сообщение и возвращается в исходное состояние. Если данные корректны, система посылает запрос к БД на получение информации о звонках и сумме к оплате по каждому звонку в отдельности, выводит список на экран и остаётся в таком состоянии. Если пользователь нажал кнопку "Распечатать" система распечатывает созданный отчёт.

Рисунок 7 - Диаграмма деятельностей для прецедента "Вывод расшифровки звонков"
На рисунке 8 приведена диаграмма видов деятельностей для прецедента "Поиск абонента". Система получает от пользователя или другого прецедента системы номер телефона абонента. Далее, система выполняет поиск абонента с этим номером телефона в БД. Если абонент не найден, система выводит соответствующее сообщение. Если абонент найден, система выводит информацию об абоненте.

Рисунок 8 - Диаграмма деятельностей для прецедента Поиск абонента
На рисунке 9 изображена диаграмма видов деятельностей для прецедента Запрос информации об оплате от ИС регистрации оплаты.
Для получения информации об оплате система подключается к БД ИС регистрации оплаты и делает запрос на получение информации об оплате для определённого номера телефона, за определённый месяц и год. Если информация не получена, система выдаёт соответствующее сообщение. Если информация получена, система выводит её на экран или обрабатывает дальше в зависимости от требований.

Рисунок 9 - Диаграмма деятельностей для прецедента Запрос информации об оплате от ИС регистрации оплаты
На рисунке 10 изображена диаграмма видов деятельностей для прецедента Просмотр кандидатов на отключение.
Пользователь, на вкладке "Отчёты" нажимает кнопку "Показать кандидаты на отключение".
Система рассчитывает сумму долга для каждого абонента за весь период до последнего месяца.
Если сумма долга больше 0, абонент считается кандидатом на отключение. Далее, система выводит список на экран.
Если пользователь нажимает кнопку "Распечатать", система выводит полученный список на печать.

Рисунок 10 - Диаграмма деятельностей для прецедента Просмотр кандидатов на отключение
На рисунке 11 изображена диаграмма видов деятельностей для прецедента Изменение пароля. Для изменения пароля пользователь переходит на вкладку "Настройки системы" и вводит следующие данные: имя пользователя (Логин), текущий пароль, новый пароль, подтверждение нового пароля. Система проверяет текущий пароль (Логин которого ввёл пользователь). Если пароль не правильный, система выдаёт соответствующее сообщение и возвращается в исходное состояние. Если пароль правильный, система проверяет, совпадает ли новый пароль и подтверждение. Если новый пароль и подтверждение не совпадают, система выводит соответствующее сообщение и возвращается в исходное состояние. Если новый пароль и подтверждение совпадают, система зашифровывает новый пароль и записывает его в БД на место старого и выводит сообщение "Пароль изменён".

Рисунок 11 - Диаграмма деятельностей для прецедента Изменение пароля
На рисунке 12 изображена диаграмма видов деятельности для прецедента Изменение имени сервера БД SQL ИС регистрации оплаты.
Для изменения имени сервера БД пользователь переходит на вкладку "Настройки системы" и вводит новое имя сервера БД SQL ИС регистрации оплаты. Далее, если пользователь нажал кнопку "Тест соединения", система предпринимает попытку установить соединение с введённым пользователем именем сервера. Если соединение удалось, система выводит соответствующее сообщение. Если соединение не удалось, система выводит сообщение о том, что соединиться с БД не удалось. Если пользователь нажал кнопку "Изменить" система проверяет корректность ввода (имя сервера не может быть пустым). Если ввод корректен, система записывает в реестр и выводит сообщение о том, что имя сервера БД изменено. Если ввод не корректен, система выводит соответствующее сообщение и возвращается в исходное состояние.

Рисунок 12 - Диаграмма деятельностей для прецедента Изменение имени сервера БД SQL ИС регистрации оплаты
На рисунках 13, 14, 15 и 16 изображены диаграммы видов деятельности для прецедента CRUD абонента.
Если необходимо добавить абонента, пользователь, на вкладке "Работа с абонентами" вводит данные нового абонента и нажимает кнопку "Создать".
Система проверяет данные на корректность. Если введённые данные не корректны, система выводит сообщение об ошибке и возвращается в исходное состояние. Если данные корректны, система предпринимает попытку поиска абонента с введённым номером телефона в БД. Если абонент найден, система выводит сообщение о том, что абонент с таким номером телефона уже зарегистрирован в системе. Если абонент не найден, система записывает введённые данные об абоненте в БД.
Если необходимо прочитать данные об абоненте (найти абонента), пользователь вводит номер телефона абонента на вкладке "Работа с абонентами" и нажимает кнопку "Найти". Система предпринимает попытку поиска абонента. Если абонент не найден, система выводит соответствующее сообщение и возвращается в исходное состояние. Если абонент найден, система выводит все данные о нём на экран.
Если необходимо изменить данные абонента, пользователь вводит номер телефона абонента на вкладке "Работа с абонентами" и нажимает кнопку "Найти". Система предпринимает попытку поиска абонента.
Если абонент не найден, система выводит соответствующее сообщение и возвращается в исходное состояние. Если абонент найден, система выводит все данные о нём на форму в текстовые поля, доступные для редактирования. Пользователь может изменить данные абонента.
Пользователь нажимает кнопку "Изменить данные". Система записывает изменённые данные в БД на место старых.
Если необходимо удалить абонента, пользователь вводит номер телефона абонента на вкладке "Работа с абонентами" и нажимает кнопку "Найти". Система предпринимает попытку поиска абонента.
Если абонент не найден, система выводит соответствующее сообщение и возвращается в исходное состояние. Если абонент найден, система выводит все данные о нём на экран.
Пользователь нажимает кнопку "Изменить данные". Система выдаёт запрос на подтверждение удаления абонента, если пользователь реагирует утвердительно, система помечает абонента в БД как удалённого.

Рисунок 13 - Диаграмма деятельностей для прецедента CRUD абонента (Добавление абонента)

Рисунок 14 - Диаграмма деятельностей для прецедента CRUD абонента (Удаление абонента)

Рисунок 15 - Диаграмма деятельностей для прецедента CRUD абонента (Изменение абонента)

Рисунок 16 - Диаграмма деятельностей для прецедента CRUD абонента (Поиск абонента)