разработка подсистемы ввода и хранения расписания

advertisement
Министерство науки и образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет информатики
Кафедра теоретических основ информатики
УДК 681.03
ДОПУСТИТЬ К ЗАЩИТЕ В ГАК
Зав. кафедрой, проф., д.т.н.
_________________Ю.Л. Костюк
«___»_____________2004 г.
Журавлева Наталия Андреевна
РАЗРАБОТКА
ПОДСИСТЕМЫ ВВОДА И ХРАНЕНИЯ РАСПИСАНИЯ
Дипломная работа
Научный руководитель,
зам. директора
Центра Интернет
А. В. Зубков
Исполнитель,
студ. гр. 1491
Н. А. Журавлева
Электронная версия дипломной работы помещена
В электронную библиотеку. Файл
Администратор
Томск – 2004
Реферат
Отчет о дипломной работе 66 с., 13 рис., 4 приложения, 4 источника
ИНФОРМАЦИОННАЯ СИСТЕМА, БЮРО РАСПИСАНИЙ, MICROSOFT SQL SERVER
2000, СХЕМА БАЗЫ ДАННЫХ, РЕЛЯЦИОННАЯ СУБД
Объект разработки – информационная
государственного университета.
система
ведения
расписания
Томского
Цель работы – Автоматизация деятельности бюро расписаний.
Метод проведения работы - Теоретический и практический.
Результаты работы - Реализована подсистема ввода и хранения расписания
Степень внедрения – Система готова к внедрению в опытную эксплуатацию
Рекомендации по внедрению – Бюро расписаний крупного учебного заведения
Прогноз о развитии исследования – Дополнительные требования и мнения об удобстве
использования должны быть выявлены в процессе опытной эксплуатации.
2
Содержание
Реферат ...........................................................................................................................................2
Содержание ....................................................................................................................................3
Введение .........................................................................................................................................4
1 Постановка и возникновение задачи, проблематика. .............................................................5
1.1 НЕОБХОДИМОСТЬ ЗАДАЧИ, ВАЖНОСТЬ..................................................................................5
1.2 ОБЗОР СУЩЕСТВУЮЩИХ СИСТЕМ. ........................................................................................5
1.3 КРАТКОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ ........................................................................6
1.4 АНАЛИЗ И РЕШЕНИЕ, ПОДСИСТЕМЫ ......................................................................................7
1.5 ИСХОДНЫЕ ДАННЫЕ ..............................................................................................................8
1.6 ВИДЫ НЕОБХОДИМЫХ ОПЕРАЦИЙ .........................................................................................9
2 Требования к системе...............................................................................................................11
2.1 ТРЕБОВАНИЯ К СИСТЕМЕ «РАСПИСАНИЕ» В ЦЕЛОМ ...........................................................11
2.2 ТРЕБОВАНИЯ К ПОДСИСТЕМЕ ВВОДА ...................................................................................11
2.3 ТРЕБОВАНИЯ К ИНТЕРФЕЙСНОЙ ЧАСТИ ПОДСИСТЕМЫ ВВОДА ............................................12
2.4 ДОПОЛНИТЕЛЬНЫЕ ТРЕБОВАНИЯ К СИСТЕМЕ «РАСПИСАНИЕ»...........................................13
3 Выбор инструментов, технологии ..........................................................................................15
3.1 ВЫБОР СРЕДСТВА РАЗРАБОТКИ ПОДСИСТЕМЫ ВВОДА .........................................................15
3.2 ВЫБОР СУБД.......................................................................................................................16
3.2.1 Использование ODBC-драйвера ...............................................................................16
3.2.2 MS SQL Server 2000 ...................................................................................................16
4 Реализация подсистемы ввода.................................................................................................18
4.1 СХЕМА БАЗЫ ДАННЫХ .........................................................................................................18
4.1.1 Схема ...........................................................................................................................18
4.1.2 Список отношений с указанием атрибутов..............................................................19
4.1.3 Перечень связей ..........................................................................................................22
4.2 ИНТЕРФЕЙС ПОДСИСТЕМЫ ВВОДА.......................................................................................23
4.3 УСТРАНЕНИЕ КОНФЛИКТОВ .................................................................................................29
Заключение...................................................................................................................................32
Список использованных источников.........................................................................................33
Приложение А. Руководство программиста .............................................................................34
Приложение Б. Руководство пользователя ...............................................................................36
Приложение В. Список файлов..................................................................................................51
Приложение Г. Техническое задание ........................................................................................52
3
Введение
Проблема составления расписания существует давно. Бюро расписаний
университета – это большой и сложный механизм, который работает с большим
количеством информации. От оперативности работы сотрудников бюро расписаний
зависит учебный процесс в вузе, увеличение эффективности работы сотрудников бюро
расписаний значительно влияет на учебный процесс.
Были попытки автоматизировать деятельность бюро расписаний в ТГУ. К
сожалению, эти попытки не увенчались успехом по той причине, что задача решалась как
оптимизационная, то есть по заданному набору ограничений и входных данных
необходимо было сгенерировать расписание для всех факультетов университета. Эта
задача решалась в рамках дипломных и курсовых работ, но оказалась слишком сложна.
Поэтому по предложению заказчика в соответствии с техническим заданием задача была
сформулирована следующим образом: необходимо создать систему с удобным
интеллектуальным вводом, системой корректировки введенных данных, с системой
оперативного оповещения лиц, которых коснулись изменения, произведенные в
расписании и возможностью отображения расписания в различных форматах.
На рынке существуют подобные системы, но, к сожалению, они не удовлетворяют
всем требованиям либо являются платными. К тому же, необходимо отметить, что каждый
университет в какой-то степени уникален, и трудно найти универсальную систему,
которая подходила бы для составления расписания любого университета.
Итак, объектом разработки является информационная система ведения расписания
Томского государственного университета. Цель работы – автоматизация деятельности
бюро расписаний.
В данной работе рассматривается только подсистема ввода и хранения расписания.
Подсистема распространения расписания рассматривается в рамках другой дипломной
работы.
Разработанная подсистема позволяет корректно вводить расписание в базу данных
с помощью удобного интерфейса, изменять и удалять информацию, а также
предотвращает явные конфликты. На стадии эксплуатации должны быть изучены
дополнительные требования пользователей и мнения об удобстве эксплуатации
подсистемы.
Работа состоит из четырех глав, введения, заключения, четырех приложений и
списка использованных источников.
В первой главе рассматривается проблематика, предметная область задачи,
исследуются существующие системы. Во второй главе описаны требования к подсистеме
ввода и хранения данных и требования к системе в целом. В третьей главе описывается
выбор инструментальных средств. В последней главе описывается реализация
подсистемы.
4
1 Постановка и возникновение задачи, проблематика.
1.1 Необходимость задачи, важность
Задача автоматизации расписания в высшей школе существует давно. С 1969 года в
Томском государственном университете эту задачу пытались решить в рамках дипломных
и курсовых работ, но корректно ее не смог решить никто, видимо, по причине того, что
задача является очень трудозатратной и не может быть решена в рамках дипломной
работы.
Важность данной задачи – огромная. Работникам бюро расписаний трудно составить
такое расписание, которое бы всех устроило, тем более что в ТГУ более 20 факультетов с
множеством групп. Выполнять такую работу «бумажным методом» вдвойне тяжело.
Поэтому существует необходимость хоть немного автоматизировать этот процесс.
Так как нет реальной возможности создать автоматизированную систему создания
расписания, было решено заниматься не автоматизацией составления расписания, а
попытаться создать удобную систему ввода и распространения расписания. Т.е. создать
систему, которая бы позволяла ввести в базу данных расписание, сигнализировать о
конфликтах в расписании, а также разослать расписание преподавателям по электронной
почте и сформировать веб-представление.
В такой постановке задача выполнима и существенно облегчит работу, как
сотрудников бюро расписаний, так и преподавателей и студентов.
1.2 Обзор существующих систем.
На сегодняшний день большинство существующих систем ориентированы на
решение оптимизационной задачи по автоматическому составлению расписания. Это
значит, по заданному набору сходных данных и ограничений необходимо автоматически
генерировать расписание. Было установлено, что задача в оптимизационной постановке
может быть решена, но в рамках дипломной работы это невозможно из-за трудоемкости
задачи.
Особенность задачи для Томского государственного университета является нехватка
аудиторий, в связи с чем, оптимизационная задача противоречива изначально.
В свете проблем описанных выше по предложению заказчика было решено решать
не оптимизационную задачу, а информационную.
5
Задача будет решаться в следующей формулировке: необходимо создать систему с
удобным интеллектуальным вводом, системой корректировки введенных данных, с
системой оперативного оповещения лиц, которых коснулись изменения, произведенные в
расписании и возможностью отображения расписания в различных форматах.
Для решения этих задач система будет состоять из 3-х основных подсистем:
подсистема ввода данных, подсистема анализа изменений в данных и их рассылки и
подсистема представления расписания в виде веб-сайта.
Подобных систем (отвечающих данной формулировке полностью) найдено не было,
но были найдены такие системы, как «Расписание+», «Расписание» ver. 2.0, Расписание
5.0.
Недостатки существующих систем (информация взята из описания систем):
«Расписание+» и «Расписание» ver. 2.0 не отслеживают конфликтные ситуации, не имеют
подсистем распространения расписания и не имеют веб-представления. Система
«Расписание 5.0» - не имеет подсистемы распространения расписания, но позволяет
автоматически составлять расписание. Необходимо сказать, что система «Расписание 5.0»
создавалась в течение десяти лет. К тому же, все вышеупомянутые системы являются
платными.
В Томском политехническом университете, как мне пояснили разработчики,
используется система отображения расписания в виде веб-сайта, но нет системы ввода
расписания, расписание вводится прямо в базу данных, написанную на Fox Pro, а затем
конвертируется в MySQL.
1.3 Краткое описание предметной области
В настоящее время невозможно полностью автоматизировать деятельность бюро
расписаний. Причиной этому является невозможность компьютера учитывать так
называемый «человеческий фактор». Вообще, при составлении расписания возникают 2
основные проблемы:
1.) Удобство, т.е. необходимо составить расписание так, чтобы:
•
занятия в отдельно взятой группе следовали подряд (без «окон»)
•
лекции, практики и лабораторные занятия у преподавателя следовали одна
за другой (также без «окон»)
•
рядом стоящие занятия для группы по возможности проходили в одном
корпусе либо в близлежащем корпусе. В противном случае (если корпус, где
проходит следующее занятие, находится далеко и невозможно провести
занятие в ближайшем корпусе) необходимо, чтобы было «окно» для того,
чтобы студент смог добраться до нужного ему корпуса.
6
•
рядом стоящие занятия для преподавателя проходили в одном корпусе либо
в близлежащем корпусе. В противном случае необходимо, чтобы было
«окно» для того, чтобы преподаватель смог добраться до нужного ему
корпуса.
•
Иногда возникают ситуации, когда преподаватель может работать только в
одну смену или определенное время у него занято (например, он проходит
медицинское обследование или имеет параллельную работу или занят
другой университетской работой и др.), в этом случае необходимо ставить
лекции в расписание таким образом, чтобы преподаватель работал в
удобное ему время.
2.) Нехватка аудиторий, т.е. аудиторий может просто не хватать или аудитория
может ремонтироваться и др.
Эти проблемы компьютер не учтет, поэтому само расписание будет составляться
вручную. А уже ввод расписания, ввод изменений расписания, рассылка изменений
расписания и отображение расписания посредством веб-сайта будет выполнять
программа, что значительно облегчит работу сотрудников бюро расписаний по доставке
измененного расписания.
Также компьютер не сможет отследить такую, к примеру, ситуацию, что два
разных преподавателя хотят поменяться аудиториями на одно время по каким-то
причинам. В этом случае возникнет конфликт в системе, хотя на самом деле его нет. Но
эту проблему можно решить – оповестить пользователя о конфликте.
1.4 Анализ и решение, подсистемы
Необходимо создать систему «Расписание» с удобным интеллектуальным вводом,
системой корректировки введенных данных, с системой оперативного оповещения лиц,
которых коснулись изменения, произведенные в расписании и возможностью
отображения расписания в различных форматах.
Система будет состоять из 3-х основных подсистем: подсистема ввода расписания,
подсистема анализа изменений и рассылки, подсистема представления расписания в виде
веб-сайта.
1) Подсистема «Ввод данных». Данная подсистема предназначена для ввода
расписания, а также внесения изменений, предотвращает конфликты. Представляет
данные в разрезах: группа, преподаватель, аудитория. Эта подсистема ориентирована на
конечных пользователей - сотрудников бюро расписания.
Подсистема ввода должна работать с исходными данными, описанными в п. 1.5, и
выполнять необходимые операции, описанные в п.1.6. , отвечать требованиям
технического задания и требованиям функциональности.
7
2) Подсистема «Представления расписания». Предназначена для представления
расписания посредством веб-сайта, для предоставления возможности оперативного
просмотра расписания. Эта подсистема ориентирована на конечных пользователей –
преподавателей, студентов и сотрудников деканатов.
Предназначена для
3) Подсистема «Анализа изменений и рассылки».
оперативного обнаружения изменений, анализа списка лиц, которых изменения коснулись
и рассылки новой копии расписания.
На рисунке 1 изображена схема, которая демонстрирует компоненты и потоки
данных в системе.
Рисунок 1 – Схема, демонстрирующая компоненты и потоки данных в системе.
Сотрудник бюро расписаний вводит данные, которые попадают в реляционную
базу данных. После этого реализуется механизм взаимодействия с подсистемой анализа
измененных данных.
В данной работе будет описана реализация подсистемы ввода расписания.
1.5 Исходные данные
Необходимые исходные данные для функционирования системы:
8
•
о преподавателях: фамилия, имя, отчество, предметы (которые преподает
преподаватель)
•
о предметах: название, тип пары (лекция, практика, лаборатория…)
•
о деканатах: название факультета, фамилия, имя и отчество декана
•
о группах: Номер, количество человек в группе, деканат, к которому относится
данная группа
•
об аудиториях: Номер, корпус, вместимость (сколько человек входит в аудиторию)
•
о времени: номер, начало и конец пары
Помимо необходимых данных существуют так называемые желательные данные,
такие как адрес электронной почты преподавателя, звание и должность преподавателя,
адрес электронной почты старосты группы.
1.6 Виды необходимых операций
Существует несколько основных операций, которые должен производить работник
бюро расписаний.
1. Ввод расписания.
Пользователю необходимо ввести расписание, которое будет автоматически
сохраняться в базе данных.
Данные о расписании должны содержать необходимые сведения, а точнее, время,
предмет, преподавателя, аудиторию и группу.
Иногда пользователю необходимо сопоставить одному преподавателю в одно
время несколько групп, а также разбить группу на подгруппы, чтобы они могли
заниматься у разных преподавателей в разных аудиториях.
2. Изменение ячейки расписания.
Пользователь должен иметь возможность изменить расписание (предмет,
преподавателя, аудиторию или группу).
В случае, когда одному преподавателю в одно время поставлено несколько групп,
пользователь должен иметь возможность изменить не только все сразу группы, но
и одну из них. Также и в случае, когда группы разбиты на подгруппы – должна
быть возможность изменить информацию только у одной подгруппы.
3. Удаление ячейки расписания
9
Пользователь должен иметь возможность удалить как ячейку расписания
полностью (предмет, преподавателя, аудиторию и группу), так и частично.
В случае, когда одному преподавателю в одно время поставлено несколько групп,
пользователь должен иметь возможность удалить не только все сразу группы, но и
одну из них. Также и в случае, когда группы разбиты на подгруппы – должна быть
возможность удалить информацию только у одной подгруппы.
10
2 Требования к системе
2.1 Требования к системе «Расписание» в целом
Существует ряд основных требований к системе «Расписание» в целом:
1. Система должна быть простой в использовании
2. Система должна иметь привычный для пользователей вид.
3. Одним из главных требований является устранение конфликтов. Если данные
изменяются, то может произойти конфликт. Например, изменяется «старая»
аудитория для преподавателя на «новую», а в «новой» уже стоит занятие по
расписанию. В этом случае система должна выдавать предупреждение о
конфликте. Также пользователю должно быть отказано в случае, если вместимость
аудитории меньше, чем количество студентов, которые должны присутствовать на
занятии.
4. Агент-программа (которая следит за изменениями расписания) должна каждые 5
минут «смотреть» не изменилось ли расписание, в случае изменения расписания
она должна послать по почте вид нового расписания преподавателям и в деканаты,
для которых расписание изменилось.
5. Должно быть создано веб-представление для всех расписаний в стандартной
форме:
1.)представление для преподавателей
2.)представление для студентов (Факультет-> Курс->Группа)
3.)представление для аудиторий
2.2 Требования к подсистеме ввода
1. Простота и удобство ввода расписания – ввод расписания должен быть привычным
для сотрудников бюро расписаний, т.е. пользователь должен вводить минимальную
информацию, не должно быть ничего лишнего.
11
2. Предотвращение конфликтов – пользователь должен иметь возможность
просмотреть и выбрать незанятые аудитории и незанятых преподавателей в
определенное время. Это позволит избежать конфликтов.
3. Контроль явных ошибок в составлении расписания – система должна быстро
обнаруживать ошибки такого рода:
•
хотели изменить аудиторию для проведения занятия, а она уже занята, для
пользователя система должна выдать предупреждение о конфликте
•
хотели поставить группе предмет, а в это время преподаватель уже занят
•
в аудитории не хватает мест для данной группы
•
хотели преподавателю поставить занятие в какой-либо группе, а группа уже
занята в это время
•
и другие подобные ошибки (см. п. 4.3.)
2.3 Требования к интерфейсной части подсистемы ввода
Особые требования к интерфейсной части касаются только подсистемы «Ввод
данных».
Представление данных для ввода расписания и изменений не должен сильно
отличаться от привычного представления. Для преподавателя привычно видеть
расписание на бумажной картонке, где в левой колонке обозначены дни недели, а в
верхней – время лекций, практик и лабораторных занятий. На пересечение этих колонок
преподаватель привык видеть номер группы, у которой он должен провести занятие и
через косую черту номер аудитории, где занятие должно пройти. Т.е. необходимо сделать
такой же вид расписания, только в электронном виде.
Форма должна содержать три вкладки – «Преподаватель», «Аудитория», «Группа».
1.)Если пользователь выбирает вкладку «Преподаватель», то на форме в левой части он
видит список преподавателей университета.
Пользователь может просмотреть как всех преподавателей сразу, так и
преподавателей отдельного факультета. Далее пользователь должен выбрать нужного
преподавателя.
Когда преподаватель выбран, в правой части формы мы видим его расписание на
неделю в виде таблицы – привычной формы расписания для преподавателей.
При выборе одной из ячеек появляется окно, где можно выбрать предмет, тип
пары, факультет, группу, корпус и аудиторию. Если выбранная ячейка была пуста, то
12
пользователь может ввести в нее расписание, а если ячейка была заполнена, то
пользователь может изменить информацию или очистить ячейку.
2.)Если пользователь выбирает вкладку «Студент», то на форме в левой части он видит
список групп университета.
Пользователь может просмотреть как все группы сразу, так и группы отдельного
факультета. Далее пользователь должен выбрать нужную группу.
Когда группа выбрана, в правой части формы мы видим расписание для данной
группы на неделю в виде таблицы – привычной формы расписания для студентов:
При нажатии выборе одной из ячеек появляется окно, где можно выбрать предмет,
тип пары, преподавателя, корпус и аудиторию. Если выбранная ячейка была пуста, то
пользователь может ввести в нее расписание, а если ячейка была заполнена, то
пользователь может изменить информацию или очистить ячейку.
3.)Если пользователь выбирает вкладку «Аудитория», то на форме в левой части он видит
список аудиторий главного корпуса.
Пользователь выбирает нужный корпус и среди аудиторий этого корпуса – нужную
аудиторию. Далее пользователь должен выбрать нужную аудиторию.
Когда аудитория выбрана, в правой части формы мы видим расписание для данной
аудитории на неделю в виде таблицы.
При нажатии выборе одной из ячеек появляется окно, где можно выбрать предмет,
тип пары, преподавателя, факультет и группу. Если выбранная ячейка была пуста, то
пользователь может ввести в нее расписание, а если ячейка была заполнена, то
пользователь может изменить информацию или очистить ячейку.
Как мы видим, такой вид представления данных для ввода является наиболее
разумным и удобным. Также легко выбрать любой разрез. Фактически интерфейсная
часть должна быть минимум нагружена лишними символами, знаками, информацией.
2.4 Дополнительные требования к системе «Расписание»
•
Информационный обмен между компонентами системы должен осуществляться
базовыми средствами корпоративной компьютерной сети.
•
Рабочие места всех должностных лиц, охватываемых системой, должны иметь
постоянное Ethernet – подключение к локальной сети.
•
Персонал, тем или иным образом работающий с системой «Расписание» можно
разделить на следующие группы:
13
1) конечные пользователи — сотрудники бюро расписаний, которые занимаются
составлением расписания, внесением изменений и др.;
Сотрудники бюро расписания должны уметь пользоваться стандартными
офисными программами и специфическими приемами работы на своем АРМ,
владеть клавиатурой компьютера.
2) специалисты по программному обеспечению и администрированию системы;
Специалисты по программному обеспечению и администрированию системы
должны иметь профессиональное образование и опыт работы с сетевыми
операционными системами, реляционными и документальными СУБД.
3) специалисты по техническому обслуживанию средств вычислительной техники.
Специалисты по техническому обслуживанию средств вычислительной техники
должны иметь соответствующее техническое образование и опыт работы.
•
Система «Расписание» должна быть обеспечена комплексом мер по защите
информации от несанкционированного доступа
14
3 Выбор инструментов, технологии
3.1 Выбор средства разработки подсистемы ввода
Так как подсистема распространения расписания реализовывалась на Lotus Notes
Domino, при выборе средства разработки рассматривалось два варианта: Borland Delphi7 и
Lotus Notes/Domino. Исследовалась возможность реализации интерфейсов в Lotus
Notes/Domino, и было выявлено, что это проблематично, к тому же скорость выборок
данных в Lotus Notes Domino недостаточна для комфортной работы пользователя.
Поэтому по согласованию с заказчиком работы и руководителем дипломной работы в
качестве средства разработки была выбрана интегрированная среда разработки Borland
Delphi7.
Delphi – одна из самых мощных систем, позволяющих на самом современном уровне
создавать как отдельные прикладные программы Windows, так и разветвленные
комплексы, предназначенные для работы в корпоративных сетях и в Интернет. Это
мощная система визуального объектно-ориентированного программирования,
позволяющая решать множество задач, в частности:
•
Создавать законченные приложения для Windows самой различной
направленности, от чисто вычислительных и логических, до графических и
мультимедиа.
•
Быстро создавать профессионально выглядящий оконный интерфейс для любых
приложений, написанных на любом языке; интерфейс удовлетворяет всем
требованиям Windows и автоматически настраивается на ту систему, которая
установлена на компьютере пользователя, поскольку использует многие функции,
процедуры, библиотеки Windows.
•
Создавать мощные системы работы с локальными и удаленными базами данных
любых типов
•
Создавать приложения, основанные на различных технологиях
•
Создавать приложения, которые управляют другими приложениями, в частности,
такими программами MS Office, как Word, Excel и др.
•
И многое другое, включая создание отчетов, справочных систем, библиотек DLL,
компонентов ActiveX и др.
Delphi основана на визуальном программировании, которое позволяет свести
проектирование пользовательского интерфейса к простым и наглядным процедурам. В
библиотеки визуальных компонентов включено множество типов компонентов.
15
«Компоненты библиотек Delphi и типы других объектов оформляются в виде классов.
Классы – это типы, определяемые пользователем. В них описываются свойства объекта,
его методы и события, на которые он может реагировать.»[1]
«Язык программирования Object Pascal, который используется в Delphi,
предусматривает только инструментарий создания классов, а сами классы создаются
разработчиком.»[2]
3.2 Выбор СУБД
3.2.1 Использование ODBC-драйвера
В данной работе для связи программы-клиента с базой данных используется драйвер
ODBC. Это позволяет данной системе устанавливать связь практически с любыми базами
данных, например, с базами данных СУБД Oracle, которая в данный момент используется
в ТГУ. Для этого нужно только настроить ODBC – соединение, и программа будет
работать не только с базой данных, созданной в MS SQL Server, но и с другими базами
данных.
К сожалению, данная подсистема не сможет работать с базами данных MySQL, так как
MySQL не поддерживает сложных запросов, которых в данной работе избежать не
удалось.
3.2.2 MS SQL Server 2000
При выборе реляционной СУБД основным условием была скорость обработки
транзакций. Под это условие подходят СУБД Oracle и MS SQL Server 2000. Из этих двух
систем была выбрана система MS SQL Server 2000, потому что она более простая в
установке и эксплуатации по сравнению с СУБД Oracle и менее требовательная к
аппаратному обеспечению.
MS SQL Server 2000: это многокомпонентная реляционная система управления базами
данных, которая использует язык SQL для пересылки сообщений между компьютером
клиента и компьютером, на котором работает SQL Server 2000. Согласно источнику [3]
«Язык SQL является пока первым и единственным стандартным языком работы с базами
данных, который получил достаточно широкое распространение».
Реляционная СУБД состоит из механизма баз данных, соответственно баз данных и
приложений, необходимых для управления данными и компонентами реляционной СУБД.
Реляционная СУБД организует данные в виде связанных строк и столбцов, составляющих
базу данных. Реляционная СУБД отвечает за поддержку структуры базы данных и решает
следующие задачи:
•
поддерживает связи между данными в базе
•
гарантирует корректное хранение данных и выполнение правил,
регламентирующих связи между ними
16
•
восстанавливает данные после аварии системы, переводя их в согласованное
состояние, зафиксированное до сбоя
Необходимо выделить два инструмента с графическим интерфейсом:
1. Enterprise Manager – основной инструмент администрирования
«MS SQL Server 2000, поддерживающий пользовательский интерфейс и
позволяющий решать ряд задач:
•
Создавать и администрировать любые базы данных, объекты,
идентификаторы пользователей, учетные имена и права доступа к
SQL Server на каждом из зарегистрированных серверов
•
Регистрировать отдельные серверы в группе
•
Настраивать любые параметры SQL Server для всех
зарегистрированных серверов
•
Определять и исполнять все административные задачи SQL Server на
каждом зарегистрированном сервере
•
Интерактивно конструировать и тестировать операторы SQL, пакеты
и сценарии, вызывая SQL Query Analyzer» [4]
2. SQL Query Analyzer – это инструмент с графическим интерфейсом,
предназначенный для решения множества различных задач:
•
Создания запросов и сценариев SQL, а также их исполнения
•
Создания часто используемых объектов баз данных в стандартных
сценариях
•
Копирования существующих объектов баз данных
•
Исполнения хранимых процедур без задания их параметров
•
Отладки хранимых процедур
•
Отладки запросов, имеющих проблемы с производительностью
•
Поиска объектов в базах данных, а также просмотра и работы с
объектами
•
Добавления, обновления и удаления строк в таблице
17
4 Реализация подсистемы ввода
4.1 Схема базы данных
С учетом требований была разработана схема базы данных.
4.1.1 Схема
Схема базы данных включающая в себя таблицы (с указанием первичных [PK] и
внешних ключей [FK], список столбцов таблицы дается после схемы) и связи
(пронумерованные, расшифровка дается после схемы) между таблицами представлена
рисунке 2.
18
Рисунок 2 – Схема базы данных
4.1.2 Список отношений с указанием атрибутов
Расписание: для хранения одной ячейки расписания (одного занятия)
1. Id_расписание(PK) – задает первичный ключ таблицы «Расписание»1
2. Id_преподавание(FK) – задает внешний ключ, т.е. первичный ключ таблицы
«Преподавание»2
1
Постфикс «(РК)» указывает на то, что данный столбец является первичным ключом таблицы.
2
Постфикс «(FK)» означает, что данный столбец является внешним ключом, а таблица где значение
данного столбца является первичным ключом, указывается до префикса.
19
3. Id_группа(FK)
4. Id_время(FK)
5. Id_расположение(FK)
6. Id_предмет(FK)
7. Изменена – флаг изменения показывает, изменилась ли строка после
последней рассылки расписания (для агент-программы). После рассылки
агент-программа будет каждый раз его сбрасывать.
Время: для разбиения времени на пары
1. Id_время(PK)
2. Id_день недели(FK)
3. Id_пара(FK)
Пара: Данные о парах
1. Id_пара(PK)
2. Номер_пары – условно пары пронумерованы так: 1 - 8.45-10.20, 2 – 10.3512.10, …, 4 – 14.45 – 16.20, …, 7 – 20.15 – 21.50.
3. Начало_пары – Время начала пары
4. Конец_пары – Время окончания пары
День недели: Справочник дней недели
1. Id_деньнедели (PK)
2. Название
Аудитория: аудитория в Университете
1. Id_аудитория(PK)
2. Номер – номер аудитории, где проходит занятие
3. Вместимость – вместимость аудитории, т.е. число, которое показывает,
сколько человек одновременно может находиться в данной аудитории
Корпус: справочник корпусов
1. Id_корпус(PK)
2. Номер - номер корпуса, где проходит занятие
20
Расположение:
1. Id_расположение(PK)
2. Id_корпус(FK)
3. Id_аудитория(FK)
Преподаватель: данные о преподавателе
1. Id_преподаватель(PK)
2. Фамилия – фамилия преподавателя
3. Имя – имя преподавателя
4. Отчество – отчество преподавателя
5. Звание – звание преподавателя
6. Должность – должность преподавателя
7. Почта – электронный адрес преподавателя, куда будет отсылаться
обновленное расписание
8. id_деканат(FK)
Преподавание: таблица введена для установления связи М:М между таблицами
Преподаватель и Предметы
1. Id_преподавание(PK)
2. Id_преподаватель(FK)
3. Id_ предмет(FK)
4. Id_типпары(FK)
Предмет: предметы, которые преподают в Университете
1. Id_предмет(PK)
2. Название – название предмета
Группа: группа студентов
1. Id_группа(PK)
2. Номер – номер группы
21
3. Почта_старосты – электронный адрес старосты для рассылки расписания
4. Количествочеловек – количество человек в группе
5. id_деканат(FK)
Деканат: сведения о деканатах
1. Id_деканат(PK)
2. Факультет – название факультета
3. Почта – электронный адрес деканата для рассылки расписания в деканат
4. Декан_ФИО – фамилия, имя, отчество декана
Типпары: справочник для хранения типов пар – лекция, практика, лаборатория
1. Id_типпары(PK)
2. Название – название типа пары
Изменения: содержит флаг, показывающий наличие изменений в базе данных,
служит для экономии времени на обнаружение изменений подсистемой распространения
расписания.
1. Изменено
4.1.3 Перечень связей
1. «Одно и то же время много раз встречается в расписании»: Время Расписание, связь типа 1:М (один ко многим)
2. «Одна и та же аудитория встречается много раз в расписании»: Аудитория Расписание, связь типа 1:М
3. «Один и тот же преподаватель много раз встречается в расписании»:
Преподаватель - Расписание, связь типа 1:М
4. «В одном деканате работает
Преподаватель, связь типа 1:М
много
5. «Преподаватель преподает несколько
Преподавание, связь типа 1:М
6. «Предметы преподаются разными
Преподавание, связь типа 1:М
22
преподавателей»:
предметов»,
Деканат
–
Преподаватель
–
преподавателями»,
Предмет
–
7. «Одна и та же группа встречается много раз в расписании (имеет много
занятий)», Группа - Расписание, связь типа 1:М
8. «Один и тот же предмет много раз встречается в расписании», Предмет –
Расписание, связь типа 1:M
9. «Один факультет состоит из нескольких групп», Деканат – Группа, связь
типа 1:М
10. «Один и тот же тип пары встречается во многих предметах», Типпары –
Предмет, связь типа 1:M
4.2 Интерфейс подсистемы ввода
Работа с программой возможна в трех срезах – Преподаватель, Студент и Аудитория.
Здесь используется технология закладок, которая обеспечивает мгновенный доступ к
различным представлениям расписания.
1. Преподаватель – клик на вкладку Преподаватель
Рисунок 3 – Вкладка Преподаватель
23
В левой части окна отображается список преподавателей университета. Можно
воспользоваться фильтрами по факультетам или фильтрам по фамилиям для того,
чтобы найти нужного преподавателя. После того, как преподаватель выбран, в
правой части окна видим расписание выбранного преподавателя в привычном виде.
Нужно выбрать ячейку расписания, в которую нужно добавить/изменить/удалить
расписание.
Рисунок 4 – Окно редактирования ячейки расписания вкладки Преподаватель
Появляется окно, в котором можно добавить, изменить и удалить ячейку
информации. Для этого в нижней части окна нужно выбрать предмет, тип пары,
факультет, группу, корпус и аудиторию, потом клик на кнопку со стрелкой или
нажать Alt+I.
Чтобы убрать из списка уже занятые в это время аудитории и избежать возможного
конфликта, необходимо выставить флаг «Скрыть занятые аудитории», в этом
случае при выборе аудитории можно увидеть только незанятые аудитории в
выбранном корпусе.
Если необходимо удалить содержание ячейки, но нужно выбрать в верхней части
окна ячейку с информацией, которую нужно удалить и нажать кнопку с крестиком
или Alt+D.
После внесения всех изменений, нужно закрыть это окно и в главном окне появится
вся «новая» информация.
2. Студент – клик на вкладку Студент
24
Рисунок 5 – Вкладка Студент
В левой части окна видим список групп университета. Можно воспользоваться
фильтром по факультетам для того, чтобы найти нужную группу. После того, как
группа выбрана, в правой части окна видим расписание для выбранной группы в
привычном виде. Клик на ячейку расписания, в которую нужно
добавить/изменить/удалить расписание.
25
Рисунок 6 – Окно редактирования ячейки расписания вкладки Студент
Появляется окно, в котором можно добавить, изменить и удалить ячейку
информации. Для этого в нижней части окна нужно выбрать предмет, тип пары,
преподавателя (можно отфильтровать по факультету, где он работает или по
фамилии), корпус и аудиторию, потом клик на кнопку со стрелкой или нажать
Alt+I.
Чтобы убрать из списка уже занятые в это время аудитории и избежать возможного
конфликта, необходимо выставить флаг «Скрыть занятые аудитории», в этом
случае при выборе аудитории можно увидеть только незанятые аудитории в
выбранном корпусе.
Чтобы убрать из списка уже занятых в это время преподавателей и избежать
возможного конфликта, необходимо выставить флаг «Скрыть занятых
преподавателей», в этом случае при выборе преподавателя можно увидеть только
незанятых преподавателей.
При этом ячейка в верхней части заполнится выбранной информацией. Если группа
разбита на подгруппы и у каждой свое занятие, то нужно повторить операцию
добавления.
Если необходимо удалить содержание ячейки, но нужно выбрать в верхней части
окна ячейку с информацией, которую нужно удалить и нажать кнопку с крестиком
или Alt+D.
26
После внесения всех изменений, нужно закрыть это окно и в главном окне появится
вся «новая» информация.
3. Аудитория – клик на вкладку Аудитория.
Рисунок 7 – Вкладка Аудитория
В левой части окна видим список аудиторий главного корпуса. Чтобы найти
нужную аудиторию, надо выбрать корпус. Можно воспользоваться фильтром по
аудиториям, чтобы найти нужную аудиторию. После того, как аудитория выбрана,
в правой части окна видим расписание для этой аудитории. Клик на ячейку
расписания, в которую нужно добавить/изменить/удалить расписание.
27
Рисунок 8 – Окно редактирования ячейки расписания вкладки Аудитория
Появляется окно, в котором можно добавить, изменить и удалить ячейку
информации. Для этого необходимо в нижней части окна выбрать предмет, тип
пары, преподавателя (можно отфильтровать по факультету, где он работает или по
фамилии), факультет, группу, потом клик на кнопку со стрелкой или нажать Alt+I.
Чтобы убрать из списка уже занятых в это время преподавателей и избежать
возможного конфликта, необходимо выставить флаг «Скрыть занятых
преподавателей», в этом случае при выборе преподавателя можно увидеть только
незанятых преподавателей.
Если нужно добавить в это же время для того же предмета и преподавателя еще
одну группу нужно повторить операцию добавления.
Если необходимо удалить содержание ячейки, но нужно выбрать в верхней части
окна ячейку с информацией, которую нужно удалить и нажать кнопку с крестиком
или Alt+D.
После внесения всех изменений, нужно закрыть это окно и в главном окне появится
вся «новая» информация.
После внесения серии изменений, пользователь должен выбрать меню
«Расписание» кнопка «Разослать» или нажать Ctrl+Alt+S. После этого выставится флаг в
базе данных о том, что расписание изменилось.
28
Пользователь может также выбрать меню «Помощь», после чего отобразится файл
с руководством пользователя.
4.3 Устранение конфликтов
Одним из главных требований к подсистеме ввода было устранение конфликтов.
Для того чтобы избежать конфликтов, таких, как поставить в одну аудиторию несколько
занятий или одному преподавателю несколько разных аудиторий в одно время, в данной
программе предусмотрен механизм выбора незанятых аудиторий и преподавателей.
Для этого при выборе преподавателя/аудитории в окне редактирования ячейки
расписания необходимо поставить «галочку» «Скрыть занятых преподавателей»/«Скрыть
занятые аудитории», и тогда в списке преподавателей/аудиторий останутся только
свободные в данное время преподаватели/аудитории.
Но если все-таки пользователь не отсечет конфликтную ситуацию и выберет
занятого преподавателя/аудиторию, то получит сообщение о конфликте.
Механизма выбора незанятых групп не предусмотрен, т.к. группа может быть
разбита на подгруппы и тогда пользователь не сможет одной группы поставить несколько
предметов.
Существует несколько типов конфликтов:
1. Одному преподавателю пытаются поставить две пары в одно время.
Данный конфликт возможен, когда идет работа с вкладкой Студенты или
Аудитория. Преподавателю через одну из этих вкладок пытаются поставить
занятие, и пользователь не видит, что на вкладке Преподаватель у этого
преподавателя в это время уже стоит занятие у другой группы.
В этом случае пользователь видит ошибку, смотри рисунок 9:
Рисунок 9 – Конфликт преподавателя
2. Одной группе пытаются поставить две пары одновременно.
Данный конфликт возможен, когда идет работа с вкладками Преподаватель и
Аудитория. У группы (если посмотреть на вкладку Студент) уже стоит занятие, а
через другие вкладки группе пытаются поставить другие занятия, т.к. пользователь,
выбирая данную группу, не видит, занята она или нет.
29
В этом случае пользователь видит ошибку, смотри рисунок 10:
Рисунок 10 – Конфликт групп
3. В одну аудиторию ставят два факультета в одно время.
Данный конфликт возможен, когда идет работа с вкладками Преподаватель и
Студент. В аудитории через одну из этих вкладок пытаются поставить занятие, и
пользователь не видит, что на вкладке Аудитория у этой аудитории в это время уже
стоит занятие у другой группы с другим преподавателем.
В этом случае пользователь видит ошибку, смотри рисунок 11:
Рисунок 11 – Конфликт аудиторий
4. Размер аудитории не соответствует размеру группы.
Этот конфликт возникает, когда пользователь пытается разместить в аудиторию
группу большего размера, чем количество мест в этой аудитории.
В этом случае пользователь видит ошибку, смотри рисунок 12:
Рисунок 12 – Конфликт размеров
Если пользователь согласен с конфликтом, необходимо нажать «Отмена» и
выбрать новую аудиторию. Если пользователь все-таки хочет поместить занятие в
данную аудиторию, то нужно нажать «ОК».
5. Предупреждение о том, что содержание ячейки будет удалено. Пользователь видит
данное предупреждение (смотри рисунок 13) в том случае, когда он пытается
изменить содержимое ячейки. Если он нажимает кнопку ОК, то содержимое ячейки
30
изменится, если он нажмет Отмена, то отменит свои действия по изменению
ячейки.
Рисунок 13 – Предупреждение об удалении элемента расписания
31
Заключение
В ходе дипломной работы была глубоко изучена проблема возможной степени
автоматизации работы бюро расписаний. По согласованию с заказчиком и руководителем
дипломной работы был выбран инструментарий для реализации информационной
системы и технологии его применения.
Конечным результатом дипломной работы стало построение информационной
системы, соответствующей всем требованиям технического задания и готовой к опытной
эксплуатации. Подсистема ввода и хранения расписания позволяет вводить расписание в
базу данных с помощью удобного интерфейса, изменять и удалять информацию, а также
предотвращает явные конфликты.
Несмотря на то, что данная работа полностью функционально завершена с точки
зрения предъявленных требований, необходимо сказать, что данная работа является
основой для дальнейших улучшений интерфейсов и увеличения функциональности.
На стадии опытной эксплуатации должны быть изучены дополнительные
требования пользователей и мнения об удобстве эксплуатации подсистемы для
дальнейших доработок программы.
32
Список использованных источников
1. Архангельский А.Я. Программирование в Delphi 6.- М.: ЗАО «Издательство
БИНОМ», 2001.- 1120с.
2. Архангельский А.Я. Delphi 6. Справочное пособие.- М.: ЗАО «Издательство
БИНОМ», 2001.- 1024с.
3. Бегг Каролин, Страчан Анна, Конноли Томас. Базы данных: проектирование,
реализация и сопровождение. Теория и практика, 2-е изд. Пер. с англ.: Уч.пос.М.:Издательский дом «Вильямс», 2000.- 1120с., ил. Парал.тит.англ.
4. Microsoft Corporation. Проектирование и реализация баз данных Microsoft SQL
Server 2000. Учебный курс MCSE/Пер. с англ. – М.: Издательско-торговый дом
«Русская Редакция», 2001. – 704 стр.
33
Приложение А
Руководство программиста
Для работы подсистемы ввода расписания необходимо в первую очередь
установить SQL Server 2000 и разместить в нем базу данных Schedule. База данных
поставляется в виде бекап файла SQL Server. Можно использовать и другую СУБД,
которая поддерживает сложные sql-запросы.
После установки базы данных необходимо создать ODBC соединение. Имя
соединение может быть любым, оно настраивается в подсистеме ввода при первом
запуске системы, но по умолчанию рекомендуется называть его Schedule.
После запуска системы в меню опции можно определить имя пользователя и
пароль доступа к данным, если это необходимо.
Основными операциями при работе системы являются обновление данных
(UPDATE), добавление данных (INSERT), удаление данных (DELETE).
Процедуры, используемые для среза Преподаватель, для других срезов существуют
аналогичные процедуры.
При обновлении и добавлении данных важное значение имеет процедура
GetConflict . Параметрами являются время для локализации ячейки, и содержимое ячейки
которое планируется внести. На выходе процедура выдает True, если все проверки
пройдены успешно или False, если обнаружен хотя бы один конфликт..
procedure TForm1.GetTeachersCell(F:String; I: String; O:String; timepair:Integer;
Dayofweek:String);
Входные параметры:
F,I,O : Фамилия, Имя , Отчество преподавателя соответственно.
timepair: Номер пары.
DayOfWeek: День недели.
Процедура исполняется при клике на ячейку расписания конкретного преподавателя. По
Времени и дню недели и ФИО преподавателя выбирается содержимое ячейки и
размещается в компоненты для последующего редактирования.
function GetConflictPr(IdAudPr:Integer;IdGroupPr:Integer):boolean;
Входные параметры: IdAudPr: идентификатор аудитории
IdGroupPr идентификатор группы
34
Возвращаемое значение: При отсутствии конфликтов возвращается True иначе
False
Функция исполняется перед вставкой и обновлением значений. При наличии конфликтов
выдает предупреждения о них с расшифровкой.
procedure TryToEnableTeButton();
Процедура используется для блокирования и разблокирования кнопки вставки значений.
В ней проверяется выделенность всех необходимых для вставки данных, при
недостаточности кнопка блокируется. При выделении всех необходимых данных кнопка
активирутся.
procedure EnablePasiblePairTypesPr();
Процедуры выполняется при выборе названия предмета. Она активирует или
деактивирует возможный тип пары в зависимости от наличия связи текущего
преподавателя с типами пар.
procedure FillTEacherSchedule();
Исполняется при выборе преподавателя. Выбирает расписание преподавателя из базы
данных и заполняет все ячейки на форме.
procedure FilterAudsPr();
Фильтрует аудиторий. Используется для поиска аудитории в большем списке. При вводе
начала номера аудитории сокращает список до всех совпадающих по началам.
35
Приложение Б
Руководство пользователя
1. Запустить файл Schedule.exe путем двойного щелчка или кнопки Enter.
2. В меню «Опции» выбрать «База данных». Появится диалог «База данных». В строке
«Имя ODBC» ввести имя ODBC-соединения, которое должно быть предварительно
настроено на базу данных с расписанием. При необходимости ввести Имя и Пароль
(обратитесь к администратору).
3. Работа с вкладкой «Преподаватель»:
Для того чтобы ввести новую ячейку расписания для преподавателя:
1) Выбрать преподавателя.
Выберите преподавателя из списка слева щелчком левой кнопки мыши.
Передвигаться по списку преподавателей можно с помощью кнопок «вверхвниз», либо сразу щелкая левой кнопкой мыши на нужного преподавателя, при
этом фамилия, имя и отчество преподавателя будет выделяться синим фоном. Если
36
вы не можете найти нужного вам преподавателя, воспользуйтесь прокруткой листа
справа, возможно, список преподавателей не вмещается в лист.
Чтобы облегчить поиск преподавателя, нужно выбрать факультет, где работает
преподаватель. Нажмите левой кнопкой мыши на стрелочку в конце строки
«Факультет преподавателя». В выпадающем списке вы увидите все факультеты
университета. Если вы не можете найти нужный вам факультет, воспользуйтесь
прокруткой листа справа, возможно, список факультетов университета не
вмещается в лист. Передвигаться по факультетам можно с помощью кнопок
«вверх-вниз» либо двигая мышь вверх или вниз, при этом факультет будет
выделяться синим фоном. Выберите нужный факультет, щелкнув по нему левой
кнопкой мыши.
Второй способ облегчить поиск преподавателя: начните набирать в строке
«Поиск преподавателя» первые буквы фамилии преподавателя. По мере ввода
фамилии список будет сокращаться.
После того, как вы выбрали фамилию преподавателя, в правой части окна
появится расписание выбранного вами преподавателя.
2) Выбрать нужную ячейку
Щелкните левой кнопкой мыши на пересечении нужного времени и дня недели.
Появится окно, где в верхней части окна показывается пустая ячейка, необходимо в
нижней части окна выбрать предмет, тип пары, факультет, группу, корпус и
аудиторию, потом клик на кнопку со стрелкой или нажать Alt+I. Как выбрать
предмет, тип пары и др. см. ниже.
При этом ячейка в верхней части заполнится выбранной информацией. Если нужно
добавить в это же время преподавателю еще одну группу, надо повторить
операцию добавления.
Когда все будет введено в данную ячейку расписания, нужно закрыть это окно
и в главном окне появится вся информация в нужной ячейке.
37
3) Выбрать предмет
Нажмите левой кнопкой мыши на стрелочку в конце строки «Предмет». В
выпадающем списке вы увидите занятия, которые ведет выбранный вами
преподаватель.
Передвигаться по предметам можно с помощью кнопок «вверх-вниз» либо
двигая мышь вверх или вниз, при этом предмет будет выделяться синим фоном.
Если список занятий, который ведет выбранный вами преподаватель, не вмещается
в лист, воспользуйтесь прокруткой листа справа. Выберите нужный предмет,
щелкнув по нему левой кнопкой мыши.
4) Выбрать тип пары
После того, как вы выбрали предмет, необходимо выбрать тип пары, т.е.
лекция, практика или лаборатория. Выберите тип пары, щелкнув по ней левой
кнопкой мыши. Слева от выбранного типа пары в кружочке появится точка. Если
преподаватель не ведет какой-нибудь тип пары, например, лаборатории, то этот тип
пары будет написан серым цветом, и вы не сможете его выделить.
5) Выбрать факультет и группу
Чтобы выбрать группу, в которой преподаватель будет вести занятие,
необходимо сначала выбрать факультет. Нажмите левой кнопкой мыши на
стрелочку в конце строки «Факультет». В выпадающем списке вы увидите все
факультеты университета. Если вы не можете найти нужный вам факультет,
воспользуйтесь прокруткой листа справа, возможно, список факультетов
38
университета не вмещается в лист. Передвигаться по факультетам можно с
помощью кнопок «вверх-вниз» либо двигая мышь вверх или вниз, при этом
факультет будет выделяться синим фоном. Выберите нужный факультет, щелкнув
по нему левой кнопкой мыши.
После того, как вы выбрали факультет, ниже, в списке «Группы» появятся
группы выбранного вами факультета. Выберите нужную группу щелчком левой
кнопки мыши. Передвигаться по предметам можно с помощью кнопок «вверхвниз», либо сразу нажимая левую кнопку мыши на нужную группу, при этом
группа будет выделяться синим фоном. Если вы не можете найти нужную вам
группу, воспользуйтесь прокруткой листа справа, возможно, список групп не
вмещается в лист.
6) Выбрать корпус и аудиторию для занятия
Нажмите левой кнопкой мыши на стрелочку в конце строки «Корпус». В
выпадающем списке вы увидите номера корпусов университета.
Передвигаться по номерам корпусов можно с помощью кнопок «вверх-вниз»
либо двигая мышь вверх или вниз, при этом номер корпуса будет выделяться
синим фоном. Если вы не можете найти нужный вам корпус, воспользуйтесь
прокруткой листа справа, возможно, список номеров корпусов университета не
вмещается в лист. Выберите нужный корпус, щелкнув по нему левой кнопкой
мыши.
После того, как вы выбрали корпус, ниже, в списке «Аудитории» появятся
аудитории выбранного вами корпуса. Для того чтобы скрыть уже занятые
аудитории, поставьте «галочку» «Скрыть занятые аудитории», нажав на нее левой
кнопкой мыши. Выберите нужную аудиторию щелчком левой кнопки мыши.
Передвигаться по аудиториям можно с помощью кнопок «вверх-вниз», либо сразу
нажимая левую кнопку мыши на нужную аудиторию, при этом номер аудитории
будет выделяться синим фоном. Если вы не можете найти нужную вам аудиторию,
воспользуйтесь прокруткой листа справа, возможно, список аудиторий не
вмещается в лист.
Чтобы облегчить поиск нужной аудитории, начните набирать в строке «Поиск
аудитории» номер аудитории. По мере ввода номера аудитории список будет
сокращаться.
После того, как вы выполните все эти операции, появится кнопка с красной
стрелочкой вверх. Это значит, что все поля заполнены, и можно вводить
сформированное расписание в ячейку. Если кнопка с красной стрелкой не
появилась, проверьте, все ли поля вы выбрали. Теперь необходимо нажать кнопку
со стрелкой или нажать Alt+I и сформированное расписание появится в выбранной
вами ячейке, если не произойдет конфликта расписаний. В ячейке появится
предмет, аудитория (в скобках рядом с аудиторией – корпус) и группа.
Для того чтобы удалить ячейку расписания у преподавателя.
Если преподаватель ведет, например, потоковую лекцию, то в его ячейке
расписания содержится предмет, аудитория (корпус) и несколько групп. Иногда бывает
необходимо удалить одну из групп.
39
Выделить ячейку, выбранную вами для удаления, щелчком левой кнопкой мыши.
Если ячейка выделена, появится окно, где в верхней части окна показывается ячейка,
которую вы выбрали, разбитая на несколько строк. Выберите в верхней части окна ячейку
с информацией, которую нужно удалить и нажмите кнопку с красным крестиком или
Alt+D, она удалится.
Если необходимо удалить всю ячейку с расписанием сразу, нужно, не выделяя ни
одну из ячеек, нажать на кнопку с красным крестиком или Alt+D.
Для того чтобы изменить ячейку расписания у преподавателя
Выделить ячейку, выбранную вами для изменения, щелчком левой кнопкой мыши.
Если ячейка выделена, появится окно, где в верхней части окна показывается ячейка,
которую вы выбрали для изменения. Если преподаватель ведет, к примеру, потоковую
лекцию, то вы увидите выбранную вами ячейку, разбитую на несколько частей. Можно
изменить:
1)Предмет и тип пары
Предмет и тип пары изменяются для всей ячейки полностью, поэтому, ничего не
выделяя, выбираем предмет (см. Выбрать предмет выше) и тип пары (см. Выбрать тип
пары выше).
2)Факультет и группу
Выбрать в левой части окна ячейку с группой, которую вы хотите изменить
щелчком левой кнопки мыши, затем в правой части окошка выбираем факультет и группу
(См. Выбрать факультет и группу выше)
3)Корпус и аудиторию
Корпус и аудитория изменяется для всей ячейки полностью, поэтому, ничего не
выделяя, выбираем корпус и аудиторию (см. Выбрать корпус и аудиторию для занятия
выше).
5. Работа с вкладкой «Студент»:
40
Для того чтобы ввести новую ячейку расписания для студента:
1) Выбрать факультет и группу
В левой части окна нажмите левой кнопкой мыши на стрелочку в конце
строки «Факультет». В выпадающем списке вы увидите все факультеты
университета. Если вы не можете найти нужный вам факультет, воспользуйтесь
прокруткой листа справа, возможно, список факультетов университета не
вмещается в лист. Передвигаться по факультетам можно с помощью кнопок
«вверх-вниз» либо двигая мышь вверх или вниз, при этом факультет будет
выделяться синим фоном. Выберите нужный факультет, щелкнув по нему левой
кнопкой мыши.
После того, как вы выбрали факультет, ниже, в списке «Группы» появятся
группы выбранного вами факультета. Выберите нужную группу щелчком левой
кнопки мыши. Передвигаться по предметам можно с помощью кнопок «вверхвниз», либо сразу нажимая левую кнопку мыши на нужную группу, при этом
группа будет выделяться синим фоном. Если вы не можете найти нужную вам
группу, воспользуйтесь прокруткой листа справа, возможно, список групп не
вмещается в лист.
2) Выбрать нужную ячейку
Щелкните левой кнопкой мыши на пересечении нужного времени и дня
недели. Появится окно, где в верхней части окна показывается пустая ячейка,
необходимо по ней кликнуть, а затем в нижней части окна выбрать предмет, тип
41
пары, преподавателя, корпус и аудиторию, потом клик на кнопку со стрелкой или
нажать Alt+I. Как выбрать предмет, тип пары и др. см. ниже.
При этом ячейка в верхней части заполнится выбранной. Если нужно
разбить группу на подгруппы и каждой из них поставить свое занятие нужно
повторить операцию добавления.
Когда все будет введено в данную ячейку расписания, нужно закрыть это
окно и в главном окне появится вся информация в нужной ячейке.
3)Выбрать преподавателя.
Выберите преподавателя из списка Преподаватель щелчком левой кнопки
мыши. Для того чтобы скрыть уже занятых преподавателей, поставьте «галочку»
«Скрыть занятых преподавателей», нажав на нее левой кнопкой мыши.
Передвигаться по списку преподавателей можно с помощью кнопок «вверхвниз», либо сразу щелкая левой кнопкой мыши на нужного преподавателя, при
этом фамилия, имя и отчество преподавателя будет выделяться синим фоном. Если
вы не можете найти нужного вам преподавателя, воспользуйтесь прокруткой листа
справа, возможно, список преподавателей не вмещается в лист.
Чтобы облегчить поиск преподавателя, нужно выбрать факультет, где
работает преподаватель. Нажмите левой кнопкой мыши на стрелочку в конце
строки «Факультет преподавателя». В выпадающем списке вы увидите все
факультеты университета. Если вы не можете найти нужный вам факультет,
воспользуйтесь прокруткой листа справа, возможно, список факультетов
42
университета не вмещается в лист. Передвигаться по факультетам можно с
помощью кнопок «вверх-вниз» либо двигая мышь вверх или вниз, при этом
факультет будет выделяться синим фоном. Выберите нужный факультет, щелкнув
по нему левой кнопкой мыши.
Второй способ облегчить поиск преподавателя: начните набирать в строке
«Поиск преподавателя» первые буквы фамилии преподавателя. По мере ввода
фамилии список будет сокращаться.
4) Выбрать предмет
Нажмите левой кнопкой мыши на стрелочку в конце строки «Предмет». В
выпадающем списке вы увидите занятия, которые ведет выбранный вами
преподаватель.
Передвигаться по предметам можно с помощью кнопок «вверх-вниз» либо
двигая мышь вверх или вниз, при этом предмет будет выделяться синим фоном.
Если список занятий, который ведет выбранный вами преподаватель, не вмещается
в лист, воспользуйтесь прокруткой листа справа. Выберите нужный предмет,
щелкнув по нему левой кнопкой мыши.
5) Выбрать тип пары
После того, как вы выбрали предмет, необходимо выбрать тип пары, т.е.
лекция, практика или лаборатория. Выберите тип пары, щелкнув по ней левой
кнопкой мыши. Слева от выбранного типа пары в кружочке появится точка. Если
преподаватель не ведет какой-нибудь тип пары, например, лаборатории, то этот
тип пары будет недоступен.
6) Выбрать корпус и аудиторию для занятия
Нажмите левой кнопкой мыши на стрелочку в конце строки «Корпус». В
выпадающем списке вы увидите номера корпусов университета.
Передвигаться по номерам корпусов можно с помощью кнопок «вверхвниз» либо двигая мышь вверх или вниз, при этом номер корпуса будет выделяться
синим фоном. Если вы не можете найти нужный вам корпус, воспользуйтесь
прокруткой листа справа, возможно, список номеров корпусов университета не
вмещается в лист. Выберите нужный корпус, щелкнув по нему левой кнопкой
мыши.
После того, как вы выбрали корпус, ниже, в списке «Аудитории» появятся
аудитории выбранного вами корпуса. Для того чтобы скрыть уже занятые
аудитории, поставьте «галочку» «Скрыть занятые аудитории», нажав на нее левой
кнопкой мыши. Выберите нужную аудиторию щелчком левой кнопки мыши.
Передвигаться по аудиториям можно с помощью кнопок «вверх-вниз», либо сразу
нажимая левую кнопку мыши на нужную аудиторию, при этом номер аудитории
будет выделяться синим фоном. Если вы не можете найти нужную вам аудиторию,
воспользуйтесь прокруткой листа справа, возможно, список аудиторий не
вмещается в лист.
43
Чтобы облегчить поиск нужной аудитории, начните набирать в строке
«Поиск аудитории» номер аудитории. По мере ввода номера аудитории список
будет сокращаться.
После того, как вы выполните все эти операции, появится кнопка с красной
стрелочкой вверх. Это значит, что все поля заполнены, и можно вводить
сформированное расписание в ячейку. Если кнопка с красной стрелкой не
появилась, проверьте, все ли поля вы выбрали. Теперь необходимо нажать кнопку
со стрелкой или нажать Alt+I и сформированное расписание появится в выбранной
вами ячейке, если не произойдет конфликта расписаний. В ячейке появится
предмет, преподаватель и аудитория (в скобках рядом с аудиторией – корпус).
Для того чтобы удалить ячейку расписания у группы.
Выбрать нужную ячейку для удаления (см. Выбрать нужную ячейку)
Если группы разбиты на подгруппы, и у каждой подгруппы в одно время свое
занятие, то в ячейке расписания группы содержится: предмет, преподаватель, аудитория
одной подгруппы и предмет, преподаватель, аудитория другой подгруппы и т.д. Иногда
бывает необходимо удалить расписание только одной из подгрупп.
Для этого нужно выделить ячейку, выбранную вами для удаления, щелчком левой
кнопкой мыши. Если ячейка выделена, появится окно, где в верхней части окна
показывается ячейка, которую вы выбрали, разбитая на несколько строк. Выберите в
верхней части окна ячейку с информацией, которую нужно удалить и нажмите кнопку с
красным крестиком или Alt+D, она удалится.
Если необходимо удалить всю ячейку с расписанием обоих подгрупп, нужно, не
выделяя ни одну из ячеек, нажать на кнопку с красным крестиком или Alt+D.
Для того чтобы изменить ячейку расписания у группы:
Выбрать нужную ячейку для изменения (см. Выбрать нужную ячейку)
Если группы разбиты на подгруппы, и у каждой подгруппы в одно время свое
занятие, то в ячейке расписания группы содержится: предмет, преподаватель, аудитория
одной подгруппы и предмет, преподаватель, аудитория другой подгруппы и т.д. Иногда
бывает необходимо изменить расписание только одной из подгрупп. В этом случае,
выделите щелчком левой кнопки мыши расписание той подгруппы, расписание которой
вы хотите изменить.
Можно изменить:
1)Преподавателя, предмет и тип пары
В нижней части окошка выбираем преподавателя (см. Выбрать преподавателя
выше), предмет (см. Выбрать предмет выше) и тип пары (см. Выбрать тип пары выше).
3)Корпус и аудиторию
В нижней части окошка выбираем корпус и аудиторию (см. Выбрать корпус и
аудиторию для занятия выше).
44
После того, как вы выполните все эти операции, появится кнопка с красной
стрелочкой вверх. Это значит, что все поля заполнены, и можно вводить сформированное
расписание в ячейку. Если кнопка с красной стрелкой не появилась, проверьте, все ли
поля вы выбрали. Теперь необходимо нажать кнопку со стрелкой или нажать Alt+I и
сформированное расписание появится в выбранной вами ячейке, если не произойдет
конфликта расписаний. В ячейке появится предмет, преподаватель и аудитория (в скобках
рядом с аудиторией – корпус).
6. Работа с вкладкой Аудитория
Для того чтобы ввести новую ячейку расписания для аудитории:
1) Выбрать корпус и аудиторию для занятия
В левой части окна нажмите левой кнопкой мыши на стрелочку в конце
строки «Корпус». В выпадающем списке вы увидите номера корпусов
университета.
Передвигаться по номерам корпусов можно с помощью кнопок «вверхвниз» либо двигая мышь вверх или вниз, при этом номер корпуса будет выделяться
синим фоном. Если вы не можете найти нужный вам корпус, воспользуйтесь
прокруткой листа справа, возможно, список номеров корпусов университета не
вмещается в лист. Выберите нужный корпус, щелкнув по нему левой кнопкой
мыши.
После того, как вы выбрали корпус, ниже, в списке «Аудитории» появятся
аудитории выбранного вами корпуса. Выберите нужную аудиторию щелчком левой
кнопки мыши. Передвигаться по аудиториям можно с помощью кнопок «вверх45
вниз», либо сразу нажимая левую кнопку мыши на нужную аудиторию, при этом
номер аудитории будет выделяться синим фоном. Если вы не можете найти
нужную вам аудиторию, воспользуйтесь прокруткой листа справа, возможно,
список аудиторий не вмещается в лист.
Чтобы облегчить поиск нужной аудитории, начните набирать в строке
«Поиск аудитории» номер аудитории. По мере ввода номера аудитории список
будет сокращаться.
2) Выбрать нужную ячейку
Щелкните левой кнопкой мыши на пересечении нужного времени и дня
недели. Появится окно, где в верхней части окна показывается пустая ячейка. В
нижней части окна нужно выбрать преподавателя, предмет, тип пары, факультет и
группу, потом клик на кнопку со стрелкой или нажать Alt+I. Как выбрать предмет,
тип пары и др. см. ниже.
При этом ячейка в верхней части заполнится выбранной информацией. Если
нужно добавить в это же время в данную аудиторию еще одну группу, надо
повторить операцию добавления.
Когда все будет введено в данную ячейку расписания, нужно закрыть это
окно и в главном окне появится вся информация в нужной ячейке.
3) Выбрать преподавателя.
46
Выберите преподавателя из списка Преподаватель щелчком левой кнопки
мыши. Для того чтобы скрыть уже занятых преподавателей, поставьте «галочку»
«Скрыть занятых преподавателей», нажав на нее левой кнопкой мыши.
Передвигаться по списку преподавателей можно с помощью кнопок «вверхвниз», либо сразу щелкая левой кнопкой мыши на нужного преподавателя, при
этом фамилия, имя и отчество преподавателя будет выделена синим фоном. Если
вы не можете найти нужного вам преподавателя, воспользуйтесь прокруткой листа
справа, возможно, список преподавателей не вмещается в лист.
Чтобы облегчить поиск преподавателя, нужно выбрать факультет, где
работает преподаватель. Нажмите левой кнопкой мыши на стрелочку в конце
строки «Факультет преподавателя». В выпадающем списке вы увидите все
факультеты университета. Если вы не можете найти нужный вам факультет,
воспользуйтесь прокруткой листа справа, возможно, список факультетов
университета не вмещается в лист. Передвигаться по факультетам можно с
помощью кнопок «вверх-вниз» либо двигая мышь вверх или вниз, при этом
факультет будет выделяться синим фоном. Выберите нужный факультет, щелкнув
по нему левой кнопкой мыши.
Второй способ облегчить поиск преподавателя: начните набирать в строке
«Поиск преподавателя» первые буквы фамилии преподавателя. По мере ввода
фамилии список будет сокращаться.
4) Выбрать предмет
Нажмите левой кнопкой мыши на стрелочку в конце строки «Предмет». В
выпадающем списке вы увидите занятия, которые ведет выбранный вами
преподаватель.
Передвигаться по предметам можно с помощью кнопок «вверх-вниз» либо
двигая мышь вверх или вниз, при этом предмет будет выделяться синим фоном.
Если список занятий, который ведет выбранный вами преподаватель, не вмещается
в лист, воспользуйтесь прокруткой листа справа. Выберите нужный предмет,
щелкнув по нему левой кнопкой мыши.
5) Выбрать тип пары
После того, как вы выбрали предмет, необходимо выбрать тип пары, т.е.
лекция, практика или лаборатория. Выберите тип пары, щелкнув по ней левой
кнопкой мыши. Слева от выбранного типа пары в кружочке появится точка. Если
преподаватель не ведет какой-нибудь тип пары, например, лаборатории, то этот
тип пары будет заблокирован.
6) Выбрать факультет и группу
В нижней части окна нажмите левой кнопкой мыши на стрелочку в конце строки
«Факультет». В выпадающем списке вы увидите все факультеты университета.
Если вы не можете найти нужный вам факультет, воспользуйтесь прокруткой листа
справа, возможно, список факультетов университета не вмещается в лист.
Передвигаться по факультетам можно с помощью кнопок «вверх-вниз» либо
47
двигая мышь вверх или вниз, при этом факультет будет выделяться синим фоном.
Выберите нужный факультет, щелкнув по нему левой кнопкой мыши.
После того, как вы выбрали факультет, ниже, в списке «Группы» появятся группы
выбранного вами факультета. Выберите нужную группу щелчком левой кнопки
мыши. Передвигаться по предметам можно с помощью кнопок «вверх-вниз», либо
сразу нажимая левую кнопку мыши на нужную группу, при этом группа будет
выделяться синим фоном. Если вы не можете найти нужную вам группу,
воспользуйтесь прокруткой листа справа, возможно, список групп не вмещается в
лист.
Для того чтобы удалить ячейку расписания в аудитории.
Выбрать нужную ячейку для удаления (см. Выбрать нужную ячейку)
Если в выбранной аудитории преподаватель ведет, например, потоковую лекцию,
то в его ячейке расписания содержится предмет, аудитория (корпус) и несколько групп.
Иногда бывает необходимо удалить одну из групп.
Выделить ячейку, выбранную вами для удаления, щелчком левой кнопкой мыши.
Если ячейка выделена, появится окно, где в верхней части окна показывается ячейка,
которую вы выбрали, разбитая на несколько строк. Выберите в верхней части окна ячейку
с информацией, которую нужно удалить и нажмите кнопку с красным крестиком или
Alt+D, она удалится.
Если необходимо удалить всю ячейку с расписанием сразу, нужно, не выделяя ни
одну из ячеек, нажать на кнопку с красным крестиком или Alt+D.
Для того чтобы изменить ячейку расписания в аудитории:
Выбрать нужную ячейку для изменения (см. Выбрать нужную ячейку)
Если преподаватель ведет, к примеру, потоковую лекцию, то вы увидите
выбранную вами ячейку, разбитую на несколько частей. Можно изменить:
1)Преподавателя, предмет и тип пары
В нижней части окошка выбираем преподавателя (см. Выбрать преподавателя выше),
предмет (см. Выбрать предмет выше) и тип пары (см. Выбрать тип пары выше).
2)Факультет и группу
Выбрать в верхней части окна ячейку с группой, которую вы хотите изменить
щелчком левой кнопки мыши, затем в нижней части окошка выбираем факультет и группу
(См. Выбрать факультет и группу выше)
6. Возможные предупреждения и конфликты
1) Предупреждение об удалении ячейки
48
Если вы хотите изменить или удалить всю информацию из ячейки расписания, то
вы увидите предупреждение: «Вся ячейка будет удалена», и, если вам действительно
нужно ее удалить, нажмите кнопку ОК, если нет – Отмена.
Если же вы хотите изменить или удалить только часть информации, то вы увидите
предупреждение: Строка номер <номер изменяемой/удаляемой строки> будет удалена, и,
если вам действительно нужно ее удалить, нажмите кнопку ОК, если нет – Отмена.
2) Конфликты:
Чтобы избежать конфликтов при выборе аудитории, поставьте «галочку»
«Скрыть занятые аудитории», щелкнув по ней левой кнопкой мыши.
Чтобы избежать конфликтов при выборе преподавателя, поставьте «галочку»
«Скрыть занятых преподавателей», щелкнув по ней левой кнопкой мыши.
Несмотря на то, что имеется возможность избежать пользователям конфликты,
они иногда случаются. Существует несколько типов конфликтов:
1. Одному преподавателю пытаются поставить две пары в одно время.
Данный конфликт возможен, когда идет работа с вкладкой Студенты или
Аудитория. Вы пытаетесь преподавателю через одну из этих вкладок поставить
занятие, и не видите, что на вкладке Преподаватель у этого преподавателя в это
время уже стоит занятие у другой группы.
В этом случае, вы видите сообщение о конфликте, который содержит какой
предмет, у какой группы и в какой аудитории данный преподаватель ведет
занятие в это время. Попытайтесь выбрать другого преподавателя для данной
группы или аудитории.
2. Одной группе пытаются поставить две пары одновременно.
Данный конфликт возможен, когда идет работа с вкладками Преподаватель
и Аудитория. У группы (если посмотреть на вкладку Студент) уже стоит
занятие, а через другие вкладки вы пытаетесь группе поставить другие занятия,
т.к. вы, выбирая данную группу, не видите, занята она или нет.
В этом случае вы видите сообщение о конфликте, который содержит,
какой преподаватель, какой предмет и в какой аудитории ведет занятие у
данной группы в это время. Попытайтесь выбрать другую группу для данного
преподавателя или аудитории.
3. В одну аудиторию ставят два факультета в одно время.
Данный конфликт возможен, когда идет работа с вкладками Преподаватель
и Студент. В аудитории через одну из этих вкладок вы пытаетесь поставить
занятие, и не видите, что на вкладке Аудитория у этой аудитории в это время
уже стоит занятие у другой группы с другим преподавателем.
В этом случае вы видите сообщение о конфликте, который содержит, какой
преподаватель, какой предмет и у какой группы ведет занятие в этой аудитории
49
в данное время. Попытайтесь выбрать другую аудиторию для данного
преподавателя или данной группы.
4. Размер аудитории не соответствует размеру группы.
Этот конфликт возникает, когда вы пытается разместить в аудиторию
группу(ы) большего размера, чем количество мест в этой аудитории.
В этом случае нажмете кнопку «Отмена» и попытайтесь найти аудиторию
большего размера. Но, если все-таки вы считаете, что для данного занятия
необходимо использовать именно эту аудиторию, нажмите кнопку «ОК».
50
Приложение В
Список файлов
backup.bac –Бэкап базы данных MS SQL Server
BaseOptions.pas – Модуль для изменения параметров подключения к ODBC
BaseOptions.dfm – Файл формы BaseOptions (для создания ODBC - соединения)
Bitmap1.bmp – Рисунок для кнопки
InputAud.dfm – Форма ввода и изменения ячейки на вкладке Аудитории
InputAud.pas – Модуль, содержащий процедуры и функции по обработке ввода значений в
срезе аудиторий
InputPr.dfm – Форма ввода и изменения ячейки на вкладке Преподаватели
InputPr.pas – Модуль, содержащий процедуры и функции по обработке ввода значений в
срезе преподавателей
InputSt.dfm – Форма ввода и изменения ячейки на вкладке Группы
InputSt.pas – Модуль, содержащий процедуры и функции по обработке ввода значений в
срезе групп
Options.ini – Параметры подключения к ODBC
Project1.res – Файл ресурсов.
Schedule.dpr – Файл проекта. Текстовый файл, используется для хранения информации о
формах и модулях. В нем содержатся операторы инициализации и запуска программы на
выполнение.
Schedule.exe – Исполняемый файл приложения.
Schedule.res – Файл ресурсов.
Unit1.dcu – Объектный файл модуля.
Unit1.ddp – Файл диаграмм.
Unit1.dfm – Файл формы Unit1.
Unit1.pas – Текстовый файл модуля.
51
Приложение Г
Техническое задание
Томский государственный университет
Информационная система
«Расписание»
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
На 15 листах
52
1. ОБЩИЕ СВЕДЕНИЯ
1. Полное наименование системы и ее условное обозначение. Информационная
система для хранения и распространения расписания ТГУ «Расписание».
2. Заказчик — Томский государственный университет. Разработчики — Студенты
ФИнф Журавлева Наталия Андреевна, Журавлев Владимир Владимирович.
3. Плановые сроки начала и окончания работ по созданию системы.
Декабрь 2004 г. — Июнь 2004 г.
4. Сведения об источнике и порядке финансирования работ.
Работа не финансируется. Выполняется в порядке обучения.
2. НАЗНАЧЕНИЕ И ЦЕЛИ СОЗДАНИЯ СИСТЕМЫ
Назначение системы.
Информационная система «Расписание» предназначена
процессов, касающихся составления расписания. То есть:
для
автоматизации
1.)
Для ввода самого расписания и внесения в него изменений по мере
необходимости
2.)
Для отображения расписания посредством веб-сайта,
3.)
Для оперативного обнаружения изменений в расписании
4.)
Для автоматической рассылки
преподавателям и в деканаты
всех
изменений
в
расписании
Цели создания системы:
со стороны бюро расписаний: повышение четкости и оперативности работы
должностных лиц бюро расписаний за счет улучшения их информационной поддержки;
со стороны целевой аудитории: унификация и упрощение доступа к информации
бюро расписаний, оперативное получение данных о каких-либо изменениях;
со стороны вышестоящих органов: улучшение качества сведений;
3. ХАРАКТЕРИСТИКА ОБЪЕКТА ИНФОРМАТИЗАЦИИ
Объектом информатизации является деятельность бюро расписаний. В настоящее
время невозможно полностью автоматизировать деятельность бюро расписаний.
Причиной этому является невозможность компьютера учитывать так называемый
«человеческий фактор». Вообще, при составлении расписания возникают 2 основные
проблемы:
53
1.)Удобство, т.е. необходимо составить расписание так, чтобы это было удобно и
для студентов, и для преподавателей.
2.) Нехватка аудиторий, т.е. аудиторий может просто не хватать или аудитория
может ремонтироваться и др.
Эти проблемы компьютер при всем желании не учтет, поэтому само расписание
будет составляться вручную. А уже ввод расписания, ввод изменений расписания,
рассылка изменений расписания и отображение расписания посредством веб-сайта
будет выполнять программа, что значительно облегчит работу сотрудников бюро
расписаний.
4. ТРЕБОВАНИЯ К СИСТЕМЕ
4.1. Требования к системе в целом
Система должна быть простой в использовании, должна иметь привычный для
пользователей вид.
Агент-программа (которая следит за изменениями расписания) должна каждые 5 минут
«смотреть» не изменилось ли расписание, в случае изменения расписания она должна
послать по почте вид нового расписания преподавателям и в деканаты, для которых
расписание изменилось.
Одним из требований является размещение расписания в календарях Lotus Notus
преподавателей.
Также должно быть создано веб-представление для всех расписаний в стандартной форме:
1.)представление для преподавателей
2.)представление для студентов (Факультет-> Курс->Группа)
3.)представление для аудиторий
Одним из главных требований является устранение конфликтов. Если данные изменяются,
то может произойти конфликт. Например, изменяется «старая» аудитория для
преподавателя на «новую», а в «новой» уже стоит занятие по расписанию. В этом случае
система должна выдавать предупреждение о конфликте.
4.1.1. Требования к структуре и функционированию системы
4.1.1.1. Место автоматизированной системы «Расписание» и ее
основные функции
Роль информационной системы «Расписание» сводится к выполнению
вспомогательных функций, поддерживающих процесс создания и распространения
расписания ТГУ, а так же отслеживания изменений и рассылка обновленных копий
расписания лицам, которых изменения коснулись.
1) организационные функции: простота ввода расписания, оперативность
доставки обновленных данных, надежность хранения данных, исключение
54
«человеческого фактора» при доставке расписания (исключение потери расписания
человеком и др.), контроль явных ошибок в составлении расписания, доступ к расписанию
через веб-сайт, снижение бумажного документооборота,
2) информационные функции: хранение расписания, возможность оперативных
изменений в расписании, размещение расписания в календарях Lotus Notes
преподавателей, предоставление доступа к расписанию посредством веб-сайта.
4.1.1.2. Перечень подсистем, их назначение
4) Подсистема «Ввод данных». Предназначена для ввода расписания, а также
внесения изменений. Представляет данные в разрезах: группа, преподаватель, аудитория.
5) Подсистема «Представления расписания». Предназначена для представления
расписания посредством веб-сайта, для предоставления возможности оперативного
просмотра.
6) Подсистема
«Анализа изменений и рассылки».
Предназначена для
оперативного обнаружения изменений, анализа списка лиц, которых изменения коснулись
и рассылки новой копии расписания.
4.1.1.3. Архитектура системы
На рисунке 1 изображена схема, которая демонстрирует компоненты и потоки
данных в системе.
Рисунок 1 – Схема, демонстрирующая компоненты и потоки данных в системе.
55
Сотрудник бюро расписаний вводит данные через оболочку, написанную на Delphi.
Эти данные попадают в реляционную базу данных. При этом у измененных строк
устанавливается флаг (см. схему базы данных ниже). Агент-программа на Lotus Notes
проверяет наличие флага и, если он установлен, то происходит анализ и рассылка
обновленных данных, при этом флаг сбрасывается. Также с данными связана подсистема
веб-сайта, которая доступна всем желающим (студентам).
С учетом требований к производительности и степени распределенности
автоматизированная система должна иметь трехуровневую клиент-серверную
архитектуру: сервер информационных баз — сервер приложений — клиенты. Система
должна обеспечивать возможность инсталляции серверов информационных баз и серверов
приложений на территориально разнесенных компьютерах (распределенность) и на
различных аппаратных платформах (платформенная независимость).
Для системы «Расписание» будет использоваться серверы Lotus Domino 6 и Oracle.
Сервер информационных баз представляют собой технологические модули,
предназначенные для управления реляционными и документальными базами данных.
Сервер приложений (электронной почты, групповой работы, деловых процедур,
WWW и др.) являются технологическими модулями, реализующими основную
функциональность системы.
Клиенты представляют собой технологические модули, обеспечивающие общение
с пользователями на автоматизированных рабочих местах (АРМ) и реализующие
дополнительную функциональность. Для системы «Расписание» будут использоваться
клиент Lotus Notes, веб-браузер Internet Explorer и клиент на языке Delphi. Для облегчения
эксплуатации системы, и обучения пользователей клиенты должны быть в наибольше
возможной степени унифицированы.
Схема базы данных
С учетом требований была разработана схема базы данных. Схема базы данных не
является окончательной, потому что таблицы – справочники по мере возможностей будут
использованы из существующих уже баз данных.
Схема базы данных включающая в себя таблицы (с указанием первичных [PK] и
внешних ключей [FK], список столбцов таблицы дается после схемы) и связи
(пронумерованные, расшифровка дается после схемы) между таблицами представлена на
рисунке 2.
56
Рисунок 2 – Схема базы данных
Список отношений с указанием атрибутов
Расписание: для хранения одной ячейки расписания (одного занятия)
1) Id_расписание(PK) – задает первичный ключ таблицы «Расписание»3
2) Id_преподавание(FK) – задает внешний ключ, т.е. первичный ключ таблицы
«Преподавание»4
3) Id_группа(FK)
3
Постфикс «(РК)» указывает на то, что данный столбец является первичным ключом таблицы.
4
Постфикс «(FK)» означает, что данный столбец является внешним ключом, а таблица где значение
данного столбца является первичным ключом, указывается до префикса.
57
4) Id_время(FK)
5) Id_расположение(FK)
6) Id_предмет(FK)
7) Изменена – флаг изменения показывает, изменилась ли строка после последней
рассылки расписания (для агент-программы). После рассылки агент-программа будет
каждый раз его сбрасывать.
Время: для разбиения времени на пары
1) Id_время(PK)
2) Id_день недели(FK)
3) Id_пара(FK)
Пара: Данные о парах
1) Id_пара(PK)
2) Номер_пары – условно пары пронумерованы так: 1 - 8.45-10.20, 2 – 10.35-12.10,
…, 4 – 14.45 – 16.20, …, 7 – 20.15 – 21.50.
3) Начало_пары – Время начала пары
4) Конец_пары – Время окончания пары
День недели: Справочник дней недели
1) Id_деньнедели (PK)
2) Название
Аудитория: аудитория в Университете
1) Id_аудитория(PK)
2) Номер – номер аудитории, где проходит занятие
3) Вместимость – вместимость аудитории, т.е. число, которое показывает, сколько
человек одновременно может находиться в данной аудитории
Корпус: справочник корпусов
1) Id_корпус(PK)
2) Номер - номер корпуса, где проходит занятие
Расположение:
58
1) Id_расположение(PK)
2) Id_корпус(FK)
3) Id_аудитория(FK)
Преподаватель: данные о преподавателе
1) Id_преподаватель(PK)
2) Фамилия – фамилия преподавателя
3) Имя – имя преподавателя
4) Отчество – отчество преподавателя
5) Звание – звание преподавателя
6) Должность – должность преподавателя
7) Почта – электронный адрес преподавателя, куда будет отсылаться обновленное
расписание
8) id_деканат(FK)
Преподавание: таблица введена для установления связи М:М между таблицами
Преподаватель и Предметы
1) Id_преподавание(PK)
2) Id_преподаватель(FK)
3) Id_ предмет(FK)
4) Id_типпары(FK)
Предмет: предметы, которые преподают в Университете
1) Id_предмет(PK)
2) Название – название предмета
Группа: группа студентов
1) Id_группа(PK)
2) Номер – номер группы
3) Почта_старосты – электронный адрес старосты для рассылки расписания
4) Количествочеловек – количество человек в группе
59
5) id_деканат(FK)
Деканат: сведения о деканатах
1) Id_деканат(PK)
2) Факультет – название факультета
3) Почта – электронный адрес деканата для рассылки расписания в деканат
4) Декан_ФИО – фамилия, имя, отчество декана
Типпары: справочник для хранения типов пар – лекция, практика, лаборатория
1) Id_типпары(PK)
2) Название – название типа пары
Изменения: содержит флаг, показывающий наличие изменений в базе данных,
служит для экономии времени на обнаружение изменений подсистемой распространения
расписания.
1) Изменено
Перечень связей
1) «Одно и то же время много раз встречается в расписании»: Время - Расписание,
связь типа 1:М (один ко многим)
2) «Одна и та же аудитория встречается много раз в расписании»: Аудитория Расписание, связь типа 1:М
3) «Один и тот же преподаватель много раз встречается в расписании»:
Преподаватель - Расписание, связь типа 1:М
4) «В одном деканате работает много преподавателей»: Деканат – Преподаватель,
связь типа 1:М
5) «Преподаватель преподает
Преподавание, связь типа 1:М
несколько
предметов»,
Преподаватель
–
6) «Предметы преподаются разными преподавателями», Предмет – Преподавание,
связь типа 1:М
7) «Одна и та же группа встречается много раз в расписании (имеет много
занятий)», Группа - Расписание, связь типа 1:М
8) «Один и тот же предмет много раз встречается в расписании», Предмет –
Расписание, связь типа 1:M
60
9) «Один факультет состоит из нескольких групп», Деканат – Группа, связь типа
1:М
10) «Один и тот же тип пары встречается во многих предметах», Типпары –
Предмет, связь типа 1:M
4.1.1.4. Требования к способам и средствам связи для информационного
обмена между компонентами системы
Информационный обмен между компонентами системы должен осуществляться
базовыми средствами корпоративной компьютерной сети. Рабочие места всех
должностных лиц, охватываемых системой, должны иметь постоянное Ethernet –
подключение к локальной сети ТГУ.
4.1.1.5. Требования к характеристикам взаимосвязи создаваемой системы со
смежными системами
Система «Расписание» должна обеспечивать взаимодействие с информационными
системами, хранящими списки аудиторий и преподавателей.
4.1.1.6. Перспективы развития, модернизации системы
В перспективе система должна полностью
распространения расписания в печатном виде.
исключить
необходимость
4.1.2. Требования к квалификации персонала системы и режиму его работы
Персонал, работающий с системой «Расписание», подразделяется на следующие
группы:
1) конечные пользователи — Преподаватели, студенты и деканаты;
2) конечные пользователи — сотрудники бюро расписаний;
3) специалисты по программному обеспечению и администрированию
системы;
4) специалисты по техническому обслуживанию средств вычислительной
техники.
Преподаватели, студенты и сотрудники деканатов должны иметь общее
представление о системе, простейших приемах работы на персональном компьютере,
уметь пользоваться функциями поиска и чтения информации на своем АРМ. Свободное
владение клавиатурой не предполагается. Для данной категории работников должно быть
организовано индивидуальное и групповое обучение.
Сотрудники бюро расписания должны уметь пользоваться стандартными
офисными программами и специфическими приемами работы на своем АРМ, владеть
клавиатурой компьютера.
61
Специалисты по программному обеспечению и администрированию системы
должны иметь профессиональное образование и опыт работы с сетевыми операционными
системами, реляционными и документальными СУБД.
Специалисты по техническому обслуживанию средств вычислительной техники
должны иметь соответствующее техническое образование и опыт работы.
4.1.3.Требования к надежности, безопасности и сохранности информации
Система «Расписание»
должна восстанавливать работоспособность после
отключения электропитания серверов и рабочих станций, отказов оборудования и порчи
информации на магнитных дисках.
Для обеспечения целостности распределенных информационных баз при
возможных отказах системы передачи данных должны использоваться механизмы
автоматического резервного копирования.
4.1.4. Требования к защите информации от несанкционированного доступа
Система «Расписание» должна быть обеспечена комплексом мер по защите
информации от несанкционированного доступа:
Доступ к информации должен быть регламентирован в соответствии с ролями и
полномочиями должностных лиц, порядок предоставления прав, назначения и смены
паролей должен быть юридически закреплен;
4.2. Требования к видам обеспечения
4.2.1. Техническое обеспечение
Для реализации системы «Расписание» вычислительная сеть университета должна
подвергнуться модернизации в следующих направлениях.
Все рабочие места должностных лиц, пользующихся системой «Расписание»,
должны быть оснащены компьютерами в стандартной офисной конфигурации.
Конкретные требования к техническому обеспечению «Расписание» должны быть
установлены на стадии разработки.
4.2.2. Программное обеспечение
В соответствии с общим концептуальным проектом системы «Расписание»
устанавливаются следующие общие требования к серверному
и клиентскому
программному обеспечению.
1) В качестве операционной системы для серверов должна быть использована ОС
Windows NT, либо Windows 2000, либо Windows 2003. В качестве ОС клиентов - Windows
98, ME, 2000, XP.
62
2) Программное обеспечение серверов документальных информационных баз и
серверов приложений (электронной почты, групповой работы, деловых процедур) должно
основываться на базовой платформе Lotus Domino 6.
3) Клиентское программное обеспечение должно основываться на универсальных
клиентах Lotus Notes и Internet Explorer.
4) На рабочей станции бюро расписаний должна быть установлена компонента
ввода и корректировки расписания.
4.3. Требования к интерфейсной части
Представление данных для ввода расписания и изменений не должен сильно
отличаться от привычного представления. Для преподавателя привычно видеть
расписание на бумажной картонке. В левой колонке обозначены дни недели, в верхней –
время лекций, практик и лабораторных занятий. На пересечение этих колонок
преподаватель привык видеть номер группы, у которой он должен провести занятие и
через косую черту номер аудитории, где занятие должно пройти. Т.е. необходимо сделать
такой же вид расписания, только в электронном виде.
Форма должна содержать три вкладки – «Преподаватель», «Аудитория», «Группа».
1.)Если пользователь выбирает вкладку «Преподаватель», то на форме в левой части
он видит список преподавателей университета. Например,
Гладких Борис Афанасьевич
Терпугов Александр Федорович
Сущенко Сергей Петрович
Костюк Юрий Леонидович
…
Пользователь может просмотреть как всех преподавателей сразу, так и
преподавателей отдельного факультета. Далее пользователь должен выбрать нужного
преподавателя.
Когда преподаватель выбран, в правой части формы мы видим его расписание на
неделю в виде таблицы – привычная форма расписания для преподавателей:
Время
8.45-10.20
10.35-12.10
12.25-14.00
День
Пн
051(2)
1401
Информатика
63
14.4516.20
16.3518.10
18.2520.00
20.1521.50
Вт
024(2)
1401
Информати
ка
Ср
Чт
126(2)
1401
Программир
ование
Пт
Сб
Табл.1
При выборе одной из ячеек появляется окно, где можно выбрать предмет, тип
пары, факультет, группу, корпус и аудиторию. Если выбранная ячейка была пуста, то
пользователь может ввести в нее расписание, а если ячейка была заполнена, то
пользователь может изменить информацию или очистить ячейку.
2.)Если пользователь выбирает вкладку «Студент», то на форме в левой части он
видит список групп университета. Например,
1401
1491
1492
…
Пользователь может просмотреть как все группы сразу, так и группы отдельного
факультета. Далее пользователь должен выбрать нужную группу.
Когда группа выбрана, в правой части формы мы видим расписание для данной
группы на неделю в виде таблицы – привычная форма расписания для студентов:
Время
8.45-10.20
10.35-12.10
12.25-14.00
День
64
14.4516.20
16.3518.10
18.2520.00
20.1521.50
Пн
Математическ
ий анализ
Терпугов А.Ф.
051(2)
Вт
Информати
ка
Гладких
Б.А.
024(2)
Ср
Чт
Программиров
ание
Костюк Ю.Л.
026(2)
Пт
Сб
Табл.2
При нажатии выборе одной из ячеек появляется окно, где можно выбрать предмет,
тип пары, преподавателя, корпус и аудиторию. Если выбранная ячейка была пуста, то
пользователь может ввести в нее расписание, а если ячейка была заполнена, то
пользователь может изменить информацию или очистить ячейку.
3.)Если пользователь выбирает вкладку «Аудитория», то на форме в левой части он
видит список аудиторий главного корпуса. Пользователь выбирает корпус, аудиторию.
Например, аудитории 2-го корпуса:
024
026
050
051
…
65
Пользователь выбирает нужный корпус и среди аудиторий этого корпуса – нужную
аудиторию. Далее пользователь должен выбрать нужную аудиторию.
Когда аудитория выбрана, в правой части формы мы видим расписание для данной
аудитории на неделю в виде таблицы:
Время
8.45-10.20
10.35-12.10
12.25-14.00
14.4516.20
16.3518.10
18.2520.00
20.1521.50
День
Пн
Математический
анализ
Терпугов А.Ф.
1401
Вт
Информати
ка
Гладких
Б.А.
1401
Ср
Чт
Программи
рование
Костюк
Ю.Л.
1401
Пт
Сб
Табл.3
При нажатии выборе одной из ячеек появляется окно, где можно выбрать предмет,
тип пары, преподавателя, факультет и группу. Если выбранная ячейка была пуста, то
пользователь может ввести в нее расписание, а если ячейка была заполнена, то
пользователь может изменить информацию или очистить ячейку.
Как мы видим, такой вид представления данных для ввода является наиболее
разумным и удобным. Также легко выбрать любой разрез. Фактически интерфейсная
часть должна быть минимум нагружена лишними символами, знаками, информацией.
66
Download