II. Проектная часть
1.1. Обоснование проектных решений
2.1.1Обоснование проектных решений по информационному обеспечению
В рассматриваемом случае к информационному обеспечению задачи будут относиться входные и результатные документы, классификаторы, а также перечень экранных форм, предназначенных для реализации диалога пользователя и системы.
Разрабатываемая система должна содержать в себе следующие модули:
— модуль авторизации;
— модуль работы со справочниками;
— модуль ввода данных;
— модуль получения отчетов;
— модуль поиска.
В модуле авторизации должны быть реализованы следующие функции:
- Доступ пользователя к главной странице системы после корректного ввода пароля и логина;
- Вывод сообщения об ошибке ввода пароля и логина с предложением повторить ввод.
В модуле ввода данных должны быть реализованы следующие функции:
- Возможность ввода данных с помощью экранной формы;
- Проверка вводимых данных на их корректность.
В модуле получения отчетов должны быть реализованы следующие функции:
- Возможность получения отчета в соответствии с заданными параметрами:
- Формирование необходимых аналитических отчетов
В модуле поиска должна присутствовать функция, позволяющая осуществлять поиск по справочникам, существующим в системе.
Структура информационной базы данных должна обеспечивать возможность расширения функций системы, не требующих изменения структуры обрабатываемых данных, без реорганизации базы данных.
Информационная база данных должна состоять:
- справочников, ведение которых осуществляется посредством программного обеспечения системы сотрудниками, эксплуатирующими систему;
- настроечных таблиц для работы системы в конкретных условиях, начальная загрузка которых осуществляется вместе с установкой системы, и информация в которых может корректироваться администратором системы;
- таблиц текущей и хранимой информации, доступ к которым осуществляется только посредством программного обеспечения системы с установленными правами пользователей.
Обмен информацией между комплексами задач, входящими в состав системы, а также другими системами должен осуществляться в соответствии с функциями, возложенными на систему.
2.1.2. Обоснование проектных решений по программному обеспечению
Программное обеспечение включает в себя комплекс программ, реализующих функции и задачи ИС и обеспечивающих стабильную работу аппаратных комплексов [9].
В настоящее время наиболее распространенными являются следующие операционные системы: Windows Vista, Apple Mac OS X, Windows 7, Linux Ubuntu.
Наиболее логичным способом сравнения операционных систем является использование следующих критериев: Цена и производительность, Интерфейс, Программное обеспечение, Безопасность.
Наиболее правильным выбором в этой ситуации является операционная система Windows 7 по следующим причинам:
— Удобный интерфейс пользователя;
— Нет необходимости переучиваться;
— Простота администрирования;
— Более низкая стоимость, чем Apple OS;
— Наличие всех необходимых функций.
В мире существует множество систем управления базами данных. Несмотря на то, что они могут работать с разными объектами по-разному и предоставлять пользователю разные функции и инструменты, большинство СУБД опираются на единый устоявшийся набор базовых функций.
Выберем СУБД из следующих вариантов: Paradox, InterBase и Microsoft Access. В качестве оптимального инструмента проектирования баз данных был выбран Microsoft Access 2013. В отличие от Paradox, которая является локальной базой данных, Microsoft Access 2013-это сетевая база данных, и вы можете легко создать приложение, которое будет работать с несколькими пользователями. Кроме того, в перспективе планируется создание крупного автоматизированного комплекса с разделением прав доступа пользователей. Таким образом, Microsoft Access 2013 определенно является выбором. Interbase не подходит для метода экспертных оценок и объективных показателей программирования. Microsoft Access 2013 также отвечает всем требованиям разработки физической модели данных, поэтому мы выбрали именно эту базу данных.
Существует огромное количество интегрированных сред разработки, доступных для создания программ под управлением Windows. К ним относятся: Visual С+ +, С+ + Builder, Delphi, Visual Basic.
С появлением средств быстрой разработки приложений (RAD-rapid application development) появилась возможность программировать с использованием готовых компонентов и шаблонов.
Выбор среды программной разработки для автоматизированной системы сделаем в пользу Delphi, который обеспечивает чрезвычайно высокую производительность и удобство использования.
2.1.3. Обоснование проектных решений по техническому обеспечению
В рассматриваемой задаче автоматизации, в ходе которой необходимо автоматизировать процесс мониторинга запросов на техническую поддержку от клиентов АО «Банк ДОМ.РФ», в качестве средств технической поддержки используются следующие инструменты: персональные компьютеры менеджеров; сервера; соединительные линии локальной компьютерной сети.
Персональные компьютеры оцениваются по следующим основным критериям: скорость процессора; место на жестком диске; объем оперативной памяти; производительность видеокарты.
Поскольку разработанный модуль будет работать на базе клиент-серверной технологии, все расчеты будут выполняться на стороне сервера, следовательно, системные требования к персональным компьютерам минимальны.
Технические характеристики персональных компьютеров, используемых в банке, относятся к компьютерам со средней производительностью, из чего можно сделать вывод, что они не нуждаются в модернизации или замене для выполнения поставленной задачи.
Технические характеристики серверов также не подлежат улучшению, так как используемые в настоящее время модели серверов имеют возможность повысить их производительность для выполнения автоматизированной задачи без ущерба для других выполняемых ими задач.
- Разработка проекта автоматизации
2.2.1. Этапы жизненного цикла проекта автоматизации
Жизненный цикл информационной системы — это период времени, который начинается, когда принимается решение о создании ИС, и заканчивается, когда она полностью выводится из эксплуатации.
Основными стандартами жизненного цикла являются: ГОСТ 34.601-90, ISO 12207, Oracle CDM (Custom Development Method), RUP (Rational Unified Process), MSF (Microsoft Solution Framework), XP (Extreme Programming) .
Для реализации проектного решения необходимо изначально определить основные этапы жизненного цикла будущей системы. Из всех доступных стандартов наиболее оптимальным является ISO 12207 -99 [2]. Выбор пал на этот стандарт, обусловленный следующими факторами: Во-первых, стандарт четко не регламентирует последовательность процессов на каждом этапе, что позволяет выбрать соответствующие процессы для себя. Во-вторых, стандарт охватывает все этапы более полно, чем другие стандарты. В-третьих, ISO 12207-99 не определяет этапы, а лишь регламентирует их, что позволит разработчику самостоятельно управлять жизненным циклом.
ISO 12207 включает в себя в общей сложности 16 процессов, которые сгруппированы в 3 группы (рисунок 10).
Рисунок 10 Структура стандарта ISO 12207-99
Основной процесс жизненного цикла состоит из пяти видов деятельности:
1) Заказ;
2) Поставка;
3) Разработка;
4) Использование;
5) Поддержка.
Каждый процесс определяет главного исполнителя и действия, которые должны быть выполнены в течение указанного периода времени.
Согласно выбранному стандарту следует выделить следующие этапы:
1.Подготовка проекта
2.Разработка
- Тестирование настроек системы
- Внедрение
- Эксплуатация
- Сопровождение
На начальном этапе, после анализа деятельности организации, необходимо поставить цели и задачи по автоматизации и разработать план проекта. После документирования начинается сам процесс разработки. Создается база данных, создаются формы отчетности, пишется программный код для сбора, обработки и хранения информации, создаются процедуры фильтрации.
После того как система разработана, она проходит стадию тестирования. По завершении тестирования составляется план работы и документация для внедрения, а также различная пользовательская документация. Этот процесс будет протекать следующим образом.
Поскольку организация уже имеет локальную сеть и функционирует стабильно, нет необходимости ее настраивать. Первоначально устанавливается серверная часть системы отслеживания приложений, затем на рабочих станциях устанавливаются и настраиваются клиентские приложения системы отслеживания приложений и СУБД.
Результаты работы проверяются, и система демонстрируется руководству и персоналу. Последним этапом станет проведение семинаров для сотрудников компании. Необходимо связать всех сотрудников, ответственных за обработку документов, в единую информационную сеть. Для этого клиентские приложения будут устанавливаться в четкой последовательности для конкретных подразделений
Далее выбираем модель жизненного цикла информационной системы.
В настоящее время наиболее распространенными моделями являются: циклическая, итеративная, каскадная. Для разработки системы мы выбираем каскадную модель, так как она позволяет работать на нескольких этапах разработки одновременно.
Существует 4 основных способа начать использовать новую систему: Скачок; Параллельная стратегия; Опытная эксплуатация пилотного проекта; Узкое место. В качестве стратегии внедрения информационной системы мы выбираем параллельную стратегию, то есть разработанная информационная система будет использоваться параллельно с используемой технологией до тех пор, пока последняя не будет полностью заменена.
На всех этапах жизненного цикла информационной системы существуют различные риски. Они могут привести к серьезным штрафам как во время развития системы, так и в ее функциональных качествах.
Комплекс мер по защите информации в разрабатываемой системе включает следующие аспекты: защита информации непосредственно в информационной системе от внутренних угроз; защита информации от внешних угроз.
Для защиты от внутренних угроз система использует политику общего доступа. Эта политика описана ниже в таблице 5.
Таблица 5
Разграничение прав пользователей
Группы пользователей | Модуль «Авторизация» | Модуль «Учет заявок» | Модуль «Ввод данных» | Модуль «Отчеты» |
Сотрудник | Чтение | Нет | Нет | Ограничен |
Администратор системы | Полный | Полный | Полный | Полный |
Защита от внешних угроз осуществляется путем применения следующих способов: разработкой и соблюдение политик безопасности; использованием антивирусных средств; физической защитой помещений с наиболее ценной информацией; использованием программно-аппаратных комплексов защиты от несанкционированного доступа. В качестве основного средства защиты от проникновения используется СКУД «Elsys». Elsys предназначена для автоматического контроля доступа и управления исполнительными устройствами (автоматические ворота, шлагбаумы, лифты, турникеты, замки и др.) в соответствии с указанными полномочиями и графиками.
Компания также разработала политику безопасности, которая включает в себя следующие частные документы:
- Правила защиты паролем;
- Правила защиты от вирусов и вредоносных программ;
- Требования к контролю физического доступа;
- Руководство по безопасному уничтожению информации или оборудования;
- Правила осуществления удаленного доступа и другое.
Информационная модель и ее описание
Информационная модель представляет собой диаграмму движения входных, промежуточных и выходных потоков и функций предметной области. Кроме того, он объясняет, какие входные документы и справочная информация используются для выполнения функций обработки данных и создания конкретных выходных документов.
Информационная модель включает в себя четыре области: область выходной информации, область эталонной системы, область обработки информации и область входной информации.
Этот процесс показан в информационной модели на рисунке 11.
Рисунок 11 Информационная модель системы
2.2.2. Характеристика нормативно-справочной, входной и оперативной информации
В качестве входной информации для разрабатываемого ИС используются следующие документы:
— Запрос на обслуживание-полученный от клиентов компании по одному из каналов связи (форма обратной связи на сайте компании, электронная почта, телефон), содержит следующую информацию
— Сведения о клиенте (название компании или фамилия, имя и отчество физического лица, номер договора, ФИО и должность контактного лица, номер телефона, адрес электронной почты).
— Описание проблемы и пошаговое описание того, как воспроизвести проблему (если это возможно).
— Воспроизводимость-указывает, является ли описываемая проблема случайной или неслучайной.
— Критичность-указывает на важность решения данной проблемы.
— Приоритет-указывает, как быстро этот запрос должен быть обработан.
— Дополнительная информация-все, что угодно в контексте обращения.
— Скриншот проблемы в сжатом формате (gif, png, jpg)
Регистрация заявки осуществляется путем ввода данных в экранную форму «учет заявок».
Система использует 10 справочников для хранения условно постоянной информации. Справочник Клиент служит для хранения информации о клиентах компании, содержит следующие реквизиты: Название; № договора; Фамилия; Имя; Отчество; Должность; Телефон; Email.
Справочник Пользователь хранит сведения о сотрудниках отдела, являющихся пользователями системы. Включает следующие реквизиты: Фамилия; Имя; Отчество; Дата рождения; Должность; Телефон; Тип пользователя; Логин; Пароль; Дата регистрации.
В справочниках содержатся только коды записей и наименование реквизитов: Справочник Улица; Справочник Тип Клиента; Справочник Статус; Справочник Тип пользователя; Справочник Населенный пункт; Справочник Приоритет; Справочник Должность.
2.2.3. Характеристика результатной информации
В результате работы системы формируются следующие выходные документы:
- Журнал поступления заявок от клиентов;
- Ведомость учета работ специалистов отдела техподдержки;
- Ведомость учета и контроля поступления заявок от клиентов за период;
- Отчет об оказанных дополнительных услугах;
- Отчет о степени загруженности сотрудников отдела технической поддержки;
- Аналитический отчет о наиболее часто возникающих проблемах клиентов;
- Отчет по заявке;
- Сводный отчет по клиентам.
- Отчет о выполненных заявках клиентов за период,
- Аналитический отчет о выполнении заявок клиентов за период
Для хранения всех вышеперечисленных документов не используется каких-либо таблиц в базе данных. Формирование результатных документов происходит по запросу, после чего они могут быть выведены на экран, на печать, сохранены в документ Microsoft Excel и отправлены адресату по электронной почте.
2.3. Программное обеспечение задач
2.3.1. Общие положения (дерево функций и сценарий диалога)
Анализируя функции разрабатываемого приложения, их можно разделить на два блока – служебный и основной. Сервисные функции — это возможность настроить интерфейс и настроить систему. Основными функциями являются работа с жалобами, запросами и получение отчетных документов.
Дерево пользовательских функций разрабатываемого ИС представлено рисунке 12.
Рисунок 12 Дерево функций пользователя ИС
Сценарий диалога формируется на основе дерева функций. В разработанной системе сценарий построен по иерархическому принципу. Работа начинается с вызова главной кнопочной формы, на которой присутствует 5 пунктов меню: Клиент; Заявка; Справочник; Пользователь; Отчеты; Выход.
Сценарий диалога приведен на рисунке 13.
Рисунок 13 Сценарий диалога системы
2.3.2. Характеристика базы данных
Инфологическая (концептуальная) модель — это формализованное описание предметной области, выполняемое независимо от используемого в дальнейшем программного и аппаратного обеспечения. [3] Основные требования к инфологической модели включают в себя следующее:
* инфологическая модель должна содержать всю необходимую и достаточную информацию для последующего проектирования базы данных;
* инфологическая модель должна быть понятна тем, кто участвует в создании системы.
ER-модель представляет собой логическую структуру информации об объектах системы. Компонентами модели ER являются сущности (объекты) и отношения (отношения между объектами). Объект имеет множество реализаций или экземпляров. Экземпляр объекта формируется набором конкретных значений деталей и должен быть однозначно определен, т. е. идентифицирован значением ключа объекта, состоящим из одной или нескольких ключевых деталей.
Сущности могут быть зависимыми или независимыми. Сущность является независимой, если каждый ее экземпляр может быть однозначно идентифицирован без определения его связи с другими сущностями. Уникальная идентификация экземпляра зависимого объекта зависит от отношений с другими объектами.
Отношения используются для отображения отношений между сущностями. Связь существует, если экземпляры сущностей логически взаимосвязаны.
Схема базы данных представлена на рисунке 14.
Описание таблиц представлено на рисунках ниже.
Рисунок 14 Схема БД
Рисунок 15 Таблица Клиент
Рисунок 16 Таблица Заявка
Рисунок 17 Таблица Пользователь
Рисунок 18 Таблица Справочник Причина
Рисунок 19 Таблица Справочник Отделение
Рисунок 20 Таблица Справочник Услуга
Остальные таблицы, такие, как:
- Справочник Улица;
- Справочник Тип Клиента
- Справочник Статус;
- Справочник Тип пользователя;
- Справочник Населенный пункт;
- Справочник Приоритет;
- Справочник Должность;
Имеют в своем составе только код записи и наименование соответствующего атрибута.
2.3.3. Структурная схема пакета (дерево вызова программных модулей)
Структурная схема пакета ИС приведена на рисунке 21
Рисунок 21 Структурная схема пакета ИС
Описание программных модулей приведено в пункте 2.3.4.
2.3.4. Описание программных модулей
Программная система состоит из следующих уровней: клиент; сервер приложений; сервер базы данных.
Клиент — это интерфейсный компонент, который представляет первый уровень, собственно приложение для конечного пользователя. Первый уровень не имеет прямых связей с базой данных и бизнес-логики.
Сервер приложений располагается на втором уровне. На втором уровне сосредоточена большая часть бизнес-логики.
Сервер базы данных обеспечивает хранение данных и выносится на третий уровень.
Сервер приложений разработан при помощи технологии Delphi XE2 DataSnap. Передача данных между клиентом и сервером осуществляется через протокол TCP.
Сервер приложений взаимодействует с базой данных через СУБД Microsoft SQL Express. Подключение к базе данных выполняется через технологию ADO.
В структуре сервера можно выделить две основные части: Модуль управления сервером (TdmServer) и модуль предоставления данных (TdssmRemoteData). Описание модулей приведено ниже.
Таблица 6
Структура сервера приложений
№ | Название модуля | Описание | Функции |
1 | TdmServer | Содержит компоненты для подключения к системе управления базами данных (через ADO) и компоненты для организации сервера приложений (передача данных выполняется через протокол TCP). Также содержит в своем составе модуль для получения рекомендаций по заявкам. | Подключение к СУБД. Управление сервером приложений (установка соединений с клиентскими приложениями, аутентификация пользователей, передача данных клиентам). Выдача рекомендаций. |
Продолжение таблицы 6 | |||
2 | TdssmRemoteData | Модуль системы, который определяет доступные клиенту данные и функциональность системы. Экземпляр данного модуля создается для каждого подключенного клиента. | Авторизация. Предоставление данных; Предоставление функциональности;
|
Модуль управления сервером
При инициализации данного модуля автоматически выполняется инициализация соединения с базой данных. Параметры соединения содержаться в файле Params.ini. Если соединение с базой данных по каким-то причинам не удалось установить, то сервер выдаст сообщение о невозможности дальнейшей работы, т.е. успешное подключение к базе данных обязательное условии запуска сервера.
Рисунок 22 Состав модуля TdmServer
Как уже отмечалось, сервер передает данные по протоколу TCP (за это отвечает компонент DSTCPServerTransport). Потому, для сервера должен быть задан порт прослушивания. В нашем случае он имеет значение 5000.
При подключении, на сервере создается отдельный поток. Клиент в обязательном порядке передает данные для аутентификации (логин и пароль), проверку которых выполняет компонент DSAuthenticationManager. В случае успешного прохождения процедуры аутентификации, для передачи данных между сервером и клиентом, DSServer создаст интерфейс взаимодействия. Этим интерфейсом является экземпляр класса TdssmRemoteData.
В случае ошибки аутентификации сервер вызывает исключение и уничтожает поток, который был создан для данного подключения.
Таблица 7
Описание класса «TdmServer»
Область видимости | Поле/метод | Описание |
public | adoConnection: TADOConnection; | Компонент, отмечающий за соединение с базой данных через технологию ADO. |
DSServer: TDSServer; | Компонент, организующий работу сервера DataSnap. | |
DSTCPServerTransport: TDSTCPServerTransport; | Компонент передачи данных между сервером и клиентом. | |
DSServerClass: TDSServerClass; | Компонент, определяющий класс, функциональность которого будет доступна подключенным к серверу клиентам. | |
DSAuthenticationManager: TDSAuthenticationManager; | Менеджер аутентификации. | |
RecommendationController : TRecommendationController; | Компонент для получения рекомендаций. | |
function GetUserKey (Login, Password : String; var Blocked : Boolean) : Integer; | Функция для получения идентификатора пользователя по его логину и паролю. |
Интерфейс взаимодействия
Как было сказано выше, экземпляр класса TdssmRemoteData создается после успешной аутентификации и служит для предоставления клиентскому приложению определенных данных и функциональности сервера.
Рисунок 23 Состав модуля TdssmRemoteData
Цепочка передачи данных между клиентом и сервером выглядит так:
- Компонент подключения к БД (TADOConnection);
- Набор данных (TADOTable или TADOQuery);
- Провайдер набора данных (TDataSetProvider);
- Компонент клиентского соединения (TSQLConnection);
- Клиентский компонент соединения с провайдером данных (TDSProviderConnection);
- Клиентский набор данных (TClientDataSet).
Пункты 1, 2, 3 – выполняются на стороне сервера, а пункты 4, 5, 6 – на стороне клиента. Компоненты класса TDataSetProvider служат для определения прав доступа и настройки параметров передачи данных клиенту. В его настройках можно указать такие параметры как: доступность набора данных для клиента, режим «только чтение», запрет редактирования, запрет вставки, запрет удаления и т.д.
Модуль выдачи рекомендаций
Данный модуль создается при инициализации модуля управления сервером и взаимодействует с базой данных. Служит для оценки выбранной заявки и выдачи рекомендации по её выполнению.
В состав модуля входит компонент Request (класс TRequest) внутри которого реализован ряд методов для быстрого подсчета количества однотипных заявок и их стоимости за различные периоды времени.
Класс TRecommendationController выполняет функции по вычислению и систематизации показателей, а также их анализ, после чего формирует сообщение для пользователя (таблица 9).
Модуль описания заявки
Данный модуль создается при инициализации модуля выдачи рекомендаций «TRecommendationController» и служит для получения данных об интересующей нас заявке и расчете показателей, характеризующих её.
Таблица 8
Описание класса «TdssmRemoteData»
Область видимости | Поле/метод | Описание |
private | itRequest: TADOTable; | Внутренний набор данных «Заявка». Используется сервером для редактирования данных таблицы «Заявка». |
FCurrentUserKey : Integer; | Идентификатор пользователя. | |
FCurrentUserTypeKey : Integer; | Идентификатор типа пользователя. | |
FDate1 : TDateTime; | Дата начала периода (для периодических отчетов). | |
FDate2 : TDateTime; | Дата окончания периода (для периодических отчетов). | |
procedure GetAccess (UserTypeID : Integer); | Метод настройки прав доступа для пользователя (в зависимости от его типа). | |
procedure AccesDenied; | Метод вызова исключения в случае отсутствии доступа. | |
public | qUserInfo: TADOQuery; | Набор данных «Информация о пользователе» (доступен всем пользователям прошедшим аутентификацию). |
dspUserInfo: TDataSetProvider;
| Провайдер набора данных qUserInfo. | |
tFunction: TADOTable; | Набор данных «Должность» (доступен пользователям из группы «Администраторы»). | |
dspFunction: TDataSetProvider; | Провайдер набора данных tFunction. | |
tDefect: TADOTable; | Набор данных «Неисправность» (доступен всем пользователям прошедшим аутентификацию). | |
dspDefect: TDataSetProvider; | Провайдер набора данных tDefect. | |
tDepartment: TADOTable; | Набор данных «Отделение» (доступен пользователям из группы «Администраторы»). | |
dspDepartment: TDataSetProvider; | Провайдер набора данных tDepartment. | |
tUserType: TADOTable; | Набор данных «Тип пользователя» (доступен пользователям из группы «Администраторы»). | |
dspUserType: TDataSetProvider; | Провайдер набора данных tUserType. | |
tUser: TADOTable; | Набор данных «Пользователь» (доступен пользователям из группы «Администраторы»). | |
Продолжение таблицы 8 | ||
dspUser: TDataSetProvider; | Провайдер набора данных tUser. | |
tOpenRequest: TADOTable; | Набор данных «Открытые заявки» (доступен пользователям из группы «Администраторы»). | |
dspOpenRequest: TDataSetProvider; | Провайдер набора данных tOpenRequest. | |
tClosedRequest: TADOTable; | Набор данных «Закрытые заявки» (доступен пользователям из группы «Администраторы»). | |
dspClosedRequest: TDataSetProvider; | Провайдер набора данных tClosedRequest. | |
tArchive: TADOTable; | Набор данных «Архив» (доступен пользователям из группы «Администраторы»). | |
dspArchive: TDataSetProvider; | Провайдер набора данных tArchive. | |
tParams: TADOTable; | Набор данных «Параметры» (доступен пользователям из группы «Администраторы»). | |
dspParams: TDataSetProvider; | Провайдер набора данных tParams. | |
tDefectCount: TADOTable; | Набор данных «Количество неисправностей» (доступен пользователям из группы «Администраторы»). | |
dspDefectCount: TDataSetProvider; | Провайдер набора данных tDefectCount. | |
Продолжение таблицы 8 | ||
cdsYearReport: TClientDataSet; | Набор данных «Годовой отчет» (доступен пользователям из группы «Администраторы»). | |
dspYearReport: TDataSetProvider; | Провайдер набора данных cdsYearReport. | |
qRequestClose: TADOQuery; | Набор данных «Отчет по закрытым заявкам» (доступен пользователям из группы «Администраторы»). | |
dspRequestClose: TDataSetProvider; | Провайдер набора данных qRequestClose. | |
qRequestOpen: TADOQuery; | Набор данных «Отчет по открытым заявкам» (доступен пользователям из группы «Администраторы»). | |
dspRequestOpen: TDataSetProvider; | Провайдер набора данных qRequestOpen. | |
tRequest: TADOQuery; | Набор данных «Заявка» (доступен пользователям из группы «Администраторы»). | |
dspRequest: TDataSetProvider; | Провайдер набора данных tRequest. | |
procedure RequestAdd (DefectID : Integer; Info : String); | Метод добавления заявки (доступен всем пользователям прошедшим аутентификацию). | |
Продолжение таблицы 8 | ||
procedure RequestEdit (RequestID : Integer; Info : String; Date : TDateTime; V1 : Double; V2 : Double; WorkInfo : String; UserFailure : Boolean); | Метод редактирования заявки (доступен пользователям из группы «Администраторы»). | |
procedure RequestClose (RequestID : Integer; Info : String; Date : TDateTime; V1 : Double; V2 : Double; WorkInfo : String; UserFailure : Boolean); | Метод закрытия заявки (доступен пользователям из группы «Администраторы»). | |
procedure RequestReopen (RequestID : Integer); | Метод перевода закрытой заявки в открытую (доступен пользователям из группы «Администраторы»). | |
procedure RequestToArchive (RequestID : Integer); | Метод перевода закрытой заявки в архив (доступен пользователям из группы «Администраторы»). | |
procedure CreateYearReport (Date : TDateTime); | Метод для создания годового отчета (доступен пользователям из группы «Администраторы»). | |
procedure SetDates (Date1, Date2 : TDateTime); | Метод, необходимый для создания отчетов за период (доступен пользователям из группы «Администраторы»). | |
procedure DeleteAllRequest (Psw : string); | Метод очистки базы данных (доступен пользователям из группы «Администраторы»). Перед выполнением очистки выполняется проверка пользовательского пароля. | |
function GetDate : TDateTime; | Метод получения системного времени сервера (доступен всем пользователям прошедшим аутентификацию). | |
function GetCurrentUserTypeKey : Integer; | Метод получения идентификатора пользователя (доступен всем пользователям прошедшим аутентификацию). | |
function GetRecommendation (RequestID : Integer) : String; | Метод получения рекомендации по указанному идентификатору заявки (доступен пользователям из группы «Администраторы»). |
Таблица 9
Описание класса «TRecommendationController»
Область видимости | Поле/метод | Описание |
private | Connection : TADOConnection; | Ссылка на компонент соединения с базой данных. |
Request : TRequest; | Объект, отвечающий за вычисление информации по заявкам. | |
ZLimit : Integer; | Пороговое значение для Z-массива. | |
PLimit : Integer; | Пороговое значение для P-массива. | |
NSize : Integer; | Размерность N-массива. | |
ZSize : Integer; | Размерность Z-массива. | |
PSize : Integer; | Размерность P-массива. | |
N : array of Double; | Массив допустимых пределов; | |
Z : array of Double; | Массив показателей, который отражает ненадежность устройства. | |
P : array of Double; | Массив показателей, который отражает некомпетентность пользователя. | |
List : TStringList; | Рекомендации. | |
function GetQuery (SQL : String) : TADOQuery; | Метод для получения результатов произвольного запроса к БД. | |
procedure LoadN (DefectID : Integer); | Метод загрузки массива допустимых пределов. | |
procedure LoadRequest (RequestID : Integer); | Метод загрузка информации о заявке. | |
procedure LoadZ; | Метод вычисления Z-массива. | |
procedure LoadP; | Метод вычисления P-массива. | |
procedure LoadParams; | Метод загрузки параметров; | |
procedure GetResults; | Метод анализа Z и P массивов. | |
public | constructor Create (Connection : TADOConnection); | Конструктор класса. |
destructor Destroy; | Деструктор класса. | |
function GetRecommendation (RequestID : Integer) : String; | Функция получения рекомендации по выбранной заявке. |
При анализе неисправности нам необходимо учитывать предыдущий накопленный опыт её возникновения, средства, расходуемые для её устранения.
Все эти требования реализуются в классе TRequest.
Таблица 10
Описание класса «TRequest»
Область видимости | Поле/метод | Описание |
private | Loaded : Boolean | Указывает на то, что в экземпляре класса уже загружены данные об интересующей нас заявке. |
Connection : TADOConnection; | Ссылка на компонент соединения с базой данных. | |
Request : TADOQuery; | Запрос к базе данных, который содержит данные, о загруженной заявке. | |
function GetQuery (SQL : String) : TADOQuery; | Функция для получения результатов произвольного запроса к БД. | |
function GetSimilarRequest (Date1, Date2 : TDateTime; Where : String = ») : TADOQuery; | Функция для получения списка заявок за период, которые равны по типу неисправности с рассматриваемой заявкой. | |
procedure TestLoaded; | Функция создает исключение, если заявка не была загружена. | |
public | constructor Create (Connection : TADOConnection); | Конструктор класса. |
destructor Destroy; | Деструктор класса. | |
procedure Load (RequestID : Integer); | Метод для загрузки информации по заданной заявке. | |
procedure Clear; | Метод для очистки данных. | |
function GetDefectID : Integer; | Метод получения кода неисправности загруженной заявки. | |
function GetUserID : Integer; | Метод получения кода пользователя, который добавил заявку. | |
function GetCostOfRepairs : Double; | Метод получения стоимости ремонта для загруженной заявки. | |
function GetCostOfSpareParts : Double; | Метод получения стоимости запчастей для загруженной заявки. | |
function GetDateOfRegistration : TDateTime; | Получить дату регистрации загруженной заявки. | |
function GetDefectCountFormMonth : Integer; | Метод вычисления количества заявок за месяц (от текущей даты), тип которых соответствует типу загруженной заявки. | |
function GetDefectCountForm6Month : Integer; | Метод вычисления количества заявок за шесть месяцев (от текущей даты), тип которых соответствует типу загруженной заявки. | |
Продолжение таблицы 10 | ||
function GetDefectCountForm12Month : Integer; | Метод вычисления количества заявок за двенадцать месяцев (от текущей даты), тип которых соответствует типу загруженной заявки. | |
function GetDefectCashSumForm12Month : Double; | Метод вычисления количества средств потраченных на устранения подобных неисправности за двенадцать месяцев (от текущей даты). | |
function GetUserFailureDefectCountForm3Month : Integer; | Метод вычисления количества подобных неисправностей по вине пользователя (за три месяца от текущей даты), который добавил текущую заявку. | |
function GetUserFailureDefectCountForm6Month : Integer; | Метод вычисления количества подобных неисправностей по вине пользователя (за шесть месяцев от текущей даты), который добавил текущую заявку. | |
function GetUserFailureDefectCashSumForm12Month : Double; | Метод вычисления количества средств потраченных на устранения подобных неисправности за двенадцать месяцев (от текущей даты) по вине пользователя. |
Клиент
Основой клиентской части является модуль TdmData. Модуль выполняет следующие функции: получение доступа к функциональности сервера (создание проекции интерфейса взаимодействия «TdssmRemoteData»); управление предоставленными сервером наборами данных; соединение с сервером.
Для подключения к серверу используется компонент SQLConnection. В качестве параметров подключения мы указываем: IP-адрес сервера; порт подключения (5000); логин и пароль пользователя; протокол взаимодействия (в нашем случае TCP); тип подключения (DataSnap).
Чтобы получить доступ к функциональности сервера и данных, используется специальный компонент DSProviderConnection. Этот компонент необходим для подключения клиентского набора данных (TClientDataSet) к поставщику набора данных (TDataSetDrovider).
После успешного подключения к серверу доступные наборы данных активируются (набор данных открывается).
После открытия набора пользователь может редактировать набор данных с помощью визуальных компонентов (таких как TDBGrid, TDBEdit, TDBMemo, TDBImage, TDBNavigator и т. д.).) разработан специально для работы с базами данных. Однако визуальные компоненты не подключаются непосредственно к клиентскому набору данных, а используют специальный «посредник» (объект класса TDataSource), предназначенный для унификации использования визуальных компонентов с различными типами наборов данных.
Клиент также получает доступ к интерфейсу взаимодействия сервера TdssmRemoteData. На стороне клиента через компонент DSProviderConnection создается «проекция» класса TdssmRemoteData, которая включает в себя все методы серверного класса с открытым спецификатором. Класс проекции инициализируется сразу же после подключения клиента к серверу.
Рисунок 24 Схема модуля TdmData
Таблица 11
Описание класса «TdmData»
Область видимости | Поле/метод | Описание |
public | SQLConnection: TSQLConnection; | Компонент соединения с сервером приложений; |
Продолжение таблицы 11 | ||
DSProviderConnection: TDSProviderConnection; | Компонент соединения с сервером | |
cdsUserInfo: TADOQuery; | Клиентский набор данных «Информация о пользователе». | |
dsUserInfo: TDataSetProvider; | Посредник набора данных cdsUserInfo. | |
cdsFunction: TADOTable; | Клиентский набор данных «Должность». | |
dsFunction: TDataSetProvider; | Посредник набора данных cdsFunction. | |
cdsDefect: TADOTable; | Клиентский набор данных «Неисправность». | |
dsDefect: TDataSetProvider; | Посредник набора данных cdsDefect. | |
cdsDepartment: TADOTable; | Клиентский набор данных «Отделение». | |
dsDepartment: TDataSetProvider; | Посредник набора данных cdsDepartment. | |
cdsUserType: TADOTable; | Клиентский набор данных «Тип пользователя». | |
dsUserType: TDataSetProvider; | Посредник набора данных cdsUserType. | |
cdsUser: TADOTable; | Клиентский набор данных «Пользователь». | |
dsUser: TDataSetProvider; | Посредник набора данных cdsUser. | |
cdsOpenRequest: TADOTable; | Клиентский набор данных «Открытые заявки». | |
dsOpenRequest: TDataSetProvider; | Посредник набора данных cdsOpenRequest. | |
cdsClosedRequest: TADOTable; | Клиентский набор данных «Закрытые заявки». | |
dsClosedRequest: TDataSetProvider; | Посредник набора данных cdsClosedRequest. | |
cdsArchive: TADOTable; | Клиентский набор данных «Архив». | |
dsArchive: TDataSetProvider; | Посредник набора данных cdsArchive. | |
cdsParams: TADOTable; | Клиентский набор данных «Параметры». | |
dsParams: TDataSetProvider; | Посредник набора данных cdsParams. | |
cdsDefectCount: TADOTable; | Клиентский набор данных «Количество неисправностей». | |
dsDefectCount: TDataSetProvider; | Посредник набора данных cdsDefectCount. | |
cdsYearReport: TClientDataSet; | Клиентский набор данных «Годовой отчет». | |
dsYearReport: TDataSetProvider; | Посредник набора данных cdsYearReport. | |
cdsReportRequestClose: TADOQuery; | Клиентский набор данных «Отчет по закрытым заявкам». | |
Продолжение таблицы 11 | ||
dsReportRequestClose: TDataSetProvider; | Посредник набора данных cdsRequestClose. | |
cdsReportRequestOpen: TADOQuery; | Клиентский набор данных «Отчет по открытым заявкам». | |
dsReportRequestOpen: TDataSetProvider; | Посредник набора данных cdsRequestOpen. | |
cdsRequest: TADOQuery; | Клиентский набор данных «Заявка». | |
dsRequest: TDataSetProvider; | Посредник набора данных cdsRequest. |
Блок-схема модуля построения списка заявок приведена на рисунке 25.
Рисунок 25 Блок-схема модуля построения списка заявок
Комментарии
Оставить комментарий
Валера 14 минут назад
добрый день. Необходимо закрыть долги за 2 и 3 курсы. Заранее спасибо.
Иван, помощь с обучением 21 минут назад
Валерий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Fedor 2 часа назад
Здравствуйте, сколько будет стоить данная работа и как заказать?
Иван, помощь с обучением 2 часа назад
Fedor, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Алина 4 часа назад
Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения
Иван, помощь с обучением 4 часа назад
Алина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Алена 7 часов назад
Добрый день! Учусь в синергии, факультет экономики, нужно закрыт 2 семестр, общ получается 7 предметов! 1.Иностранный язык 2.Цифровая экономика 3.Управление проектами 4.Микроэкономика 5.Экономика и финансы организации 6.Статистика 7.Информационно-комуникационные технологии для профессиональной деятельности.
Иван, помощь с обучением 8 часов назад
Алена, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Игорь Петрович 10 часов назад
К утру необходимы материалы для защиты диплома - речь и презентация (слайды). Сам диплом готов, пришлю его Вам по запросу!
Иван, помощь с обучением 10 часов назад
Игорь Петрович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Инкогнито 1 день назад
У меня есть скорректированный и согласованный руководителем, план ВКР. Напишите, пожалуйста, порядок оплаты и реквизиты.
Иван, помощь с обучением 1 день назад
Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Илья 1 день назад
Здравствуйте) нужен отчет по практике. Практику прохожу в доме-интернате для престарелых и инвалидов. Все четыре задания объединены одним отчетом о проведенных исследованиях. Каждое задание направлено на выполнение одной из его частей. Помогите!
Иван, помощь с обучением 1 день назад
Илья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Alina 2 дня назад
Педагогическая практика, 4 семестр, Направление: ППО Во время прохождения практики Вы: получите представления об основных видах профессиональной психолого-педагогической деятельности; разовьёте навыки использования современных методов и технологий организации образовательной работы с детьми младшего школьного возраста; научитесь выстраивать взаимодействие со всеми участниками образовательного процесса.
Иван, помощь с обучением 2 дня назад
Alina, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Влад 3 дня назад
Здравствуйте. Только поступил! Операционная деятельность в логистике. Так же получается 10 - 11 класс заканчивать. То-есть 2 года 11 месяцев. Сколько будет стоить семестр закончить?
Иван, помощь с обучением 3 дня назад
Влад, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Полина 3 дня назад
Требуется выполнить 3 работы по предмету "Психология ФКиС" за 3 курс
Иван, помощь с обучением 3 дня назад
Полина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Инкогнито 4 дня назад
Здравствуйте. Нужно написать диплом в короткие сроки. На тему Анализ финансового состояния предприятия. С материалами для защиты. Сколько будет стоить?
Иван, помощь с обучением 4 дня назад
Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Студент 4 дня назад
Нужно сделать отчёт по практике преддипломной, дальше по ней уже нудно будет сделать вкр. Все данные и все по производству имеется
Иван, помощь с обучением 4 дня назад
Студент, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Олег 5 дня назад
Преддипломная практика и ВКР. Проходила практика на заводе, который занимается производством электроизоляционных материалов и изделий из них. В должности менеджера отдела сбыта, а также занимался продвижением продукции в интернете. Также , эту работу надо связать с темой ВКР "РАЗРАБОТКА СТРАТЕГИИ ПРОЕКТА В СФЕРЕ ИТ".
Иван, помощь с обучением 5 дня назад
Олег, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Анна 5 дня назад
сколько стоит вступительные экзамены русский , математика, информатика и какие условия?
Иван, помощь с обучением 5 дня назад
Анна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Владимир Иванович 5 дня назад
Хочу закрыть все долги до 1 числа также вкр + диплом. Факультет информационных технологий.
Иван, помощь с обучением 5 дня назад
Владимир Иванович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Василий 6 дней назад
сколько будет стоить полностью закрыть сессию .туда входят Информационные технологий (Контрольная работа, 3 лабораторных работ, Экзаменационный тест ), Русский язык и культура речи (практические задания) , Начертательная геометрия ( 3 задачи и атестационный тест ), Тайм менеджмент ( 4 практических задания , итоговый тест)
Иван, помощь с обучением 6 дней назад
Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Марк неделю назад
Нужно сделать 2 задания и 1 итоговый тест по Иностранный язык 2, 4 практических задания и 1 итоговый тест Исследования рынка, 4 практических задания и 1 итоговый тест Менеджмент, 1 практическое задание Проектная деятельность (практикум) 1, 3 практических задания Проектная деятельность (практикум) 2, 1 итоговый тест Проектная деятельность (практикум) 3, 1 практическое задание и 1 итоговый тест Проектная деятельность 1, 3 практических задания и 1 итоговый тест Проектная деятельность 2, 2 практических заданий и 1 итоговый тест Проектная деятельность 3, 2 практических задания Экономико-правовое сопровождение бизнеса какое время займет и стоимость?
Иван, помощь с обучением неделю назад
Марк, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф