Разработка системы дистанционного обучения кафедры ВТИТ

Базовые принципы дистанционного обучения. Система управления базами данных Oracle. Технология Java. Принципы построения клиент-серверных систем. Даталогическое проектирование, таблицы и связи между ними. Разработка учебных курсов и процесс обучения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 22.04.2009
Размер файла 11,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

- секретарь кафедры - отвечает за добавление в систему преподавателей, работающих на данной кафедре и ведение учебных планов.

Сотрудники и студенты обладают как общими свойствами, так и характерными только для конкретной сущности.

Общими для всех пользователей будут такие свойства, как логин, пароль, фамилия, имя, отчество, дата рождения, адрес электронной почты и примечание.

Характерными свойствами только для студента являются номер зачетной книжки и название группы, в которой он обучается.

Характерными свойствами только для сотрудника являются табельный номер, должность, ученая степень и подразделение в котором он работает.

Определившись с пользователями, необходимо рассмотреть структуру подразделений, к которым эти пользователи будут относиться.

На рисунке 2.1.1.1 представлена инфорлогическая модель модуля «Администрирование СДО».

Рисунок 2.1.1.1 - Инфологическая схема модуля «Администрирование СДО»

Любое высшее учебное заведение подготавливает студентов по определенным специальностям. Каждая специальность может подготавливаться несколькими факультетами, например, специальность 220200 «АСОИУ» подготавливается как факультетом Кибернетика, так и Заочным факультетом. У каждой специальности есть выпускающая кафедра.

Студенты объединяются в группы. Группы, обучаются по определенным специальностям и закреплены за конкретными факультетами.

В большинстве случаев кафедры закреплены за определенными факультетами.

Сотрудники могут относиться как к кафедре, так и к факультету. Если сотрудник принадлежит кафедре, то в его свойствах указывается название кафедры, к которой он принадлежит. Если же сотрудник принадлежит факультету (например, декан или секретарь факультета), то связь его с факультетом осуществляется, путем указания названия факультета, при этом название кафедры для такого сотрудника не указывается.

2.1.2 Модуль «Учебные планы»

В учебных заведениях, обучение студентов происходит по учебному плану. Поэтому и в СДО обучение проводится по учебному плану. Один учебный план может использоваться для нескольких групп студентов. Рисунок 2.1.2.1 отображает инфологическую модель модуля «Учебные планы».

Рисунок 2.1.2.1 - Инфологическая модель модуля «Учебные планы»

Учебный план состоит из учебных курсов, разделенных по семестрам. Учебный курс состоит из названия дисциплины, формы контроля, учебного цикла, количества часов. Так же к учебному курсу прикрепляется электронный учебник, по которому проходят обучение студенты.

За каждым учебным курсом может быть закреплен один или несколько преподавателей, которые будут при необходимости осуществлять проверку тестов и выставлять итоговые отметки студентам, а также проводить консультации студентов.

2.1.3 Модуль «Конструктор учебных курсов»

Учебный курс является наиболее важным компонентом СДО. Т.к. именно от того, как организован учебный курс, будет зависеть качество обучения. Поэтому преподавателям необходимо предоставить удобный конструктор учебного курса.

В данной ситуации под учебным курсом понимается электронный учебник, разрабатываемый авторами и хранящийся на сервере.

На один учебный курс может быть назначено несколько авторов. Учебный курс обладает названием и может быть опубликован или скрыт от пользователей. Работать с конструктором учебного курса могут только назначенные авторы.

Учебный курс состоит из разделов, представляющих теоретический материал и разделов, представляющих тестовые задания, для проверки усвоенных знаний.

Теоретический материал может быть представлен в текстовом виде, при помощи рисунков, анимации, flash и видео роликов. Так же могут быть прикреплены дополнительные файлы различных форматов.

К любому разделу учебного курса можно добавить тесты, для контроля усвоения учебного материала.

В системе дистанционного обучения имеется три вида тестов:

- обязательный;

- дополнительный;

- тренировочный.

Первый вид теста предполагает обязательность выполнения и при выставлении итоговой отметки студенту, преподаватель учитывает количество выполненных обязательных тестов.

Дополнительный тест составляется из более сложных вопросов, его выполнение не обязательно. Предполагается, что преподаватель будет учитывать результаты данных тестов и выставит более высокую итоговую отметку.

Обязательный и дополнительный тест не могут быть пересданы обучаемым, пока преподаватель не аннулирует результат тестирования.

Тренировочный тест предполагает самоконтроль обучаемого. Данный вид теста может пересдаваться многократно, пока обучаемый не получит желаемую им отметку, но результаты данного теста имеют минимальное влияние при выставлении итоговой отметки или вообще его не имеют.

Вопросы добавляются при помощи конструктора, в котором указываются тип вопроса, сложность и сам вопрос.

На рисунке 2.1.3.1 показана инфологическая модель модуля «Конструктор учебных курсов».

Рисунок 2.1.3.1 - Инфологическая модель модуля «Конструктор учебных курсов»

2.1.4 Модуль «Обучение»

Студент, идентифицировавшись в системе, получает доступ к учебному плану и имеет возможность изучать учебные курсы. В процессе обучения студенты выполняют тестовые задания. Результаты тестовых заданий заносятся в журнал.

Журнал необходим для получения информации об обучении студентов и их успеваемости. Преподаватели при помощи журнала, могут осуществить проверку тестов, аннулировать результаты тестирования и выставить итоговую оценку студенту.

Журнал представляет собой список групп студентов, которые доступны для данного пользователя. Выбрав группу, пользователь получает доступ к списку предметов, далее к списку группы и, выбрав студента, становится доступной информация о пройденных тестах студентом по данному предмету.

При удалении студента из базы данных, сведения о студенте из журналов удаляются.

На рисунке 2.1.4.1 представлена инфологическая модель модуля «Обучение»

Рисунок 2.1.4.1 - Инфологическая модель модуля «Обучение»

Полная схема инфологической модели СДО приведена в Приложении Б.

2.2 Даталогическое проектирование

2.2.1 Создание схемы данных для СДО на сервере Oracle

В одной базе данных Oracle можно хранить множество разных наборов информации - множество схем. Схема - это набор объектов базы данных (таблиц, представлений, моментальных копий или снимков, индексов, последовательностей, синонимов, процедур, функций, пакетов и триггеров). Понятие схемы - это небольшая поправка к СУБД Oracle, введенная с седьмой версии. Ранее все объекты принадлежали создавшему их пользователю. По умолчанию схема аналогична подключенному в настоящее время пользователю.

Администратор базы данных (АБД) Oracle создает новую пустую схему, задавая ее имя и пароль. Для СДО на сервере в базе данных orcl создана схема sdo с паролем sdo.

Для создания новой схемы необходимо выполнить следующую команду:

CREATE USER SDO IDENTIFIED BY SDO DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS

Затем для созданного пользователя необходимо назначить права. Права задаются при помощи команды GRANT. Следующая команда задает право на создание таблиц:

GRANT CREATE TABLE TO SDO

Все команды выполняются в программе sqlplus, которая реализована как в консольном варианте, так и в виде web-интерфейса, показанного на рисунке 2.2.1.1. Каждая команда должна заканчиваться либо обратным слешем («/») , либо точкой с запятой («;»).

Рисунок 2.2.1.1 - Использование SQL*Plus через web-интерфейс

Полный код создания пользователя и назначение ему прав приведен в Приложении В.

При выполнении кода создающего схему данных необходимо осуществить вход в эту схему, следующей командой:

CONNECT SDO/SDO;

2.2.2 Используемые типы данных

Все типы данных, перечисленные в стандарте ANSI SQL92, полностью поддерживаются в Oracle. Но так же и имеются типы, которые характерны только для СУБД Oracle.

На данной стадии реализации приложения необходимо использовать три типа данных: строка, целое число и дата.

Для хранения строк переменной длины используется тип VARCHAR. При использовании данного типа резервируется реально необходимое пространство. Длина строки указывается в скобочках, за названием типа. Если длина строки не указана явно, то она полагается равной 1. Максимальное значение - 4000 символов.

Существует тип VARCHAR2, который используется только для Oracle. Основная причина введения этого типа состоит в том, что фирма-производитель декларирует неизменность этого типа в более поздних реализациях Oracle, в то время как тип VARCHAR будет соответствовать требованиям стандарта SQL.

Пример, описания строкового поля переменной длины, ограниченной 1000 символами:

varstr1 VARCHAR2(1000)

Типом VARCHAR2 будут описываться логин, ФИО, пароль, названия факультетов, специальностей, кафедр и т.п.

Тип INTEGER используется для представления целых чисел в диапазоне от -231 до 231.

Пример, описания целочисленного поля:

varint1 INTEGER

Данный тип будет использоваться для описания номера зачетной книжки, табельного номера, кода специальности, уникального кода кафедры, факультета, ученой степени, должности и роли.

Тип DATE используется для хранения даты и времени. Допускаются даты с 1 января 4712 г. до н.э. до 31 декабря 4712 г. н.э. Для формирования значения типа DATE в SQL и PL/SQL обычно используется встроенная функция ТО_DАТЕ('символьная строка даты', 'формат даты'). При определении даты без уточнения времени по умолчанию принимается время полуночи. Функция SYSDATE возвращает текущее значение даты и времени. Значение функции определяется средствами операционной системы компьютера, на котором работает сервер Oracle.

Пример, описания поля с типом дата:

birthday DATE

Наличие специального типа для хранения даты и времени позволяет поддерживать специальную арифметику дат и времен. Добавление к переменной типа DATE целого числа интерпретируется Oracle как определение более поздней даты, а вычитание выполняется как определение более ранней [6].

Типом DATE будет описываться поле «дата рождения».

2.2.3 Создание таблиц и связей между ними

Для создания таблиц существует оператор CREATE TABLE. Рассмотрим создание таблицы на примере:

CREATE TABLE Faculty (

facultyID INTEGER NOT NULL,

facultyName VARCHAR2(200) NOT NULL,

facultyShortName VARCHAR2(20) NULL

);

После ключевых слов CREATE TABLE указывается название создаваемой таблицы, а затем в скобочках перечисляются через запятую поля таблицы. Для каждого поля указывается тип данных и показывается возможность поля быть пустым или нет.

Для задания первичного ключа таблицы необходимо внести в нее изменения:

ALTER TABLE Faculty ADD ( PRIMARY KEY (facultyID));

Выше представленная команда говорит о том, что необходимо изменить таблицу Faculty, добавив в нее первичный ключ, в качестве которого выступает поле facultyID.

Для создания связей между таблицами используются внешние ключи. Рассмотрим пример задания внешнего ключа для таблицы «Кафедры»:

ALTER TABLE Chair ADD (FOREIGN KEY (facultyID)

REFERENCES Faculty ON DELETE SET NULL);

Приведенная команда указывает, что необходимо изменить таблицу Chair, установив в качестве первичного ключа поле facultyID, которое связано с таблицей Faculty. В случае удаления факультета полю facultyID установить значение NULL.

Исходный код генерации таблиц, первичных ключей и внешних ключей приведен в Приложении Г.

2.2.4 Создание последовательностей

В Oracle отсутствует поддержка автоинкрементных полей. Но существует возможность создания последовательностей, значения которых будут уникальны. Для каждой таблицы, нуждающейся в получении уникального кода, где его не требуется указать явно (например, номер зачетной книжки или код специальности указывается явно при заполнении) создаются такие последовательности.

Пример создания последовательности:

CREATE SEQUENCE faculty_seq

- создать последовательность faculty_seq

INCREMENT BY 1

- значения увеличивать на 1

START WITH 1

- начальное значение 1

NOMAXVALUE

- отсутствует максимальное значение

MINVALUE 1

- минимальное значение равно 1

ORDER

- упорядочивать значения

;

Код генерации всех последовательностей приведен в Приложении Г.

2.2.5 Создание триггеров

Последовательность генерирует значение только тогда, когда ее об этом попросят. Поэтому при вставке новых значений в таблицу необходимо извлечь из последовательности уникальный номер и подставить в таблицу в качестве кода записи. Это возможно реализовать, создав для таблиц триггеры.

Пример триггера:

create or replace trigger faculty_insert_trig

BEFORE INSERT on Faculty

for each row

begin

SELECT faculty_seq.nextval INTO :new.facultyID from dual;

end;

Данный код говорит о необходимости создать или заменить триггер faculty_insert_trig, который перед вставкой каждой новой записи в таблицу Faculty будет извлекать значение из последовательности faculty_seq методом nextval и добавлять в новую запись в поле facultyID.

Код генерации всех триггеров приведен в Приложении Г. Полная даталогическая схема СДО показана в Приложении Д.

2.3 Установка и настройка БАЗОВОГО программного комплекса

В системе Linux имеется пользователь «sk», который устанавливает Oracle Database 10g и Apache-Tomcat 5.5.20, а также являться владельцем этих приложений. Чтобы создать нового пользователя, необходимо запустить приложение YaST. Выбирается раздел управление пользователями и создается новый пользователь (рисунок 2.3.1).

Рисунок 2.3.1 - Создание нового пользователя

Далее на закладке «Описание», указывается домашняя директория пользователя, основная группа, к которой он относится, и дополнительные группы. После применения параметров, можно пользоваться новой учетной записью.

Создание новых пользователей необходимо для безопасности системы, т.к. если осуществлять все установки и настройки программного обеспечения от пользователя root, то нет уверенности в том, что система не будет разрушена, в результате неправильных действий пользователя или некачественных программ.

2.3.1 Контейнер Apache-Tomcat 5.5.20

Установка и настройка контейнера Apache-Tomcat не представляет затруднений. Предварительно устанавливается JDK в директорию /usr/local/jdk1.6.0. Установка производится обычным копированием файлов. Далее описываются переменные окружения в файле /etc/profile:

### Java+Tomcat ###

export JAVA_HOME="/usr/local/jdk1.6.0"

export CATALINA_HOME="/usr/local/apache-tomcat-5.5.20"

export PATH=$PATH:$JAVA_HOME/bin

После производится копирование файлов Apache-Tomcat в директорию /usr/local/apache-tomcat-5.5.20/. Задаются права владения директорией JDK и Apache-Tomcat для пользователя sk:

chown -R sk /usr/local/jdk1.6.0/

chmod 774 / usr/local/jdk1.6.0/

chown -R sk /usr/local/apache-tomcat-5.5.20/

chmod 774 /usr/local/apache-tomcat-5.5.20/

Создается скрипт запуска Apache-Tomcat в /etc/rc.d/tomcat, содержимое которого приведено в Приложении Е.

Для запуска Apache-Tomcat в командной строке набирается: /etc/rc.d/tomcat start.

После старта открывается браузер и набирается «http://localhost:8080», тем самым загружая web-интерфейс для управления Apache-Tomcat (рисунок 2.3.1.1).

Рисунок 2.3.1.1 - Web-интерфейс для управления Apache-Tomcat

Все приложения написанные для Apache-Tomcat будут располагаться в каталоге /usr/local/apache-tomcat-5.5.20/webapps/.

Для СДО создается отдельный каталог /usr/local/apache-tomcat-5.5.20/webapps/sdo/.

2.3.2 Сервер БД Oracle Database 10g

Инсталлятор Oracle располагается в директории /shared/Oracle10g/. Установка проводится в директорию /u01/app/. Перед запуском инсталлятора необходимо владельцем этой директории сделать пользователя sk:

chmod -R 777 /shared/Oracle10g/

chown -R sk /u01

chmod -R 775 /u01

Т.к. ОС SuSe Linux Server Edition 10 не поддерживается Oracle, а поддерживается только 9-ая версия, при запуске инсталлятора нужно указать, чтобы игнорировалась версия ОС.

./runInstaller -ignoreSysPrereqs

Сразу же появляется сообщение о том, что недостаточно прав для работы с директорией /opt/oracle/, поэтому меняется владелец данной директории, тем самым получив к ней полный доступ.

chown -R sk.wheel /opt/oracle

В процессе инсталляции необходимо добавить русский язык в список выбранных (рисунок 2.3.2.1).

Затем, указывается директория, в которую будет проинсталлирован Oracle (рисунок 2.3.2.2).

В качестве кодировки БД выбирается Юникод - UTF8. Глобальное имя БД остается по умолчанию - orcl.

Рисунок 2.3.2.1 - Выбор языков для БД

Рисунок 2.3.2.2 - Выбор директории для установки сервера

Далее указывается директория для хранения файлов БД (рисунок 2.3.2.3).

Рисунок 2.3.2.3 - Выбор директории для файлов БД

Затем вводится пароль для всех системных пользователей (рисунок 2.3.2.4).

Рисунок 2.3.2.4 - Задание паролей для системных пользователей

После этого начинается копирование файлов системы. Перед окончанием установки потребуется запустить два скрипта от пользователя root, которые задают параметры для Oracle.

После установки система готова к использованию, но если перегрузить компьютер, то Oracle надо будет запускать заново. Поэтому необходимо сконфигурировать ОС на запуск Oracle.

Открывается /etc/oratab и изменяется последняя строка с N на Y, чтобы инстанция (в данном случае - orcl) запускалась вместе с сервером [7].

Необходимо описать переменные среды в /etc/profile:

### Oracle 10g ###

export ORACLE_HOME="/u01/app/oracle"

export ORACLE_SID=orcl

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

export PATH=$PATH:$ORACLE_HOME/bin

Файл /etc/rc.d/oracle стартует, перезагружает и останавливает сервер. Содержимое данного файла описано в Приложении Ж. Чтобы запустить Oracle в консоли вводится /etc/rc.d./oracle start.

Система должна запуститься. Обратившись по адресу http://localhost:1158/em в браузере загрузится Oracle Enterprise Manager. А если обратиться по адресу http://localhost:5560/isqlplus, то загрузится web-интерфейс для работы с PL/SQL.

2.4 Разработка приложения СДО

Разработка СДО ведется с использованием объектно-ориентированного подхода. Следовательно, приложение представляет собой набор объектов взаимодействующих между собой. Поэтому при разработке приложения необходимо как можно правильнее разделить выполняемые задачи между объектами.

СДО строится по схеме Модель-Вид-Контроллер (MVC, Model-View-Controller). Модель представляет систему, вид отвечает за отображение модели, а контроллер обрабатывает данные, поступающие от пользователя.

В качестве вида выступает страница JSP, отображающие данные для пользователя и позволяющие вводить новые данные. После введения новых данных управление передается контроллеру, который проверяет правильность введенных данных. Роль контроллера выполняет сервлет. После проверки введенных данных, инициализируется модель. В данной системе каждой таблице базы данных, соответствует два класса модели: все свойства первого класса, соответствуют полям таблицы, а второй класс - отвечает за непосредственное взаимодействие с таблицей. Таким образом, проверенные контроллером данные, присваиваются объекту, который соответствует таблице БД. Этот объект сохраняется в таблице объектом, который отвечает за взаимодействие с этой таблицей. После того как модель обновилась, необходимо пользователю отобразить изменения, для этого делается выборка из БД и вид отображает внесенные изменения [8].

Одной из проблем, с которой пришлось столкнуться при разработке приложения - была проблема кодировки представления данных кириллицей из БД. Попытка устранения данной проблемы производилась на сервере БД Oracle, путем многочисленных перестановок с различными кодировками и попытками задать в переменных среды кодировку. Но все это было безуспешно. Однажды, была осуществлена попытка ввода данных через SQL*Plus по средствам web-интерфейса, а не через консоль, как это делалось ранее. После выборки, было обнаружено, что введенные данные нормально выводятся, используя все буквы кириллицы. Т.е. ошибка возникает во время ввода данных и явно, что сервер БД здесь не причем.

В конечном счете, выяснилось, что когда данные забираются из формы, они преобразуются в неизвестную кодировку. Поэтому при получении скриптом данных из формы их следует явно преобразовывать к нужной кодировке. Т.к. в разрабатываемой системе используется кодировка UTF-8, то преобразование кодировки производится следующим методом [9]:

request.setCharacterEncoding(“UTF-8”)

2.4.1 Разработка форм

Вся информация, хранящаяся в БД, должна быть отображена на экране, т.е. для этого необходимо создавать специальные формы ввода, изменения и удаления данных. Т.к. общение со стороны клиента происходит через web-браузер, то наиболее удобным средством для создания и обработке на стороне клиента форм является JavaScript.

В качестве примера ниже приведен код формы ввода факультета:

<form name="form1" method="post" action="FacultyAdd">

<table width="200" border="0">

<tr>

<td>Название факультета:</td>

<td><input type="text" name="facultyName"></td>

</tr>

<tr>

<td>Сокращенное название факультета:</td>

<td><input type="text" name="facultyShortName"></td>

</tr>

<tr>

<td> <div align="center"> <input type="submit" name="Submit" value="Добавить"> </div> </td>

<td><input type="reset" name="Submit3" value="Очитстить"></td>

</tr>

</table>

</form>

В данном примере элементы формы выводятся в ячейки таблицы для ровного представления на странице. Рассмотрим, элементы формы:

<form name="form1" method="post" action="FacultyAdd"> - тэг, описывающий форму, параметр method определяет каким методом будут передаваться данные сервлету: post или get; параметр action определяет, какому сервлету передавать параметры из формы на обработку.

<input type="text" name="facultyName> - однострочный редактор, позволяется осуществить ввод текстовых данных.

<input type="submit" name="Submit" value="Добавить"> - кнопка, отправляющая данные из элементов ввода сервлету, указанному в параметре action формы.

<input type="reset" name="Submit3" value="Очистить"> - кнопка, сбрасывающая все параметры формы.

На рисунках 2.4.1.1 и 2.4.1.2 приведены формы ввода и изменения/удаления данных.

Рисунок 2.4.1.1 - Форма добавления/удаления факультета

Рисунок 2.4.1.2 - Форма изменения/удаления факультетов

Исходный код формы, приведен в Приложении И.

2.4.2 Разработка классов

В разд. 2.4 была описана схема взаимодействия классов в приложении. Ниже рассматривается, непосредственная разработка классов.

Для работы с таблицей факультетов (Faculty), создается специальный класс Faculty. Описание класса осуществляется следующей конструкцией:

public class Faculty

Данный класс содержит свойства, соответствующие всем полям таблицы Faculty, т.е. facultyID, facultyName, facultyShortName. Описание этих свойств, производится следующим образом:

private int facultyID;

private String facultyName;

private String facultyShortName;

По правилам объектно-ориентированного программирования, не следует разрешать прямой доступ к полям класса, т.е. описывать их ключевым словом public. Осуществлять этот доступ следует при помощи специальных методов, которые будут устанавливать, и извлекать значения свойств класса.

Для извлечения значения свойства facultyID, используется следующий метод:

public int getFacultyID() {

return facultyID;

}

Для изменения и задания свойства facultyID, используется метод setFacultyID:

public void setFacultyID(int facultyID) {

this.facultyID = facultyID;

}

Во время создания объекта выполняется особый метод, называемый конструктором. Конструкторы бывают пустыми, т.е. в их задачу входит выделение адресного пространства для создающегося объекта, а бывают конструкторы с параметрами, которые помимо выделения адресного пространства, задают значения свойств объекта. Конструктор с параметрами выглядит следующим образом:

public Faculty(int facultyID, String facultyName, String facultyShortName) {

this.facultyID=facultyID;

this.facultyName=facultyName;

this.facultyShortName=facultyShortName;

}

Создав класс, который будет содержать значения записи из таблицы, необходимо создать класс, который при помощи запросов будет извлекать данные из таблицы и записывать их в нее.

Исходный код класса Faculty приведен в Приложении И.

2.4.3 Разработка запросов

Для работы с таблицей БД в приложении разрабатывается отдельный класс. В этом классе описываются в качестве полей все запросы, выполняемые к данной таблице БД. Сервлет, вызвав методы этого класса, осуществляет ввод, изменение и редактирование данных в БД.

Существует две разновидности запросов: возвращающие набор данных и изменяющие набор данных. Запросы, которые возвращают набор данных, их еще называют запросы на выборку, осуществляются оператором SQL SELECT. Запросы, которые вносят изменения в базу данных, осуществляются операторами INSERT, UPDATE, DELETE [10].

У класса, работающего с таблицей БД, описаны свойства типа PreparedStatement. В конструкторе класса определяются значения этих свойств, которые непосредственно являются запросами к таблице Faculty.

Значения свойствам задаются следующим образом:

sqlGetAllFaculty=connection.prepareStatement("SELECT * FROM Faculty ORDER BY facultyName");

sqlInsert=connection.prepareStatement("INSERT INTO Faculty (facultyName, facultyShortName) VALUES (?, ?)");

sqlUpdate=connection.prepareStatement("UPDATE Faculty SET facultyName=?, facultyShortName=? WHERE facultyID=?");

sqlDelete=connection.prepareStatement("DELETE FROM Faculty WHERE facultyID=?");

sqlGetRecord=connection.prepareStatement("SELECT * FROM Faculty WHERE facultyID=?");

sqlFindByName=connection.prepareStatement("SELECT * FROM Faculty WHERE facultyName=?");

? - означает, что на место этого знака будет подставлен параметр. Подстановка параметров осуществляется методами setxxx(<номер параметра>, <значение>). Номер параметра начинается с 1 и увеличивается при чтении запроса слева направо.

Ниже приведен метод, добавляющий новый факультет в БД:

public void Insert(Faculty rec) throws SQLException{

sqlInsert.setString(1, rec.getFacultyName());

sqlInsert.setString(2, rec.getFacultyShortName());

sqlInsert.executeUpdate();

}

Следует заметить, что в случае, когда запрос вносит изменения в БД, а к таким относятся INSERT, UPDATE, DELETE, то необходимо использовать метод executeUpdate(). А в случае, когда осуществляется выборка из БД оператором SELECT, то используется метод executeQuery().

Метод, осуществляющий выборку по названию факультета, выглядит следующим образом:

public boolean isRecord(String recName) throws SQLException {

sqlFindByName.setString(1, recName);

ResultSet rs=sqlFindByName.executeQuery();

if(!rs.next()) return false;

return true;

}

Исходные коды программы для работы с таблицей факультетов приведены в Приложении И.

2.5 Руководство пользователя

2.5.1 Установка системы

Для работы с СДО необходимо ее проинсталлировать. Процесс инсталляции не вызывает затруднений. Вначале следует указать параметры соединения с базой данных (рисунок 2.5.1.1).

Рисунок 2.5.1.1 - Задание параметров соединения

После того, как были установлены параметры соединения, и база данных была успешно развернута, следует создать администратора системы (рисунок 2.5.1.2).

Рисунок 2.5.1.2 - Создание администратора системы

Создав администратора системы, инсталляцию можно считать законченной. Для безопасности следует удалить директорию installation, чтобы злоумышленники не могли переустановить систему, уничтожив данные, хранящиеся в БД.

2.5.2 Администрирование системы

Начинать работу с СДО следует с заполнения основных справочников. Для этого войдя на главную страницу, необходимо пройти идентификацию. Процесс идентификации показан на рисунке 2.5.2.1. Заполнение справочников осуществляют, как администраторы, так и секретари факультетов и кафедр. Поэтому администратору следует создать новые группы пользователей, которые будут заполнять систему. Создание группы пользователей показано на рисунке 2.5.2.2.

Рисунок 2.5.2.1 - Идентификация пользователя

Экранные формы, отображающие процесс администрирования СДО представлены в Приложении К.

Рисунок 2.5.2.2 - Создание новой группы

После создания групп администрирующих систему, необходимо приступить к ее администрированию. Рассмотрим процесс заполнения справочников на справочнике специальностей. Для этого выбирается в меню «Управление системой» «Справочник специальностей». В форму добавления вводятся «Код специальности», «Название специальности» и «Сокращенное название специальности». Поля, помеченные звездочкой, обязательны к заполнению. Если данные введены верно и еще не содержатся в таблице, то система подтвердит ввод сообщением (рисунок 2.5.2.3). В случае неправильного ввода, система выдает сообщение об ошибке.

Рисунок 2.5.2.3 - Добавление данных в справочник

Если при вводе совершена ошибка, то ее можно исправить. Для этого необходимо в справочнике найти запись с ошибкой и щелкнуть по кнопке, находящейся справа от этой записи. Откроется форма редактирования записи, показанная на рисунке 2.5.2.4. После внесения изменений, необходимо нажать кнопку «Применить». Если внесенные изменения не противоречат данным, имеющимся в таблице, то система подтвердит изменения (рисунок 2.5.2.5), иначе выдаст сообщение об ошибке.

Рисунок 2.5.2.4 - Редактирование записи справочника

Рисунок 2.5.2.5 - Подтверждение о внесенных изменениях

Если запись в справочнике становится не актуальной, то имеется возможность удалить. Для этого необходимо отметить галочкой удаляемые записи и нажать кнопку удалить. В случае, когда у удаляемой записи существуют подчиненные записи, удаление становится невозможным и система сообщает об ошибке, показанной на рисунке 2.5.2.6. Если подчиненных записей нет, то удаление проходит успешно (рисунок 2.5.2.7).


Рисунок 2.5.2.6 - Ошибка при удалении записи

Рисунок 2.5.2.7 - Сообщение, подтверждающее удаление

После заполнения первичных справочников, следует заполнять составные справочники, т.е. создаваемые на основе данных, хранящихся в первичных справочниках. Одним из составных справочников является справочник «Кафедры». Для кафедры вводятся название и сокращенное название, а факультет, которому подчинена эта кафедра, выбирается из разворачивающегося списка, сформированного на основании справочника «Факультеты». Форма добавления кафедр показана на рисунке 2.5.2.8.

Рисунок 2.5.2.8 - Добавление кафедры

2.5.3 Разработка учебных курсов

Прежде чем приступить к формированию самого учебника, необходимо добавить название учебного курса и назначить преподавателя. Для этого следует войти в раздел «Учебные курсы», показанный на рисунке 2.5.3.1.

Для администрирующих пользователей будет доступен полный список учебников, а для авторов учебных курсов, только курсы, где они являются авторами.

Рисунок 2.5.3.1 - Работа с учебными курсами

Для разработки учебного курса автору необходимо войти в конструктор учебного курса. Изначально появится пустая страница с возможностью добавления раздела и создания тестов учебника. Чтобы добавить новый раздел нужно заполнить поле «Название раздела» и нажать кнопку «Добавить».

Чтобы добавить текстовое и мультимедиа содержимое в раздел учебника, нужно перейти в раздел, который необходимо разработать. Перейдя по ссылке, появится редактор, показанный на рисунке 2.5.3.2, с помощью которого раздел наполняется содержимым. Заполнив содержимым окно редактора, следует нажать кнопку «Сохранить», раздел будет сформирован. При необходимости редактирования или удаления содержимого нажмите соответственно кнопки «Редактировать текст раздела» или «Удалить текст раздела».

Для каждого раздела учебного курса на сервере создается отдельная директория под файлы. При удалении раздела, директория с файлами удаляется автоматически. При удалении учебного курса автоматически удаляется директория всего учебного курса.

Рисунок 2.5.3.2 - Редактирование содержимого раздела

Чтобы создать новый тест в учебнике следует в конструкторе нажать кнопку «Тесты учебника». Если же тест необходимо добавить в какой-либо раздел, то следует перейти по ссылке в нужный раздел и нажать кнопку «Тесты раздела». На рисунке 2.5.3.3 показан список тестов учебника.

Рисунок 2.5.3.3 - Работа с тестами

Чтобы добавить новый тест необходимо заполнить поля формы. В названии теста указывается его название. Далее осуществляется переход к формированию вопросов и ответов, что показано на рисунках 2.5.3.4 и 2.5.3.5 соответственно.

Рисунок 2.5.3.4 - Работа с вопросами теста

Рисунок 2.5.3.5 - Добавление ответа на вопрос

2.5.4 Процесс обучения

Процесс обучения организовывается на основании подготовленного учебного плана, как и при традиционной форме обучения. Чтобы приступить к обучению, пользователю необходимо идентифицироваться в системе и войти в раздел «Обучение», который расположен в главном меню. Процесс функционирования СДО показан в Приложении Л.

Если студент обучается по нескольким специальностям одновременно, то ему предоставляется для выбора список всех его специальностей.

На рисунке 2.5.4.1 показан вид учебного плана, который доступен идентифицировавшемуся студенту.

Рисунок 2.5.4.1 - Учебный план

Студенту необходимо выбрать желаемый курс для изучения в данный момент и перейти по ссылке. Перед ним появляется содержание учебного курса, осуществляя переходы по которому, он попадает в разделы электронного учебника. Изучив нужные материалы, студенту предлагается прохождение тестирование. Процесс тестирования показан на рисунке 2.5.4.2.

Рисунок 2.5.4.2 - Тестирование

Результаты тестирования сохраняются в журналах. Преподаватель имеет возможность просматривать журналы и результаты прохождения тестирования, что показано на рисунке 2.5.4.3.

Заключение

В очень быстром ритме жизни, время становится все более и более ценным ресурсом. Человек должен много работать, чтобы быть успешным и занимать определенное положение в обществе. Но работать эффективно невозможно без получения новых знаний. Развитие Интернета и компьютеризация общества дают большие возможности человеку, делая его более мобильным. А системы дистанционного обучения, позволяют получать новые знания в любое удобное время.

Разработка СДО является непростой задачей, т.к. нужно не ошибиться в выборе программного комплекса. Технология Java позволила разработать защищенное, легко изменяемое и независимое от платформы web-приложение, которое предъявляет минимальные требования к клиентским компьютерам. В свою очередь, СУБД Oracle Database 10g обеспечивает надежность хранения данных.

Используемая трехзвенная архитектура построения приложения «клиент/сервер приложений/сервер БД», делает систему более гибкой и дает возможность заменять звенья.

Разработанная политика прав, позволяет легко разрешать или запрещать доступ к разделам системы. Введение же нового модуля не потребует изменения программного кода приложения, а всего лишь добавит права, которые будут включены администратором в нужных группах.

Конструктор учебных курсов позволяет использовать текстовые, графические и мультимедиа материалы для изложения учебного материала. Контроль знаний осуществляется при помощи тестирования. Разработанные пять видов тестов, позволят наиболее гибко осуществить проверку усвоения знаний. Используемая методика задания сложности вопросам, дает наиболее качественную оценку знаний.

С помощью журналов успеваемости преподаватели всегда могут получить достоверную информацию об обучении студента, выяснить для себя, где студенты допускают наибольшее количество ошибок, что в конечном итоге позволит усовершенствовать учебный курс.

В дальнейшем возможна разработка форума для СДО, который позволит проводить обсуждение непонятых тем учебных курсов, обмениваться опытом в изучении материала между студентами, проводить коллективные дискуссии, позволяющие заменить общение на занятиях в аудиториях.

Разработанная СДО на данном этапе является законченным приложением и может быть использована для организации дистанционного обучения кафедры ВТИТ, что позволит подготавливать большее количество высокопрофессиональных кадров.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1 Том Кайт. Oracle для профессионалов. Пер. с англ. - СПб.: ООО «ДиаСофтЮП», 2003. -- 672 с.

2 Миллсап К., Хольт Д. Oracle. Оптимизация производительности. - Пер. с англ. - СПб.: Символ-Плюс, 2006. - 464с., ил.

3 Хабибуллин И.Ш. Самоучитель Java 2. - СПб.: БХВ-Петербург, 2005. - 720с.: ил.

4 Х.М.Дейтл, А.Д.Дейтл, С.И. Сантри. Технологии программирования на Java 2. Пер. с англ. -М.: ООО «Бином-Пресс», 2003 г. -560с.: ил. В трех книгах.

5 http://www.pcmag.ru/library/detail.php?ID=9281

6 Смирнов С.Н., Задворьев И.С. Работаем с Oracle. Учебное пособие/2-е издание, испр. и доп. -М.: Гелиос АРВ, 2002 - 496 с.

7 К. Клягин. Свидание с оракулом// Хакер Спец.-2005-№03(52)-С.32-35.

8 А. Синтес. Освой самостоятельно объектно-ориентированное программирование за 21 день. : Пер. с англ. -М.: Издательский дом «Вильямс», 2002. - 672 с. : ил.

9 www.citforum.ru/internet/javascript/java_rbint.shtml.htm

10 Глушаков С.В., Ломотько Д.В. Базы данных. -Харьков: Фолио; М.: ООО «Издательство АСТ», 2002. - 504 с. - (Учебный курс).

Приложения

Приложение А

Трехзвенная архитектура построения приложения

Приложение Б

Инфологическая модель


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.