Разработка автоматизированной информационной системы учета проведения инструктажей по вопросам информационной безопасности
Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов. Обоснование необходимости использования вычислительной техники, постановка задачи автоматизации. Разработка алгоритмов и описание программных модулей. Модель базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 12.01.2014 |
Размер файла | 11,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
25
Отдел
Числовой
Целое
Внешний
Должность
Числовой
Целое
Внешний
Пароль
Текстовый
10
Таблица «Отдел» (см. рис. 3.6) хранит сведения об отделах организации, в которых работают пользователи (сотрудниках организации), нуждающиеся в прохождении обучении и проверки знаний по вопросам информационной безопасности.
Рисунок 3.6 - Таблица «Отдел» в режиме конструктора
Описание структуры записей таблицы «Отдел» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.4.
Таблица 3.4 - Описание структуры записей таблицы «Отдел»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Название |
Текстовый |
50 |
Таблица «Должность» (см. рис. 3.6) хранит сведения о должностях пользователей, нуждающиеся в прохождении обучении и проверки знаний по вопросам информационной безопасности.
Рисунок 3.6 - Таблица «Должность» в режиме конструктора
Описание структуры записей таблицы «Должность» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.5.
Таблица 3.5 - Описание структуры записей таблицы «Должность»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Название |
Текстовый |
50 |
Таблица «Инструктор» (см. рис. 3.7) хранит сведения об инструкторах компании, проводящих инструктажи и проверки знаний пользователей корпоративной сети.
Рисунок 3.7 - Таблица «Инструктор» в режиме конструктора
Описание структуры записей таблицы «Инструктор» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.6.
Таблица 3.6 - Описание структуры записей таблицы «Инструктор»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
ФИО |
Текстовый |
25 |
||
|
Текстовый |
25 |
||
Телефон |
Текстовый |
12 |
||
Пароль |
Текстовый |
10 |
Таблица «Форма» (см. рис. 3.8) хранит сведения о формах обучения инструктажей по вопросам информационной безопасности.
Рисунок 3.8 - Таблица «Форма» в режиме конструктора
Описание структуры записей таблицы «Форма» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.7.
Таблица 3.7 - Описание структуры записей таблицы «Форма»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Название |
Текстовый |
50 |
Таблица «Вид» (см. рис. 3.9) хранит сведения о видах инструктажей по вопросам информационной безопасности.
Рисунок 3.9 - Таблица «Вид» в режиме конструктора
Описание структуры записей таблицы «Вид» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.8.
Таблица 3.8 - Описание структуры записей таблицы «Вид»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Название |
Текстовый |
50 |
Таблица «Инструктаж» (см. рис. 3.10) хранит сведения о проведенных инструктажах пользователей корпоративной сети по вопросам информационной безопасности.
Рисунок 3.10 - Таблица «Инструктаж» в режиме конструктора
Описание структуры записей таблицы «Инструктаж» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.9.
Таблица 3.9 - Описание структуры записей таблицы «Инструктаж»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Дата |
Дата |
дд.мм.гггг |
||
Тестирование |
Дата |
дд.мм.гггг |
||
Пользователь |
Числовой |
Целое |
Внешний |
|
Заключение |
Числовой |
Целое |
||
Инструктор |
Числовой |
Целое |
Внешний |
|
Вид |
Числовой |
Целое |
Внешний |
|
Форма |
Числовой |
Целое |
Внешний |
|
Тест |
Числовой |
Целое |
Внешний |
Таблица «Тестирование» (см. рис. 3.11) хранит сведения о вопросах тестирования и ответах на них, данных пользователем во время прохождения тестирования.
Рисунок 3.11 - Таблица «Тестирование» в режиме конструктора
Описание структуры записей таблицы «Тестирование» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.10.
Таблица 3.10 - Описание структуры записей таблицы «Тестирование»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
Инструктаж |
Числовой |
Целое |
Первичный |
|
Вопрос |
Числовой |
Целое |
Первичный |
|
Ответ |
Числовой |
Целое |
Внешний |
Таблица «Тест» (см. рис. 3.12) хранит сведения о темах тестирования пользователей по вопросам информационной безопасности.
Рисунок 3.12 - Таблица «Тест» в режиме конструктора
Описание структуры записей таблицы «Тест» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.11.
Таблица 3.11 - Описание структуры записей таблицы «Тест»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Название |
Текстовый |
50 |
||
Комментарий |
Поле Memo |
- |
Таблица «Вопрос» (см. рис. 3.13) хранит сведения о вопросах тестов для прохождения тестирования пользователей.
Рисунок 3.13 - Таблица «Вопрос» в режиме конструктора
Описание структуры записей таблицы «Вопрос» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.12.
Таблица 3.12 - Описание структуры записей таблицы «Вопрос»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Текст |
Текстовый |
150 |
||
Тест |
Числовой |
Целое |
Внешний |
Таблица «Альтернатива» (см. рис. 3.14) хранит сведения об альтернативах ответов на вопросы тестов для прохождения тестирования пользователей.
Рисунок 3.14 - Таблица «Альтернатива» в режиме конструктора
Описание структуры записей таблицы «Альтернатива» на языке представления данных используемой СУБД (MS Access), представлено в таблице 3.13.
Таблица 3.13 - Описание структуры записей таблицы «Альтернатива»
Наименование поля |
Тип поля |
Длина поля |
Ключ |
|
ID |
Счетчик |
Целое |
Первичный |
|
Текст |
Текстовый |
100 |
||
Вопрос |
Числовой |
Целое |
Внешний |
|
Статус |
Логический |
Да/Нет |
2.2 Программное обеспечение задачи
2.2.1 Разработка алгоритмов и описание программных модулей
На основании разработанной ИС, была составлена таблица 3.14, отражающая описание и функции программных модулей системы.
Таблица 3.14 - Описание программных модулей
Модуль |
Описание |
|
Модуль главной формы (UnitMain.pas) |
Служит для отображения и работы с данными о проведенных инструктажах пользователей корпоративной сети по вопросам информационной безопасности. Визуализация данных из таблиц Access «Инструктаж» и «Тестирование» осуществлена с помощью компонента DBGrid вкладки Data Controls. Навигация по таблицам (добавление, удаление, обновление и сохранение данных) осуществляется с помощью компонента DBNavigator вкладки Data Controls. |
|
Модуль данных (UnitADO.pas) |
Служит для связи с базой данных, хранящейся в таблицах Access. Связь реализована с помощью технологии ADO. Связь с базой данных осуществлена с помощью компонента ADOConnection вкладки ADO. Запросы реализованы с помощью компонентов ADOTable и ADOQuery вкладки ADO. Визуализация данных осуществлена с помощью связующего компонента DataSource вкладки Data Access. |
|
Модуль формы справочников (UnitHdbk.pas) |
Служит для регистрации справочной информации системы. Визуализация данных из таблиц Access «Отдел», «Должность», «Вид», «Форма», «Пользователь» и «Инструктор» осуществлена с помощью компонента DBGrid вкладки Data Controls. Навигация по таблице (добавление, удаление, обновление и сохранение данных) осуществляется с помощью компонента DBNavigator вкладки Data Controls. |
|
Модуль формы тестов (UnitTest.pas) |
Служит для добавления и редактирования информации о темах тестов, вопросов к тестам и альтернатив ответов на вопросы тестов. Визуализация данных из таблиц Access «Тест», «Вопрос» и «Альтернатива» осуществлена с помощью компонентов DBEdit и DBGrid вкладки Data Controls. Навигация по таблицам (добавление, удаление, обновление и сохранение данных) осуществляется с помощью компонентов DBNavigator вкладки Data Controls. |
|
Модуль формы тестирования (UnitStart.pas) |
Служит для прохождения тестирования по вопросам информационной безопасности пользователем. Визуализация данных из таблиц Access «Вопрос» и «Альтернатива» осуществлена с помощью компонента TTreeView. Выбор ответа на вопрос осуществляется с помощью двойного щелчка мышкой. |
|
Модуль формы авторизации (UnitDoor.pas) |
Служит для выбора группы пользователей, фамилии пользователя, ввода пароля пользователя в систему, проверки правильности ввода пароля и авторизации пользователя в системе. |
|
Модуль формы результатной отчетности (UnitReport.pas) |
Служит для формирования и печати отчета о проведенных инструктажах за определенный период времени и результатах работы каждого инструктора. Визуализация данных из таблицы Access осуществлена с помощью компонента DBGrid вкладки Data Controls и DBChart вкладки TeeChart Std. Выбор периода отчетности осуществляется с помощью компонентов DateTimePicker вкладки Win32. Формирование документа отчета осуществлено с помощью приложения MS Excel. |
В Приложении A представлен программный код вышеописанных программных модулей ИС.
Модуль данных, использующий для связи с БД технологию ADO, представлен на рисунке 3.15.
Рисунок 3.15 - Модуль данных
Обобщённый алгоритм решения задачи, который отражает сценарий диалога пользователя с системой, представлен на рисунке 3.15.
Рисунок 3.15 - Обобщённый алгоритм
2.2.2 Структурная схема пакета
Структурная схема программных модулей отображена в окне Project Manager среды разработки системы Delphi 10 (см. рис. 3.16).
Рисунок 3.16 - Структурная схема пакета
Дерево вызова программных модулей представлено схемой на рисунке 3.17.
Рисунок 3.17 - Дерево вызова программных модулей
2.3 Тестирование разработанного приложения
Для работы с разработанным приложением необходимо установить папку с файлами программы на локальный диск персонального компьютера, на котором предполагается использование программного средства. Запуск приложения осуществляется с помощью файла ITsupport.exe. После запуска приложения открывается форма для авторизации пользователя в системе (см. рис. 3.0)
Рисунок 3.0 - Авторизация
Для авторизации пользователя в системе, необходимо выбрать группу пользователей, фамилию пользователя, ввести пароль пользователя и нажать на кнопку «Вход». При успешной авторизации пользователя в системе открывается главная форма программы (см. рис. 3.0).
Рисунок 3.0 - Главная форма программы
Главная форма приложения имеет главное меню, которое содержит следующие пункты:
Тестирование - служебные функции системы (регистрация тестов БД, проведение тестирования, проверка результатов тестирования);
Справочники - переход к справочникам приложения (виды инструктажей, формы инструктажей, отделы, должности, пользователи, инструкторы);
Результатная отчетность - формирование результатной отчетности (отчет по проведенным инструктажам за период, отчет по результатам работы инструкторов за период).
Для перехода к справочнику «Виды инструктажей» необходимо нажать на соответствующую кнопку главного меню системы. Форма справочника «Виды инструктажей» служит для регистрации, поиска и просмотра, зарегистрированных в системе видов инструктажей (см. рис. 3.0).
Рисунок 3.0 - Справочник «Виды инструктажей»
Регистрация новых видов инструктажей осуществляется с помощью кнопки панели управления записями справочника «Insert». Сохранение - с помощью кнопки панели управления записями справочника «Save». Для удобства поиска видов инструктажей справочник отсортирован по алфавиту по названию вида инструктажа.
Форма справочника «Формы инструктажей» служит для регистрации, поиска и просмотра, зарегистрированных в системе форм инструктажей (см. рис. 3.0).
Рисунок 3.0 - Справочник «Формы инструктажей»
Регистрация новых форм инструктажей осуществляется с помощью кнопки панели управления записями справочника «Insert». Сохранение - с помощью кнопки панели управления записями справочника «Save». Для удобства поиска форм инструктажей справочник отсортирован по алфавиту по названию формы инструктажа.
Форма справочника «Отделы» служит для регистрации, поиска и просмотра, зарегистрированных в системе отделов компании (см. рис. 3.0).
Рисунок 3.0 - Справочник «Отделы»
Регистрация новых отделов компании осуществляется с помощью кнопки панели управления записями справочника «Insert». Сохранение - с помощью кнопки панели управления записями справочника «Save». Для удобства поиска отдела компании справочник отсортирован по алфавиту по названию отдела.
Форма справочника «Должности» служит для регистрации, поиска и просмотра, зарегистрированных в системе должностей отделов компании (см. рис. 3.0).
Рисунок 3.0 - Справочник «Должности»
Регистрация новых должностей отделов компании осуществляется с помощью кнопки панели управления записями справочника «Insert». Сохранение - с помощью кнопки панели управления записями справочника «Save». Для удобства поиска должности отдела компании справочник отсортирован по алфавиту по названию должности.
Форма справочника «Пользователи» служит для регистрации, поиска и просмотра, зарегистрированных в системе пользователей, имеющее право на прохождение обучения и проверки знаний по вопросам информационной безопасности (см. рис. 3.0).
Рисунок 3.0 - Справочник «Пользователи»
Регистрация новых пользователей осуществляется с помощью кнопки панели управления записями справочника «Insert». Сохранение - с помощью кнопки панели управления записями справочника «Save». Для удобства поиска пользователей справочник отсортирован по алфавиту по названию фамилии пользователя.
Форма справочника «Инструкторы» служит для регистрации, поиска и просмотра, зарегистрированных в системе инструкторов, проводящих обучение и проверку знаний пользователей по вопросам информационной безопасности (см. рис. 3.0).
Рисунок 3.0 - Справочник «Инструкторы»
Регистрация новых инструкторов осуществляется с помощью кнопки панели управления записями справочника «Insert». Сохранение - с помощью кнопки панели управления записями справочника «Save». Для удобства поиска инструкторов справочник отсортирован по алфавиту по названию фамилии инструктора.
Данные всех вышеперечисленных справочников используются при регистрации проведенных инструктажей.
Для добавления новых тестов разработана форма «Тесты», переход к которой осуществляется с помощью кнопки главного меню приложения «Тестирование» > «Тесты» (см. рис. 3.0).
Рисунок 3.0 - Тесты
Регистрация новых тестов в системе осуществляется с помощью кнопки панели управления темами тестов «Insert». Сохранение - с помощью кнопки панели управления темами тестов «Save». После регистрации теста необходимо добавить вопросы теста.
Регистрация вопросов теста осуществляется с помощью кнопки панели управления вопросами тестов «Insert». Сохранение - с помощью кнопки панели управления вопросами тестов «Save». После регистрации вопросов теста необходимо добавить альтернативы ответов на вопрос, при этом, с помощью двойного щелчка, отметить правильный ответ.
Регистрация альтернатив ответов на вопрос теста осуществляется с помощью кнопки панели управления альтернативами «Insert». Сохранение - с помощью кнопки панели управления альтернативами «Save». Для удобства правильный ответ выделяется зеленым знаком вопроса.
Главная форма программы служит для регистрации инструктажей, проведенных инструкторами компании ТБинформ, для пользователей корпоративной сети. Для регистрации проведенного инструктажа, необходимо нажать на кнопку «Insert» панели управления инструктажами главной формы программы. При этом добавляется новый инструктаж на текущую дату. Затем необходимо заполнить пустые поля с помощью выпадающих списков:
? тема инструктажа;
? вид инструктажа;
? форма инструктажа;
? ФИО пользователя, прошедшего инструктаж;
? ФИО инструктора, проведшего инструктаж.
Для сохранения инструктажа, необходимо нажать на кнопку «Post» панели управления инструктажами.
На основании проведенных инструктажей пользователь имеет возможность пройти тестирование. Для этого необходимо выбрать нужный инструктаж из списка главной формы программы и нажать на кнопку главного меню «Тестирование» > «Старт». При этом открывается форма для прохождения тестирования пользователя по теме проведенного инструктажа (см. рис. 3.0).
Рисунок 3.0 - Тестирование
Выбор альтернатив ответов на вопросы теста осуществляется с помощью двойного щелчка по альтернативе. При этом выбранная альтернатива выделяется зеленым знаком вопроса. Для сохранения результатов пройденного теста, необходимо нажать на кнопку главного меню «Сохранить» данной формы. При этом фиксируется дата прохождения тестирования и отображается результатное сообщение (см. рис. 3.0).
Рисунок 3.0 - Результатное сообщение
На основании пройденных тестов инструктор должен проверить результаты тестирования и вынести заключение. Для этого необходимо выбрать нужный инструктаж из списка главной формы программы и нажать на кнопку главного меню «Тестирование» > «Проверка». При этом система автоматически проверяет тест и отображается результаты проверки в виде сообщения (см. рис. 3.0).
Рисунок 3.0 - Проверка результатов тестирования
Анализируя результаты проверки, инспектор ставит заключение. Если тест пройден успешно, необходимо нажать кнопку «Да». Если пользователь направляется на повторное обучение, то необходимо нажать на кнопку «Нет». При этом автоматически формируется направление на повторный инструктаж по данной теме, который передается пользователю (см. рис. 3.0).
Рисунок 3.0 - Направление на повторное обучение
Для удобства инструктажи, тестирование по которым не пройдено, выделяются красной отметкой в таблице главной формы программы. Если тестирование пройдено успешно, инструктаж выделяется зеленой отметкой.
Для анализа работы компании и каждого инструктора в частности, разработана форма результатной отчетности, для перехода к которой необходимо нажать на кнопку «Результатная отчетность» главного меню данной формы (см. рис. 3.0).
Рисунок 3.0 - Форма результатной отчетности
Для формирования результатной отчетности необходимо выбрать период отчетности и нажать на кнопку «Refresh» панели управления записями отчета. При этом формируется список всех инструктажей проведенных за отчетный период и итоговая информация по каждому инструктору:
? количество проведенных инструктажей;
? количество пройденных тестирований;
? количество проверенных тестирований;
? количество тестирований пройденных успешно;
? количество тестирований с направлением на повторное обучение.
Для визуализации результатов отчетности служит диаграмма, отражающая общее количество инструктажей проведенных каждым инструктором. Так же имеется возможность печати сформированного отчета в MS Excel с помощью кнопки «Печать» главного меню данной формы (см. рис. 3.0).
Рисунок 3.0 - Результатная отчетность
Копия отчета сохраняется в подкаталоге «Отчет» корневой папки приложения. Резервное копирование БД должно выполняться не реже одно раза в неделю администратором средствами MS Access. Для завершения работы с приложением необходимо закрыть главную форму программы.
ЗАКЛЮЧЕНИЕ
Для разработки автоматизированной информационной системы учета проведения инструктажей по вопросам информационной безопасности в ООО «ТБинформ» автором диплом был проведен системный анализ предметной области автоматизации с использование структурного подхода, результатом которого явились диаграммы IDEF0. В результате проведенного анализа были выявлены множественные недостатки существующей технологии выбранной функции автоматизации:
? многократное дублирование одной и той же информации в различных документах;
? высокая трудоемкость обработки информации;
? увеличение времени на проверку тестирования пользователей;
? большие затраты времени на составление результатных отчетов.
Для устранения этих недостатков была поставлена задача о необходимости разработки автоматизированной ИС учета проведения инструктажей по вопросам информационной безопасности в ООО «ТБинформ».
В процессе реализации БД системы было проведено инфологическое моделирование, результатом которого стали ER-диаграммы логического и физического уровня. Для построения диаграмм использовалось CASE-средство ERWin, значительно облегчившее и ускорившее разработку серверной части приложения (БД).
Клиентское приложение реализовано с помощью визуальной среды программирования Delphi 2010 на объектно-ориентированном языке программирования Pascal. Разработанная информационная система автоматизирует весь спектр задач инструкторов компании ТБинформ, связанных с проведением инструктажей пользователей корпоративной сети, проведением тестирования пользователей и анализом результатов тестирования. К тому же, система автоматизирует формированием сопроводительной документации и результатной отчетности. К основным функциям системы относится решение следующих задач:
? Регистрация и учет заявок на обучение по вопросам информационной безопасности;
? Регистрация и учет инструктажей по информационной безопасности;
? Ведение электронного архива инструктажей по информационной безопасности;
? Регистрация и учет проверок знаний по вопросам информационной безопасности;
? Электронное тестирование пользователей по вопросам информационной безопасности;
? Формирование направления на повторный инструктаж;
? Ведение электронного журнала учета проведения обучения и проверки знаний;
? Контроль проведения обучения и проверок знаний пользователей по вопросам информационной безопасности;
? Формирование статистической отчетности по инструктажам и проверкам знаний по вопросам информационной безопасности (MS Excel).
В заключении, автором было проведено тестирование ИС. На данный момент система полностью отлажена и отвечает всем предъявленным к ней требованиям.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
2.4 Теория систем и системный анализ: Учеб. пособие / Кориков А.М., Павлов С.Н. -- Томск: Томск. гос. ун-т систем управления и радиоэлектроники, 2007. -- 344 с.
2.5 Автоматизация документооборота [Электронный ресурс]. - Электронные текстовые данные. - Режим доступа: http://документооборот.net/novosti_i_press-relizi/stati_o_dokumentooborote/dokumentooborot_v_pensionnih_fondah.html
2.6 Система «AVELife TestGold Studio 2008» [Электронный ресурс]. - Электронные текстовые данные. - Режим доступа: http://avelife.ru/products/testgold/features.htm
2.7 Кузнецов А., Microsoft Access 2003. Русская версия. Учебный курс, изд. Питер, 2006.
2.8 Кен Гетц и др. Access 2000. Руководство разработчика. Том 1. Настольные приложения: Пер. с англ. - К.: Издательская группа BHV, 2000.
2.9 Литвин П., Гетц К., Гунделой М. Разработка корпоративных приложений в Access 2002. Для профессионалов. - СПб.: Питер; Киев: BHV, 2003
2.10 Маклаков С.В. BPwin и ERwin. CASE-средства разработки информационных систем. -- М.: Диалог-МИФИ, 2000. -- 256 с.
2.11 RSDN. Российский журнал для программистов. Тестирование программных средств. [Электронный ресурс]. ? Электрон. текстовые данные. ? Режим доступа: http://www.rsdn.ru/article/testing/SoftwareTesting.xml.
2.12 Дарахвелидзе, Е. Марков. Программирование в Delphi 7 ? С.-Пб.: «BHV», 2003.
2.13 Проектирование экономических информационных систем: Учебник/Смирнова Г.Н., Сорокин А.А., Тельнов Ю.Ф.; Под ред. Тельнова Ю.Ф. ? М.: Финансы и статистика, 2003. ? 512 с.
2.14 Галисеев Г.В. Программирование в среде Delphi 7: самоучитель ? М.: «Диалектика», 2003.
2.15 В. Понамарев. Базы данных в Delphi 7: Самоучитель ? С.-Пб.: «Питер», 2003.
2.16 Федор А., Елманова Н.: ADO в Delphi: перевод с англ. - СПб.: БХВ-Петербург, 2002. -816 с.: ил.
2.17 Кэнту М. Delphi 6 для профессионалов . - СПб.: Питер, 2002. - 1088 с.: ил.
2.18 Таунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ. - М.: Финансы и статистика, 1990. - С. 52 - 73.
2.19 Шелястина Е.В. Методология описания бизнес-процессов и структур предприятия при построении АСУ // Промышленные АСУ и контроллеры. - 2000. - № 6. - С. 25 - 30.
2.20 Калянов Г.Н.: CASE-технологии. Консалтинг при автоматизации бизнес-процессов. 2-е изд., перераб. и доп. - М.: Горячая линия - Телеком, 2000. - 320 с., ил.
2.21 Карпова Т.С.: Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001. - 304 с.: ил.
ПРИЛОЖЕНИЕ А
(Листинг программного кода)
Модуль UnitMain.pas
unit UnitMain;
uses UnitADO, UnitHdbk, UnitTest, UnitStart, UnitReport, UnitDoor;
{$R *.dfm}
//Статус тестирования
procedure TMain.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
R: TBitmap;
begin
R := TBitmap.Create;
if Column.Title.Caption =' ' then
begin
with DBGrid1.Canvas do
begin
FillRect(Rect);
if ADO.TabInstruct.FieldByName('Тестирование').AsString <> '' then
begin
if ADO.TabInstructЗаключение.Value = 0 then
ImageList1.GetBitmap(0, R);
if ADO.TabInstructЗаключение.Value = 1 then
ImageList1.GetBitmap(1, R);
if ADO.TabInstructЗаключение.Value = 2 then
ImageList1.GetBitmap(2, R);
end;
Draw(round((Rect.Left + Rect.Right - R.Width)/2), Rect.Top, R);
end;
end;
end;
//Авторизация
procedure TMain.FormActivate(Sender: TObject);
begin
Door.ShowModal;
end;
//Форма справочников
procedure TMain.HdbkOpen(S: string; bk: TDataSource);
begin
Hdbk.GroupBox1.Caption := S;
Hdbk.DBGrid1.DataSource := bk;
Hdbk.DBNavigator1.DataSource := bk;
Hdbk.ShowModal;
end;
//Тесты
procedure TMain.N10Click(Sender: TObject);
begin
Test.ShowModal;
end;
//Тестирование
procedure TMain.N12Click(Sender: TObject);
begin
if ADO.TabInstruct.FieldByName('Тестирование').AsString <> '' then
begin
ShowMessage('Тест уже пройден! На прохождение теста дается одна попытка!');
Exit;
end;
ADO.TabTest.Close;
ADO.TabTest.Filter := 'ID =' + IntToStr(ADO.TabInstructТест.Value);
ADO.TabTest.Filtered := True;
ADO.TabTest.Open;
if ADO.TabQuest.RecordCount = 0 then
begin
ShowMessage('Для данной темы не загружены вопросы теста!');
Exit;
end;
Start.Caption := ADO.TabInstructТест2.Value + ' (' +
ADO.TabInstructПользователь2.Value + ')';
Start.ShowModal;
end;
procedure TMain.N13Click(Sender: TObject);
var
Q, A, V, N, m: integer;
Excel: Variant;
Name: OleVariant;
S: string;
begin
if ADO.TabInstruct.FieldByName('Тестирование').AsString = '' then
begin
ShowMessage('Тест еще пройден! На прохождение теста дается одна попытка!');
Exit;
end;
if ADO.TabInstructЗаключение.Value = 1 then
begin
ShowMessage('Тест уже проверен! Сдан успешно!');
Exit;
end;
if ADO.TabInstructЗаключение.Value = 2 then
begin
ShowMessage('Тест уже проверен! Пользователь направлен на повторное обучение!');
Exit;
end;
ADO.TabTest.Close;
ADO.TabTest.Filter := 'ID = ' + IntToStr(ADO.TabInstructТест.Value);
ADO.TabTest.Filtered := True;
ADO.TabTest.Open;
Q := ADO.TabQuest.RecordCount;
ADO.TabTesting.Close;
ADO.TabTesting.Filter := 'Инструктаж = ' + IntToStr(ADO.TabInstructID.Value);
ADO.TabTesting.Filtered := True;
ADO.TabTesting.Open;
A := 0; V := 0; N := 0;
With ADO.TabTesting do
begin
First;
while not EOF do
begin
ADO.TabAltern.Close;
ADO.TabAltern.Filter := 'Вопрос = ' + IntToStr(ADO.TabTestingВопрос.Value) +
' AND Статус = 1';
ADO.TabAltern.Filtered := True;
ADO.TabAltern.Open;
if ADO.TabTesting.FieldByName('Ответ').AsString <> '' then
begin
if ADO.TabTestingОтвет.Value = ADO.TabAlternID.Value then
inc(V)
else
inc(N);
end
else
inc(A);
Next;
end;
end;
ADO.TabInstruct.Edit;
IF MessageBox(Handle, PChar('Тест проверен!' + #13 + #13 +
'Пользователь: ' + ADO.TabInstructПользователь2.Value + #13 +
'Тема инструктажа: ' + ADO.TabInstructТест2.Value + #13 +
'Дата: ' + DateToStr(ADO.TabInstructТестирование.Value) + #13 + #13 +
'Кол-во вопросов теста: ' + IntToStr(Q) + #13 + 'Кол-во правильных ответов: ' + IntToStr(V) + #13 + 'Кол-во неправильных ответов: ' + IntToStr(N) + #13 + 'Кол-во вопросов без ответа: ' + IntToStr(A) + #13 + #13 + 'Тест пройден успешно?'), 'РЕЗУЛЬТАТЫ ПРОВЕРКИ',
MB_YesNo+MB_ICONWARNING+MB_TaskModal) = mrYes Then
ADO.TabInstructЗаключение.Value := 1
else
begin
ADO.TabInstructЗаключение.Value := 2;
Excel := CreateOleObject('Excel.Application');
S := ExtractFilePath(Application.ExeName);
Name := S + '\Шаблон\Направление.xls';
Try
Excel.Workbooks.Open[Name];
Excel.Visible := True;
Name := S + 'Направление\Направление № ' + IntToStr(ADO.TabInstructID.Value) + '.xls';
Excel.Range['f5'] := IntToStr(ADO.TabInstructID.Value);
Excel.Range['c8'] := ADO.TabInstructПользователь2.Value;
Excel.Range['c9'] := ADO.TabInstructТест2.Value;
Excel.Range['c10'] := DateToStr(ADO.TabInstructТестирование.Value);
Excel.Range['c12'] := IntToStr(Q);
Excel.Range['c13'] := IntToStr(V);
Excel.Range['c14'] := IntToStr(N);
Excel.Range['c15'] := IntToStr(A);
Excel.Range['c19'] := ADO.TabInstructИнструктор2.Value;
Excel.ActiveWorkbook.SaveAs[Name];
Except
begin
ShowMessage('Бланк документа "Направление" не найден!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
exit;
end;
end;
end;
ADO.TabInstruct.Post;
end;
//Результатная отчетность
procedure TMain.N14Click(Sender: TObject);
begin
Report.ShowModal;
end;
//Виды инструктажей
procedure TMain.N3Click(Sender: TObject);
begin
HdbkOpen(N3.Caption, ADO.DataKind);
end;
//Формы инструктажей
procedure TMain.N4Click(Sender: TObject);
begin
HdbkOpen(N4.Caption, ADO.DataForm);
end;
//Отделы
procedure TMain.N6Click(Sender: TObject);
begin
HdbkOpen(N6.Caption, ADO.DataDept);
end;
//Должности
procedure TMain.N7Click(Sender: TObject);
begin
HdbkOpen(N7.Caption, ADO.DataPost);
end;
//Пользователи
procedure TMain.N8Click(Sender: TObject);
begin
HdbkOpen(N8.Caption, ADO.DataUser);
end;
//Инструкторы
procedure TMain.N9Click(Sender: TObject);
begin
HdbkOpen(N9.Caption, ADO.DataTrainer);
end;
end.
Модуль UnitADO.pas
unit UnitADO;
uses UnitReport;
{$R *.dfm}
procedure TADO.DataQuestDataChange(Sender: TObject; Field: TField);
begin
TabAltern.Close;
TabAltern.Filter := 'Вопрос = ' + IntToStr(TabQuestID.Value);
TabAltern.Filtered := True;
TabAltern.Open;
end;
procedure TADO.DataTestDataChange(Sender: TObject; Field: TField);
begin
TabQuest.Close;
TabQuest.Filter := 'Тест = ' + IntToStr(TabTestID.Value);
TabQuest.Filtered := True;
TabQuest.Open;
end;
procedure TADO.QueryInstructBeforeRefresh(DataSet: TDataSet);
begin
QueryInstruct.Close;
QueryInstruct.Parameters.ParamValues['D1'] := DateToStr(Report.DateTimePicker1.Date);
QueryInstruct.Parameters.ParamValues['D2'] := DateToStr(Report.DateTimePicker2.Date);
QueryInstruct.Open;
QueryTrainer.Close;
QueryTrainer.Parameters.ParamValues['D1'] := DateToStr(Report.DateTimePicker1.Date);
QueryTrainer.Parameters.ParamValues['D2'] := DateToStr(Report.DateTimePicker2.Date);
QueryTrainer.Open;
QueryTest.Close;
QueryTest.Parameters.ParamValues['D1'] := DateToStr(Report.DateTimePicker1.Date);
QueryTest.Parameters.ParamValues['D2'] := DateToStr(Report.DateTimePicker2.Date);
QueryTest.Open;
QueryCheck.Close;
QueryCheck.Parameters.ParamValues['D1'] := DateToStr(Report.DateTimePicker1.Date);
QueryCheck.Parameters.ParamValues['D2'] := DateToStr(Report.DateTimePicker2.Date);
QueryCheck.Open;
QueryOK.Close;
QueryOK.Parameters.ParamValues['D1'] := DateToStr(Report.DateTimePicker1.Date);
QueryOK.Parameters.ParamValues['D2'] := DateToStr(Report.DateTimePicker2.Date);
QueryOK.Open;
QueryNO.Close;
QueryNO.Parameters.ParamValues['D1'] := DateToStr(Report.DateTimePicker1.Date);
QueryNO.Parameters.ParamValues['D2'] := DateToStr(Report.DateTimePicker2.Date);
QueryNO.Open;
TabTrainerRep.Close;
TabTrainerRep.Open;
Abort;
end;
procedure TADO.TabAlternAfterInsert(DataSet: TDataSet);
begin
TabAlternВопрос.Value := TabQuestID.Value;
end;
procedure TADO.TabAlternAfterPost(DataSet: TDataSet);
begin
TabAltern.Refresh;
end;
procedure TADO.TabInstructAfterInsert(DataSet: TDataSet);
begin
TabInstructДата.Value := Date();
TabInstructЗаключение.Value := 0;
end;
procedure TADO.TabQuestAfterInsert(DataSet: TDataSet);
begin
TabQuestТест.Value := TabTestID.Value;
end;
procedure TADO.TabTrainerRepCalcFields(DataSet: TDataSet);
begin
QueryTrainer.Close;
QueryTrainer.Filter := 'ID = ' + IntToStr(TabTrainerRepID.Value);
QueryTrainer.Filtered := True;
QueryTrainer.Open;
TabTrainerRepИнструктаж.Value := QueryTrainerCountID.Value;
QueryTest.Close;
QueryTest.Filter := 'ID = ' + IntToStr(TabTrainerRepID.Value);
QueryTest.Filtered := True;
QueryTest.Open;
TabTrainerRepТестирование.Value := QueryTestCountID.Value;
QueryCheck.Close;
QueryCheck.Filter := 'ID = ' + IntToStr(TabTrainerRepID.Value);
QueryCheck.Filtered := True;
QueryCheck.Open;
TabTrainerRepПроверено.Value := QueryCheckCountID.Value;
QueryOK.Close;
QueryOK.Filter := 'ID = ' + IntToStr(TabTrainerRepID.Value);
QueryOK.Filtered := True;
QueryOK.Open;
TabTrainerRepУспешно.Value := QueryOKCountID.Value;
QueryNO.Close;
QueryNO.Filter := 'ID = ' + IntToStr(TabTrainerRepID.Value);
QueryNO.Filtered := True;
QueryNO.Open;
TabTrainerRepНаправление.Value := QueryNOCountID.Value;
end;
end.
Модуль UnitStart.pas
unit UnitStart;
uses UnitADO;
{$R *.dfm}
procedure ShowTree;
var
i,j,n: integer;
begin
i := 0;
n := 0;
With ADO.TabQuest do
begin
First;
while not EOF do
begin
Start.Tree.Items.Add(nil, ADO.TabQuest.FieldByName('Текст').Value);
j:=0;
With ADO.TabAltern do
begin
First;
while not EOF do
begin
Start.Tree.Items.AddChild(Start.Tree.Items[i + n], ADO.TabAltern.FieldByName('Текст').Value);
Start.Tree.Items.Item[i + n].Item[j].ImageIndex := 1; Start.Tree.Items.Item[i + n].Item[j].SelectedIndex := 1;
inc(j);
Next;
end;
end;
Start.Tree.Items[i + n].Expanded := True;
n := n + j;
inc(i);
Next;
end;
end;
Start.Tree.Items[0].Selected := True;
end;
procedure TStart.FormActivate(Sender: TObject);
begin
ShowTree;
end;
procedure TStart.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ADO.TabTest.Filtered := False;
Start.Tree.Items.Clear;
end;
procedure TStart.N1Click(Sender: TObject);
var
i, Q, A: Integer;
begin
Q := 0;
A := 0;
for i := 0 to Tree.Items.Count - 1 do
begin
if Tree.Items[i].ImageIndex = 0 then
begin
ADO.TabQuest.Close;
ADO.TabQuest.Filter := 'Тест = ' + IntToStr(ADO.TabInstructТест.Value) +
' AND Текст = ' + Chr(39) + Tree.Items[i].Text + Chr(39);
ADO.TabQuest.Filtered := True;
ADO.TabQuest.Open;
ADO.TabTesting.Insert;
ADO.TabTestingИнструктаж.Value := ADO.TabInstructID.Value;
ADO.TabTestingВопрос.Value := ADO.TabQuestID.Value;
ADO.TabTesting.Post;
inc(Q);
end;
if Tree.Items[i].ImageIndex = 2 then
begin
ADO.TabAltern.Close;
ADO.TabAltern.Filter := 'Вопрос = ' + IntToStr(ADO.TabQuestID.Value) +
' AND Текст = ' + Chr(39) + Tree.Items[i].Text + Chr(39);
ADO.TabAltern.Filtered := True;
ADO.TabAltern.Open;
ADO.TabTesting.Edit;
ADO.TabTestingОтвет.Value := ADO.TabAlternID.Value;
ADO.TabTesting.Post;
inc(A);
end;
end;
ADO.TabInstruct.Edit;
ADO.TabInstructТестирование.Value := Date();
ADO.TabInstruct.Post;
ShowMessage('Тест завершен!' + #13 + #13 +
'Пользователь: ' + ADO.TabInstructПользователь2.Value + #13 +
'Тема инструктажа: ' + ADO.TabInstructТест2.Value + #13 +
'Дата: ' + DateToStr(ADO.TabInstructДата.Value) + #13 + #13 +
'Кол-во вопросов теста: ' + IntToStr(Q) + #13 + 'Кол-во данных ответов: ' + IntToStr(A) + #13 + #13 + 'Данные сохранены. Ожидайте проверку!');
Start.Close;
end;
procedure TStart.TreeDblClick(Sender: TObject);
begin
if Tree.Selected.ImageIndex <> 0 then
begin
if Tree.Selected.ImageIndex = 1 then
begin
Tree.Selected.ImageIndex := 2;
Tree.Selected.SelectedIndex := 2;
end
else
begin
Tree.Selected.ImageIndex := 1;
Tree.Selected.SelectedIndex := 1;
end;
end;
end;
end.
Модуль UnitTest.pas
unit UnitTest;
uses UnitADO;
{$R *.dfm}
procedure TTest.DBGrid3DblClick(Sender: TObject);
begin
if DBGrid3.SelectedIndex = 1 then
begin
ADO.TabAltern.Edit;
if ADO.TabAlternСтатус.Value = True then
ADO.TabAlternСтатус.Value := False
else
ADO.TabAlternСтатус.Value := True;
ADO.TabAltern.Post;
end;
end;
procedure TTest.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
R: TBitmap;
begin
R := TBitmap.Create;
if Column.Title.Caption =' ' then
begin
with DBGrid3.Canvas do
begin
FillRect(Rect);
if ADO.TabAlternСтатус.Value = True then
ImageList1.GetBitmap(1, R)
else
ImageList1.GetBitmap(0, R);
Draw(round((Rect.Left + Rect.Right - R.Width)/2), Rect.Top, R);
end;
end;
end;
end.
Модуль UnitReport.pas
unit UnitReport;
uses UnitADO;
{$R *.dfm}
procedure TReport.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
R: TBitmap;
begin
R := TBitmap.Create;
if Column.Title.Caption =' ' then
begin
with DBGrid1.Canvas do
begin
FillRect(Rect);
if ADO.QueryInstruct.FieldByName('Тестирование').AsString <> '' then
begin
if ADO.QueryInstructЗаключение.Value = 0 then
ImageList1.GetBitmap(0, R);
if ADO.QueryInstructЗаключение.Value = 1 then
ImageList1.GetBitmap(1, R);
if ADO.QueryInstructЗаключение.Value = 2 then
ImageList1.GetBitmap(2, R);
end;
Draw(round((Rect.Left + Rect.Right - R.Width)/2), Rect.Top, R);
end;
end;
end;
procedure TReport.N1Click(Sender: TObject);
var
Excel: Variant;
Name: OleVariant;
S: string;
n: integer;
begin
Excel := CreateOleObject('Excel.Application');
S := ExtractFilePath(Application.ExeName);
Name := S + '\Шаблон\Отчет.xls';
Try
Excel.Workbooks.Open[Name];
Excel.Visible := True;
Name := S + 'Отчет\Отчет.xls';
Excel.Range['c6'] := DateToStr(DateTimePicker1.Date);
Excel.Range['c7'] := DateToStr(DateTimePicker2.Date);
n := 10;
With ADO.QueryInstruct do
begin
First;
while not EOF do
begin
S := 'a' + IntToStr(n);
Excel.Range[S] := IntToStr(ADO.QueryInstructID.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S := 'b' + IntToStr(n);
Excel.Range[S] := DateToStr(ADO.QueryInstructДата.Value);
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S := 'c' + IntToStr(n);
Excel.Range[S] := ADO.QueryInstructТЕСТНазвание.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S := 'd' + IntToStr(n);
Excel.Range[S] := ADO.QueryInstructВИДНазвание.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S := 'e' + IntToStr(n);
Excel.Range[S] := ADO.QueryInstructФОРМАНазвание.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S := 'f' + IntToStr(n);
Excel.Range[S] := ADO.QueryInstructПОЛЬЗОВАТЕЛЬФИО.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
S := 'g' + IntToStr(n);
Excel.Range[S] := ADO.QueryInstructИНСТРУКТОРФИО.Value;
Excel.Range[S].Select;
Excel.Selection.Borders.LineStyle:=1;
inc(n);
Next;
end;
end;
Excel.ActiveWorkbook.SaveAs[Name];
Except
begin
ShowMessage('Бланк документа "Отчет" не найден!');
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Application.Restore;
exit;
end;
end;
end;
end.
Модуль UnitDoor.pas
unit UnitDoor;
uses UnitADO, UnitMain;
{$R *.dfm}
procedure TDoor.Button1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex = 0 then
begin
if Edit1.Text = ADO.ListTrainerПароль.Value then
begin
Door.Caption := 'Авторизация (ТБинформ)*';
Door.Close;
end;
end;
if RadioGroup1.ItemIndex = 1 then
begin
if Edit1.Text = ADO.ListUserПароль.Value then
begin
Door.Caption := 'Авторизация (ТБинформ)*';
Door.Close;
end;
end;
procedure TDoor.FormActivate(Sender: TObject);
begin
Edit1.SetFocus;
end;
procedure TDoor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Door.Caption = 'Авторизация (ТБинформ)' then
Main.Close
else
Main.AlphaBlend := False;
end;
procedure TDoor.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex = 0 then
begin
DBLookupListBox1.ListSource := ADO.DataListTrainer;
GroupBox1.Caption := 'Инструкторы';
end;
if RadioGroup1.ItemIndex = 1 then
begin
DBLookupListBox1.ListSource := ADO.DataListUser;
GroupBox1.Caption := 'Пользователи';
end;
end;
end.
Размещено на Allbest.ru
Подобные документы
Технико-экономическая характеристика предприятия. Выбор комплекса задач автоматизации, анализ бизнес-процессов. Концептуальный уровень архитектуры базы данных, ее физическая модель. Программная реализация информационной системы для учета ремонтных работ.
дипломная работа [8,8 M], добавлен 27.06.2012Анализ входной информации и процессов, уровня автоматизации на предприятии. Выявление объекта и задачи автоматизации. Разработка концепции построения информационной модели информационной системы. Разработка структуры базы данных и клиентского приложения.
дипломная работа [2,0 M], добавлен 22.11.2015Разработка системы автоматизированного учета АН "Елена". Описание информационного и технического обеспечения предприятия, используемых функциональных возможностей. Выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов.
дипломная работа [3,4 M], добавлен 25.01.2010Анализ существующих разработок и выбор стратегии автоматизации делопроизводства взаимоотношении поставщиков лекарственных препаратов с аптекой. Разработка проекта базы данных аптеки "Ригла". Обоснование экономической эффективности разработки базы данных.
дипломная работа [3,0 M], добавлен 19.09.2013Цель, критерии и ограничения создания автоматизированной системы. Разработка элементов информационного обеспечения информационной системы общежития. Рекомендации по выбору комплекса технических средств для автоматизации задачи учета реализации товара.
курсовая работа [920,8 K], добавлен 11.11.2022Создание и разработка информационной системы автоматизации учета книг в книжном магазине. Описание предметной области, постановка задачи и обзор методов ее решения. Модели и алгоритмы представления системы. Обоснование технических и программных средств.
курсовая работа [1,7 M], добавлен 31.03.2012- Разработка информационной системы для автоматизации учета ремонта электрооборудования на предприятии
Архитектура и функции информационной системы для автоматизации учета ремонта электрооборудования. Построение модели прецедентов, потоков данных и процессов в стандарте IDEF0. Проектирование концептуальной и логической модели интегрированной базы данных.
курсовая работа [442,9 K], добавлен 06.08.2013 Обоснование необходимости создания автоматизированного учета книг в библиотеке филиала РГГУ в г. Улан-Удэ. Проектирование программного продукта. Схема взаимосвязи программных модулей и файлов. Характеристика, классификация и кодирование информации.
дипломная работа [4,6 M], добавлен 10.09.2015Характеристика предприятия и его деятельности, организационная структура управления, выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов, обоснование проектных решений. Программное обеспечение задачи, разработка модулей.
дипломная работа [2,6 M], добавлен 29.11.2013- Выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов интернет-магазина
Организационная структура управления интернет-магазином. Классификаторы и системы кодирования. Характеристика нормативно-справочной, входной и оперативной информации. Программное обеспечение, характеристика базы данных. Дерево вызова программных модулей.
курсовая работа [2,6 M], добавлен 18.06.2013