Министерство Путей Сообщения РФ Иркутский государственный университет путей сообщения Кафедра информационных систем Курсовой проект. Информационная система отдела охраны труда Выполнил: студент гр. ИС-00-2 Беляев А.А. Проверил: ст. преподаватель Арбатский Е.В. г. Иркутск 2004 г. ЗАДАНИЕ КУРСОВОГО ПРОЕКТА • Создать информационную систему для автоматизации работы отдела ТБ • Изучение предметной области и разработка структуры ИС • Описание информационных процессов • Разработка структуры БД и программы ИС • Реализация и тестирование ИС 2 Содержание ЗАДАНИЕ КУРСОВОГО ПРОЕКТА ..........................................................................................2 1. ВВЕДЕНИЕ ................................................................................................................................4 2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ.....................................................................................5 2.1 Работа Отдела ТБ.................................................................................................................5 2.1.1 Прием на работу нового сотрудника ..........................................................................5 2.1.2 Проверка знаний сотрудников ....................................................................................5 2.1.3 Структура отдела ТБ ....................................................................................................7 2.2 Существующая ситуация ....................................................................................................7 2.3 Желаемая ситуация..............................................................................................................9 2.4 Параметры оценки...............................................................................................................9 3. РАЗРАБОТКА СТРУКТУРЫ ИС ..........................................................................................10 3.1 Аппаратно-физическая модель ИС ..................................................................................11 4. РАЗРАБОТКА СТРУКТУРЫ БД И ИНТЕРФЕЙСОВ ........................................................12 4.1 АРМ «Инспектор ТБ» .......................................................................................................12 4.2 АРМ «Экзаменатор ТБ»....................................................................................................12 4.3 АРМ «Журнал ТБ» ............................................................................................................13 5. ПРОГРАМНАЯ РЕАЛИЗАЦИЯ ИС......................................................................................14 5.1 Серверная часть .................................................................................................................14 5.2 Клиентская часть ...............................................................................................................14 6. ЗАКЛЮЧЕНИЕ........................................................................................................................15 7. ПРИЛОЖЕНИЯ .......................................................................................................................16 3 1. ВВЕДЕНИЕ В наше время автоматизации ручного труда отводится большое значение. Анализ предложенной предметной области выявил необходимость создания базы данных для учета и организации контроля своевременной аттестации сотрудников предприятия (ВЧД7) по техники безопасности. Необходимость разработки данного приложения мотивируется четырьмя аспектами: организационный, технический, психологический и юридический. Организационный: Высокая трудоемкость учета своевременности прохождения аттестации по ТБ и организации такой аттестации. Технический: Несвоевременность аттестации расхолаживает работников, что приводит к снижению квалификации и, как следствие, к снижению качества выполняемой работы. Психологический: Своевременное проведение аттестации повышает моральную ответственность работников и руководство за безопасные условия труда, эксплуатацию техники, охрану окружающей среды, жизнь и здоровье работников и клиентов. Юридический: Допуск к работе не аттестованного работника в случае возникновения аварии или аварийной ситуации приводит к ответственности вышестоящее руководство. 4 2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ Отдел ТБ на железнодорожном транспорте. Для допуска к работе требуется сдача экзаменов по ТБ. На большом предприятии требуется сдача нескольких экзаменов, при этом контроль за своевременной сдачей был бы затруднен. Для разработки информационной системы выберем предприятие ВЧД-7 как подразделение Железной дороги (количество рабочих ~2000т. человек, количество экзаменов около 5). Схема 1. Структура управления ЖД транспортом Инспектор ТБ существует на каждом уровне структуры. В нашем случае рассмотрим нижний уровень, ПТБ работников подразделения дороги. 2.1 Работа Отдела ТБ 2.1.1 Прием на работу нового сотрудника При приеме человека на работу с ним должны быть проведены: 1. вводный инструктаж; 2. первичный инструктаж на рабочем месте; 3. обучение по Охране труда; 4. первичная проверка знаний; 5. стажировка; 6. допуск к самостоятельной работе. 2.1.2 Проверка знаний сотрудников После приема сотрудника на работу и сдачи им первичного экзамена его допускают к работе. В дальнейшем проводится периодическая проверка знаний. Количество и состав экзаменов определяется профессией. Каждый день в отделе Кадров формируются направления на вводный инструктаж и другие необходимые процедуры. Новый сотрудник приходит на инструктаж в отдел ТБ – имея на руках это направление. После проверки знаний экзаменатор ТБ формирует приказ 5 на разрешение работы. После проверки начинается отсчет времени до следующей сдачи. Когда до даты сдачи остается 20 дней экзаменатор формирует предписание на очередную сдачу экзаменов. Если работником была просрочена дата сдачи, то экзаменатор ТБ формирует и отсылает приказ на отстранение от работы. Схема. 2. Структура оборота документов Обработку данных производит экзаменатор ТБ. Контроль сдачи – программа «Журнал учета испытаний» Временные интервалы: • Направление на сдачу экзаменов доставляются самим рабочим. Время прохождения инструктажа и сдачи экзамена никто не ограничивает, но реально 1-2 дня (при приеме на работу) • Приказ к разрешению работы доставляется в течении 2х дней • Предписание(направление) на сдачу экзаменов в течении дня доставляются в цех 6 Схема. 3. Структура функционирования отдела ТБ Обработка, внесение в списки на сдачу, прием экзаменов – выполняются экзаменатором Перенос в списки ожидающих экзамен – программа «Журнал учета испытаний» 2.1.3 Структура отдела ТБ Инспектор ТБ Экзаменатор ТБ Экзаменатор ТБ Экзаменатор ТБ Схема. 3. Структура отдела ТБ Инспектор ТБ – контролирует работу экзаменаторов. Экзаменатор принимает экзамены, которые он имеет право принимать. В день принимается несколько рабочих у каждого экзаменатора. Сдачу экзамена отмечают в программе «Журнал учета испытаний». 2.2 Существующая ситуация В отделе ОТ находиться журнал в который заносятся записи о нарушениях ТБ с лишением премии или другим наказанием. Журнал имеет следующие графы: 7 1. № п.п. 2. Фамилия, инициалы работника. 3. Подразделение(подразделение, цех) 4. Профессия 5. Дата нарушения 6. Фамилия, инициалы экзаменатора отдела ОТ. 7. Подпись экзаменатора отдела ОТ. 8. Подпись работника. Журнал является юридически значимым документом при проведении расследований несчастных случаев на производстве. В данный момент на рабочем месте Экзаменатора ТБ используется ПО сторонних разработчиков - «Журнал учета испытаний». Используемое ПО не удовлетворяет потребности по следующим причинами: • Ошибки и сбои в работе программы; • Неудобный интерфейс пользователя; • Отсутствие взаимодействия программы с другими АРМами; • Отсутствие разбиения рабочих пространств экзаменаторов, инспектора и руководящего состава; • Отсутствие какой-либо отчетности и статистики; • Закрытость приложения и отсутствие технической поддержки со стороны разработчика не позволяет развивать систему, а также поддерживать ее в рабочем состоянии. Инспектор ТБ должен контролирует работу экзаменаторов: 1. просматривать информации о задолжниках; 2. просматривать Журнала нарушений. Вывод: Экзаменаторов ТБ не устраивают условия работы, потому что программа «Журнал учета испытаний». ненадежна и работать в ней неудобно. Инспектору ТБ тоже недоволен условиями работы. Для выполнения своих функций, приходится отрывать экзаменаторов от работы и просматривать журнал нарушений. 8 2.3 Желаемая ситуация • Открытость системы: возможность обмена данными с существующими АРМами. • Модуль для создания отчетных форм без вмешательства разработчиков; • «Дружелюбный» интерфейс клиентских модулей; • Возможность ведения статистики и, при необходимости, передача ее в другие АРМы; • Увеличение скорости оборота документов; • Системой защиты информации от несанкционированного доступа; • Разделение рабочих пространств; 2.4 Параметры оценки Внедрение ИС будет считаться успешным, при достижении следующих параметров: • Снижение количества просроченных экзаменов • Уменьшение часов, затрачиваемых инженером по ТБ на организационные работы по приему периодичных экзаменов; • Объединение возможностей существующей программы и журнала нарушений; • Упрощение контроля Инспектором ТБ – Экзаменаторов. 9 3. РАЗРАБОТКА СТРУКТУРЫ ИС Внешние ИС АРМ КАДРЫ Другие АРМы Разрабатываемая ИС ИС ТБ АРМ «Инспектор ТБ» АРМ «Экзаменатор ТБ» АРМ «Журнал ТБ» данные Схема 4: ИС по ТБ Система должна иметь интерфейс работы с системой АРМ КАДРЫ. Информация о вновь принятом работнике должна появляться на сервере нашей ИС т.е. автоматически при приеме человека на работу он появлялся на терминале «АРМ Экзаменатора ТБ» как ожидающий сдачи. • «АРМ Инспектор ТБ» - Рабочее место инспектора ТБ. На этот АРМ накладывается автоматизация проверки работы экзаменаторов Функциональность АРМа 1. Контроль просроченных экзаменов; 2. Контроль нарушений ТБ 3. Ведение справочников: a. Экзамены b. Экзаменаторы c. Профессии d. Цеха • АРМ «Экзаменатор ТБ» - экзаменатор принимает экзамены в зависимости от прав которые Инспектор ставит Экзаменатору; Оформление нарушений ТБ 10 • АРМ «Журнал ТБ» - АРМ для просмотра данных. Для реализации данного АРМа можно предложить изготовить интерфейс работы через HTTP протокол. Связь с другими АРМами в нашей системе может быть развита очень сильно. потому что. в любой организации где существует отдел ТБ – требуется сдача экзаменов для допуска к работе. Поэтому для допуска к работе следует проверить, сдан ли экзамен. Для автоматизации данной проверки можно организовать интерфейс работы с различными АРМами. 3.1 Аппаратно-физическая модель ИС АРМ «Инспектор ТБ» АРМ «Экзаменатор ТБ» АРМ «Журнал ТБ» Сервер (БД) Схема 5: Аппаратно-физическая модель ИС 11 4. РАЗРАБОТКА СТРУКТУРЫ БД И ИНТЕРФЕЙСОВ 4.1 АРМ «Инспектор ТБ» Для организации работы Инспектора необходимы следующие данные: 1. Сотрудники a. Табельный номер b. ФИО c. Профессия d. Подразделение 2. Профессии 3. Цеха 4. Экзамены a. Наименование b. Периодичность сдачи 5. Экзаменаторы 6. Права экзаменаторов АРМ «Инспектор ТБ» Ведение справочников Сервер (БД) Схема 6: Функционирование АРМ «Инспектор ТБ» 4.2 АРМ «Экзаменатор ТБ» Для организации работы Экзаменатора необходимы следующие данные: 7. Сотрудники a. Табельный номер b. ФИО c. Профессия d. Подразделение 8. Профессии 9. Цеха 10. Экзамены a. Наименование 12 b. Периодичность сдачи АРМ «Экзаменатор ТБ» Оформление сдачи экзаменов Сервер (БД) Схема 7: Функционирование АРМ «Экзаменатор ТБ» 4.3 АРМ «Журнал ТБ» Для просмотра данных по сданным экзаменам нужно создать АРМ «Журнал ТБ». Это обосновано тем, что не на любом рабочем месте есть компьютер. Для реализации этого АРМа можно создать сайт с данными о сдачах. Любой сотрудник может зайти на сайт отдела ТБ, ввести свой табельный номер и просмотреть информацию. В этом случае просмотр можно будет осуществить с любого компьютера подключенного к сети МПС. Физическая модель БД приведена в ПРИЛОЖЕНИИ 1 Структура таблиц базы данных приведена в ПРИЛОЖЕНИИ 2 13 5. ПРОГРАМНАЯ РЕАЛИЗАЦИЯ ИС Для разработки программного комплекса было выбрано следующие ПО: 1. Borland Delphi 6.0 2. СУБД: InterBase 6.0 Созданная информационная система построена по архитектуре "клиент-сервер" В СУБД: InterBase 6.0 создан сервер в котором хранятся таблицы и процедуры На Borland Delphi 6.0 создана клиентская часть АРМов (для Инспектора ТБ и Экзаменатора ТБ). Клиентская часть одинаковая для обоих АРМов, а права пользователя определяются паролем. 5.1 Серверная часть 1. Хранение таблиц с данными 2. Хранение процедур по управлению данными Серверная часть сделана с помощью InterBase SQL Часть кода приведена в ПРИЛОЖЕНИИ 3 5.2 Клиентская часть 1. Отделение интерфейса Инспектора и Экзаменатора 2. Ведение справочников (добавление, удаление, обновление записей): • Профессии • Цеха • Рабочие • Экзамены • Экзаменаторы • Нарушения • Экзамены для рабочих • Экзаменаторов для экзаменов 3. Представление данных для легкого контроля за сдачей экзаменов 4. Создание печатных форм Основные участки кода программы для работы с сервером приведены в ПРИЛОЖЕНИИ 4 Формы интерфейса клиентской части приведены в ПРИЛОЖЕНИИ 5 14 6. ЗАКЛЮЧЕНИЕ Результатом работы над информационной системой явилось ее создание. Следующим шагом по работе над ней – это введение ее в эксплуатацию в ВЧД-7. Созданная программа соответствует требованиям, накладываемым заказчиком. Поэтому ее введение в эксплуатацию ничем не затруднена. 15 7. ПРИЛОЖЕНИЯ 16 Приложение 1. Физическая модель БД для ИС ТБ Схема 8 Физическая модель БД Созданная структура удовлетворяет запросам по созданию ИС, для замены существующего комплекса. 17 Приложение 2. Структура таблиц базы данных Таблица exam. Содержит данные о возможных периодических экзаменах. Поле Тип Описание id integer Первичный ключ name CHAR(255) Полное наименование экзамена period Integer Периодичность. Раз в N месяцев small CHAR(255) Сокращенное название. Требуется для отчетов Таблица person. Содержит данные о сотрудниках предприятия Поле Тип Описание id integer Табельный номер (Первичный ключ) name CHAR(255) Фамилия, инициалы id_prof Integer Для связи с prof Таблица prof. Содержит данные о профессиях предприятия. Поле Тип Описание id integer Первичный ключ name CHAR(255) Название профессии id_depart Integer Для связи с depart Таблица depart. Содержит данные о структурных подразделениях предприятия. Поле Тип Описание id integer Первичный ключ name CHAR(255) Наименование цеха. master CHAR(255) ФИО старшего мастера. Требуется для отчетов Таблица p_e. Служит для связи exam и person. Поле Тип Описание id integer Первичный ключ id_person Integer Для связи с person id_exam Integer Для связи с exam check CHAR(8) Дата сдачи экзамена raz Integer Метка о разовом экзамене 18 Таблица e_e. Служит для связи exam и examenators. Поле Тип Описание id integer Первичный ключ id_examenators Integer Для связи с examenators id_exam Для связи с exam Integer Таблица examenators. Данные об Экзаменаторах Поле Тип Описание id integer Первичный ключ FIO CHAR(255) Фамилия И.О. PASS CHAR(8) Password Таблица Narush. Данные по нарушениям. Поле Тип Описание id integer Первичный ключ id_person Integer Для связи с person Date_N CHAR(8)r Дата сдачи id_examenators Integer Для связи с examenators MEMO Текст нарушения CHAR(255) 19 Приложение 3. DDL серверной части Серверная часть (участки DDL таблиц сервера) Создание таблицы DEPART (таблица не имеет внешних ключей) CREATE TABLE DEPART ( ID INTEGER NOT NULL, NAME CHAR(255), MASTER CHAR(255)); ALTER TABLE DEPART ADD PRIMARY KEY (ID); CREATE TRIGGER TR_DEPART FOR DEPART ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (DEPART.ID IS NULL) THEN DEPART.ID = GEN_ID(GEN_DEPART,1); END CREATE TRIGGER TR_DEPART_DEL FOR DEPART ACTIVE BEFORE DELETE POSITION 0 as begin delete from prof where prof.id_depart=DEPART.id; end При создании таблицы, создается: • Структура (Имена полей и их тип); • Первичный ключ; • Генератор для первичного ключа; • Триггер для генерации нового значения первичного ключа. • Триггер для обеспечения целостности данных (удаление Профессии из таблицы PROF которые были в удаляемом Цехе) Создание таблицы PROF (таблица имеет внешние ключи) CREATE TABLE PROF ( ID INTEGER NOT NULL, NAME CHAR(255), ID_DEPART INTEGER); 20 ALTER TABLE PROF ADD PRIMARY KEY (ID); ALTER TABLE PROF ADD CONSTRAINT FK_PROF FOREIGN KEY (ID_DEPART) REFERENCES DEPART (ID); CREATE TRIGGER TR_PROF FOR PROF ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (PROF.ID IS NULL) THEN PROF.ID = GEN_ID(GEN_PROF,1); END CREATE TRIGGER TR_PROF_DEL FOR PROF ACTIVE BEFORE DELETE POSITION 0 as begin delete from person where person.id_prof=PROF.id; end Для таблицы имеющей внешние ключи добавляется: • Создание внешнего ключа Остальные таблицы создаются по подобию Для каждой таблицы создадим процедуры на ДОБАВЛЕНИЕ, УДАЛЕНИЕ, ОБНОВЛЕНИЕ УДАЛЕНИЕ CREATE PROCEDURE DEPART_D ( ID INTEGER) AS BEGIN DELETE FROM DEPART WHERE (ID = :ID); END ДОБАВЛЕНИЕ CREATE PROCEDURE DEPART_I ( NAME CHAR(255), MASTER CHAR(255)) AS 21 BEGIN INSERT INTO DEPART (iD,NAME,MASTER) VALUES ( GEn_ID(GEN_depart,1), :NAME, :MASTER); END ОБНОВЛЕНИЕ CREATE PROCEDURE DEPART_U ( ID INTEGER, NAME CHAR(255), MASTER CHAR(255)) AS BEGIN UPDATE DEPART SET NAME = :NAME, MASTER = :MASTER WHERE (ID = :ID); END 22 Приложение 4. Основные участки кода программы для работы с сервером Вызов процедуры на удаление If Application.MessageBox('Удалить запись?', '',MB_yesNo + MB_DEFBUTTON1)=IDYES then Begin DataModule2.IBStoredProc8.Prepare; DataModule2.IBStoredProc8.Params[0].AsString:= dbgrid1.DataSource.DataSet.Fields[0].asstring; try DataModule2.IBStoredProc8.ExecProc; finally DataModule2.IBStoredProc8.UnPrepare; end; end; Dbgrid1.DataSource.DataSet.Refresh; Вызов процедуры на изменение записи If Application.MessageBox('Изменить запись?', '',MB_yesNo + MB_DEFBUTTON1)=IDYES then Begin DataModule2.IBStoredProc13.Prepare; DataModule2.IBStoredProc13.Params[0].AsString:= dbgrid1.DataSource.DataSet.Fields[0].asstring; DataModule2.IBStoredProc13.Params[1].AsString:=edit2.Text; try DataModule2.IBStoredProc13.ExecProc; finally DataModule2.IBStoredProc13.UnPrepare; end; end; Dbgrid1.DataSource.DataSet.Refresh; Вызов процедуры на добавление записи DataModule2.IBStoredProc4.Prepare; 23 DataModule2.IBStoredProc4.Params[0].AsString:= form3.dbgrid1.DataSource.DataSet.Fields[0].asstring; DataModule2.IBStoredProc4.Params[1].AsString:= dbgrid1.DataSource.DataSet.Fields[0].asstring; try DataModule2.IBStoredProc4.ExecProc; finally DataModule2.IBStoredProc4.UnPrepare; end; Вызов всех процедур одинаковый 24 Приложение 5. Формы интерфейса Разделение рабочих пространств РИС. 1 Разделение рабочих пространств Окно АРМ «ИНСПЕКТОР ТБ РИС. 2 АРМ «ИНСПЕКТОР ТБ В главном окне АРМа «ИНСПЕКТОР ТБ» - доступны функции указанные в п.3 25 Окно АРМ «ЭКЗАМЕНАТОР ТБ» РИС. 3 АРМ «ЭКЗАМЕНАТОР ТБ» В главном окне АРМа «ЭКЗАМЕНАТОР ТБ» - доступны функции указанные в п.3 26