Дипломная работа - Тырин А.А. (АП-91). Назначение и область применения
Скачать 0.55 Mb.
|
7.3 Вывод:Эргономика графического интерфейса пользователя является одним из ключевых факторов результативной и качественной работы пользователей в системе. Хорошо разработанный интерфейс предоставляет пользователям комфортные условия для работы и расширяет круг людей, которые могут пользоваться таким программным обеспечением. Это особенно важно, поскольку даже на сегодняшний день есть много людей, являющихся неуверенными пользователями ПЭВМ. Качественная эргономика, простота и наглядность интерфейса позволяют работать с ним таким людям. Это отчасти решает кадровый вопрос. Соблюдение норм проектировки интерфейса программы позволяет снизить риск ошибок пользователя, увеличить его работоспособность и способствует меньшему расходу сил пользователя при работе с таким графическим интерфейсом. Это выгодно как для пользователя, так и для работодателя. 8. Решение задачи на ЭВМ8.1 Структура классов модуляРазработанный модуль настройки схем маршрутизации запросов состоит из трех отдельных элементов: ядро, интерпретатор метаязыка и графический интерфейс пользователя. Ядро делится на две части: Программный интерфейс настройки схемы маршрутизации Маршрутизация запросов пользователям, обработка и отклонение запроса Интерпретатор метаязыка служит для реализации правил остановки в состояниях схемы маршрутизации. Эта часть отвечает за создание правил, их корректной записи в базу данных, а также проверку их выполнения для конкретного запроса. Графический интерфейс пользователя является связующим звеном между администратором системы и программным интерфейсом настройки схемы маршрутизации. Именно с помощью пользовательского интерфейса производится настройка схемы и описания правил остановки в том числе. Рассмотрим функции основных классов модуля подробнее. TtrsAdmin – программный интерфейс настройки схемы маршрутизации. Одной из самых важных функций класса является загрузка всех сущностей схемы маршрутизации, а также вспомогательных сущностей в собственное хранилище данных. Вся информация загружается из базы данных и работа с ними происходит локально на компьютере пользователя. Такой подход был применён для оптимизации скорости работы с данными. Поиск конкретного объекта в локальном кэше занимает меньше времени, чем запрос к базе данных, так как с базой данных одновременно может работать большое количество пользователей. Загружать MySQL-сервер дополнительными запросами каждый раз при обновлении формы не имеет смысла. Функция загрузки сущностей выполняется всего единожды – при инициализации, в дальнейшем все операции по изменению сущностей дублируются: сначала происходит попытка записи в базу данных и, в случае успеха, в кэше также происходит обновление. В этом классе содержатся все необходимые функции для получения и изменения данных всех основных и вспомогательных сущностей схемы маршрутизации запросов, а именно: Физических таблиц Справочников Типов ролей Схем маршрутизации Бизнес-процессов Наборов полей Ролей Связей роли-пользователи Связей роли-наборы полей Состояний Переходов Для каждой из сущностей доступны 3 основные функции: создание, удаление, изменение имени, а также набор дополнительных функций для изменения собственных атрибутов сущности. Например, у роли кроме основных функций существует только операция смены её типа, а у состояния таких дополнительных функций намного больше: изменение роли состояния, изменение правила остановки, изменение перехода по истечению времени и установка лимита этого времени. Это зависит от сложности структуры конкретной сущности. При совершении любой операции ядро проверяет возможность её выполнения. Модуль проверяет входные данные, и, в случае если выполнение операции приведёт к дублированию данных или потери связей между объектами, ядро выдаёт ошибку с поясняющим сообщением. TtrsTicket – класс, описывающий структуру запроса. Этот класс содержит все атрибуты запроса и предоставляет функции маршрутизации и изменения запроса. Под маршрутизацией запроса подразумеваются следующие функции: Переход запроса из одного состояния в другое в соответствии с настроенной схемой маршрутизации запроса Проверка выполнения правила остановки в состоянии Откат последнего совершённого перехода Назначение запроса пользователю Обработка запроса и запись изменений в базу данных Отклонение запроса Изменение запроса включает в себя следующие функции: Создание запроса Удаление запроса Сохранение изменений в данных Отмена последних изменений в данных Добавить/удалить объект в запрос Добавить/удалить вложение в запрос При совершении любой операции ядро выполняет ряд проверок для того, чтобы в базе данных не образовалось утечки или противоречия данных. В отличие от структуры TtrsAdmin в классе TtrsTicket нет локального кэша для хранения нескольких объектов и работа в конкретный момент времени ведётся исключительно с одним объектом – запросом, который загружается из базы данных. Все необходимые вспомогательные объекты, такие как: переходы, состояния, пользователи подгружаются по мере необходимости. При совершении операции перехода запроса из одного состояния в другое ядро проверяет условие выполнения правила остановки запроса в этом состоянии. Для этого происходит создание объекта класса TtrsStateStopRule по экземпляру текста правила, который хранится в базе данных как атрибут состояния. Ядро заполняет структуру правила остановки значениями атрибутов объектов запроса. Затем интерпретатор, описанный в TtrsStateStopRule, выполняет логические операции правила и выдаёт однозначный результат необходимости остановки в данном состоянии – true или false. Далее речь пойдёт о структуре TtrsStateStopRule. TtrsStateStopRule – класс, определяющий интерпретатор метаязыка, который подробно описан в главе 5.5 этой дипломной работы. TtrsStateStopRule позволяет описывать правила для состояния, при выполнении условий которых будет происходить остановка запроса в этом состоянии при маршрутизации. Правило остановки в состоянии состоит из одного или нескольких правил для конкретного справочника и бизнес-процесса. Такое правило состоит из условий, соединенных логическими операторами. Условие представляет собой операнд и наименование атрибута объекта со сравниваемым значением, если это предполагает операнд. Порядок расчёта действий при вычислении значения логического выражения определяется с помощью скобок и приоритета логических операторов. Интерпретатор анализирует введённый текст правила и создаёт собственные структуры классов для каждого отдельного правила, в состав которого входит контейнер со всеми условиями, каждое из которых также является отдельным объектом. Значения параметров условия заполняются ядром, так как зависят от данных запроса. В том случае, если в запросе нет данных об атрибуте объекта, указанном в правиле, значение атрибута этого объекта загружается из базы данных и операция вычисляется с этим значением. Если правило выполняется, хотя бы для одного объекта запроса, в данном состоянии произойдёт остановка. В классе содержится функция сохранения структуры правил в текстовое поле базы данных, а также воссоздание этой структуры по загруженному тексту. При создании нового правила остановки пользователь может некорректно составить текст правила. Каждой уникальной ошибке присвоен свой номер и поставлено в соответствие информирующее сообщение, для того чтобы пользователь знал, в чём именно он допустил ошибку. Описание правил остановки в состояниях, как и вся остальная настройка схемы маршрутизации, выполняется посредством графического интерфейса пользователя. Детальное описание интерфейса приведено в следующем разделе. |