Научная Петербургская Академия

Диплом: Создание тренажерно-тестирующей системы

Диплом: Создание тренажерно-тестирующей системы

Омский государственный университет Математический факультет Кафедра ПрО ЭВМ Создание тренажерно-тестирующей системы. дипломная работа студента гр. МП-803 Филимонова М.В. ______________ (подпись) Научный руководитель к. т. н. Агафонов А.Л. ______________ (подпись) Омск 2003

Содержание

1. Введение..............................................................................................................................

2. Анализ предметной области.............................................................................................

2.1. Описание предметной области и функции решаемой задачи................................

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

3. Постановка задачи..............................................................................................................

3.1. Организационно-экономическая сущность задачи..................................................

3.2. Описание выходной информации.............................................................................

3.3. Описание входной информации................................................................................

4. Разработка информационного обеспечения задачи........................................................

4.1. Информационный анализ предметной области и выделение информацион­ных объектов задачи...........................................................................................................

4.2. Определение связей информационных объектов и построение ИЛМ..................

4.3. Определение логической структуры реляционной базы данных...........................

4.4. Исходные данные контрольного примера................................................................

5. Разработка алгоритмов и технологии решения задачи..................................................

5.1. Технология ввода и накопления входной информации, обеспечивающей решение задачи............................................................................................................

5.2. Определение макета форм ввода-вывода для загрузки в БД входной ин­формации.....................................................................................................................

5.3. Обобщенный алгоритм решения задачи и его декомпозиция на модули (функции).....................................................................................................................

5.4. Детальные алгоритмы реализации отдельных модулей задачи.............................

6. Руководство администратора............................................................................................

6.1. Системные и технические требования......................................................................

6.2. Подготовка к работе...................................................................................................

6.2.1. Подготовка веб-сервера...................................................................................

6.2.2. Подготовка базы данных.................................................................................

6.3. Вход в систему............................................................................................................

6.4. Просмотр таблиц пользователей...............................................................................

6.5. Работа с пользователями............................................................................................

6.5.1. Общие положения............................................................................................

6.5.2. Регистрация пользователя...............................................................................

6.5.3. Подписка пользователя на тест.......................................................................

6.5.4. Удаление пользователя....................................................................................

6.5.5. Удаление просроченных пользователей........................................................

6.6. Работа с тестами..........................................................................................................

6.6.1. Формат тестов РВУ..........................................................................................

6.6.2. Добавление нового теста.................................................................................

6.7. Статистика...................................................................................................................

6.7.1. По тестам...........................................................................................................

6.7.2. По пользователям.............................................................................................

6.7.3. Список всех пользователей.............................................................................

7. Приложение 1. Логическая структура реляционной базы данных задачи...................

8. Литература..........................................................................................................................

4

6

6

7

8

8

8

9

11

11

17

18

19

21

21

23

25

26

29

29

29

29

29

30

32

33

33

33

34

35

36

36

36

40

41

41

43

44

46

47

1. Введение. Предметной областью является система тестирования знаний учащихся. Теория систем тестирования и тренажерных систем является одной из наиболее развитых педагогических теорий. Современная педагогическая наука считает тестирование основой контроля знаний. Именно на нем построены системы обучения во многих западных странах. Широко известны примеры, такие как: · «К12» - системам обучения студентов/школьников в Соединенных Штатах Америки. Основным принципом в системе «К12» считается полностью самостоятельное обучение дисциплинам по заданной литературе. Контроль знаний осуществляется через тестирования. · «BrainBench» - http://www.brainbench.com/xml/bb/homepage.xml . Очень известная система тестирования, как за границей, так и в России. Это платная система контроля знаний по различным отраслям деятельности и науки. Не предоставляет учебный или справочный материал, оставляя выбор источников информации обучаемому. · «Система дистанционного обучения ОмГУ» - http://www.do.omskreg.ru . Система тестирования абитуриентов по математике. В этой системе представлены материалы, подготовленные опытными преподавателями и специалистами ОмГУ. · «Омский виртуальный университет» – http://omsk.openet.ru . Это региональный образовательный портал, открытый на базе Омского Государственного Университета в соответствие с договором с Российским государственным институтом открытого образования (РГИОО), г. Москва. Последний является головной организацией в научно-технической программе Минобразования РФ «Создание системы открытого образования». К основным признакам системы тестирования относятся: · регистрация тестируемого (имя, фамилия, идентификатор, пароль, и т.д.); · системам добавления правил работы с тестом (краткое описание целей и задач, правила работы с материалом, условия доступа к системе тестирования и т.д.); · система представления вопросов и ответов на вопросы (например: один вопрос – три варианта ответа – один верный); · система хранения, добавления и редактирования вопросов и ответов на вопросы; · система ведения статистики; · система выдачи сертификатов; · система регистрации тестирования в глобальной педагогической сети. Система тестирования знаний абитуриентов и студентов является частью тренажерно-тестирующей системы ОмГУ. 2. Анализ предметной области. 2.1. Описание предметной области и функции решаемой задачи. В предметной области комплекса задач, к которому относится задача создания тренажерно-тестирующей системы, рассматрива­ются процессы создания и хранения справочной информации и тестовых заданий, анализ статистики прохождения тестов пользователями, учет и анализ оплаты за представленную информацию. К функциям, которые должны быть реализованы в рассматриваемой задаче, отно­сятся: · учет оплаты информационных услуг пользователями; · ведение статистики прохождения пользователями тестов; · создание учебно-методического материала и хранение его в базе данных; · создание тестирующей системы. Из общего описания предметной области известен ряд ограничений, существенных для процессов, которые относятся к рассматриваемой задаче. Тесты и справочная информация создаются преподавателем и/или группой преподавателей. Один пользователь не может иметь больше одного учетного номера, а, следовательно, и не больше одного логина и пароля. Один пользователь может пользоваться несколькими тестами или группами тестов, при условии, что он имеет разрешение на доступ к ним (т.е. пользование тестом оплачено). Предполагается, что пользователь обладает электронным почтовым ящиком. Это необходимо для оперативной связи с пользователем – на адрес его электронного почтового ящика будет высылаться образец формы для оплаты услуг, подтверждение о регистрации, логин и пароль. Также предполагается, что пользователь имеет доступ в Интернет. 2.2. Документы предметной области, содержащие информацию, необходимую для решения задачи. Входная информация задачи «Создание тренажерно-тестирующей системы» разделяется на условно-постоянную и оперативно-учетную информацию. Условно-постоянная информация, необходимая для решения этой задачи, включа­ет справочные материалы и тесты по разным дисциплинам. Эту информацию предоставляет преподаватель и/или группа преподавателей. Для регистрации пользователя необходима информация о нем: ФИО, полный почтовый адрес, адрес электронной почты, номер телефона. Для того, чтобы выдать пользователю логин и пароль, тем самым разрешить ему доступ к информации, необходимо получить подтверждение об оплате пользователем услуг. Входная информация, содержащая данные оперативного учета, включает данные о прохождении пользователем тестов, рекомендации преподавателя абитуриенту или студенту, в зависимости от результатов прохождения тестов. 3. Постановка задачи 3.1. Организационно-экономическая сущность задачи. В настоящее время уже существуют и успешно функционируют проекты, которые являются либо тестирующими, либо тренажерными. В данной системе воплощена попытка объединения выше названных особенностей. Кроме того, в связи с развитием сети Интернет, ОмГУ получает дополнительную возможность рекламирования и предложения образовательных услуг. В связи с развитием рынка платных услуг данная система призвана быть каналом для поступления дополнительных финансовых потоков в вуз. Система обеспечивает автоматизацию образовательного процесса для абитуриентов вуза желающих проверить свою готовность к экзаменам, потренироваться в ответах на экзаменационные вопросы и обеспечивает объективную оценку знаний в интерактивном режиме. Проект выполнен в виде сайта, где справочная и другая статическая информация хранится в html-файлах, а тесты и другая динамическая информация хранится в базе данных MSSQL 2000, к которой обращаются скрипты PHP. Ведется система регистрации и учета пользователей, информация о которых также заносится и хранится в базе данных. Пользователь может посмотреть статистику своего прохождения тестов и сравнить свои показатели с другими пользователями. 3.2. Описание выходной информации. Выходной информацией задачи для пользователя являются: · результат о прохождении теста; · рекомендации преподавателя повторить те или иные главы учебного материала. Эти данные должны выводиться на экран интернет-браузера пользователя. 3.3. Описание входной информации. Для создания нового теоретического раздела преподаватель и/или группа преподавателей предоставляют необходимые данные для создания новых html- страниц, которые администратор выложит на сайт. Это статическая информация. Для создания нового теста нужно: · создать файл теста в формате тестов РВУ (пример ниже), при условии, что данная система поддерживает вопросы с единственным верным вариантом ответа; · поместить этот файл на сервер; · вызвать скрипт newtest.php, которому нужно передать имя созданного файла; Формат файла для создания нового теста. Форма 1.
№ строки в файлеОписание строки
1Название теста (группы вопросов).
2<$:TestPortion: XX (где XX – количество задач, выдаваемых за тест)
3--/New Question/--
4<$:QuestionType:1 (не используется, добавлено для совместимости)
5<$:QuestionBody:YYY (где YYY – само тело вопроса)
6<$:Variants:
71-й вариант ответа
82-й вариант ответа
.N-й вариант ответа
<$:RightAnswers:ZZZ (где ZZZ – строка правильных ответов)
<$:Difficulty:1 (не используется, добавлено для совместимости)
--/end/--
--/New Question/--
.
--/end/--
Пример файла для создания нового теста:
№ строки в файлеСодержание строки
1. Тест по школьной физике №3
2. <$:TestPortion:10
3. --/New Question/--
4. <$:QuestionType:1
5. <$:QuestionBody:Консервативной является...
6. <$:Variants:
7. сила тяжести
8. сила трения
9. сила Ампера
10. <$:RightAnswers:1 0 0
11. <$:Difficulty:1
12. --/end/--
13. --/New Question/--
14. <$:QuestionType:1
15. <$:QuestionBody:Индукция магнитного поля измеряется в СИ:
16. <$:Variants:
17. Тл (теслах)
18. Гн (генри)
19. Ф (фарадах)
20. <$:RightAnswers:1 0 0
21. <$:Difficulty:1
22. --/end/--
Замечание: Подробнее о формате файлов РВУ Вы можете прочитать в «Руководстве Администратора» При регистрации нового пользователя необходимы некоторые данные о нем. Эти данные будут использоваться преимущественно для связи с пользователем: при подтверждении регистрации, для выдачи логина и пароля и для связи преподавателя с пользователем. Данные пользователя. Форма 2.
  1. Имя;
  2. Отчество;
  3. Фамилия;
  4. Почтовый индекс;
  5. Край / регион;
  6. Город;
  7. Улица;
  8. Номер дома, квартиры;
  9. Email;
  10. Телефон (не обязательно).
4. Разработка информационного обеспечения задачи Разработка информационного обеспечения включает подготовку документов, со­держащих информацию, необходимую для решения задачи, и анализ этой инфор­мации. Такой анализ позволит произвести формализацию данных, которая имеет целью их однозначное определение для хранения, поиска и обработки во внутримашинной сфере. Для организации информационной базы будем использовать реляционную СУБД. Поэтому должна быть разработана логическая структура реляционной базы данных, на основе которой будет осуществляться решение задачи. Исполь­зуем процессный подход к разработке базы данных, определяя состав только тех данных, которые необходимы для получения выходной информации задачи 4.1. Информационный анализ предметной области и выделение информацион­ных объектов задачи. Произведем анализ исходной информации предметной области с целью определения состава и структуры информации для последующей формализации и построения информационно-логической модели данных (ИЛМ). Приведенные выше формы входных документов, а также дополнительные сведения из описания предметной области позволяют определить роль реквизитов во взаимосвязанной полученной информации. На основе такого анализа установим функциональные зависимости реквизитов в соответствии с рекомендациями и требованиями норма­лизации данных. Рассмотрим информацию, содержащуюся в форме регистрации пользователя (Форма 2). В ней содержатся реквизиты, общие для всей формы. Причем каждый из них имеет единственное значение. Среди этих реквизитов особую роль играет e-mail пользователя. Поскольку этот реквизит уникален, то есть его значение не может повториться, он играет роль идентификатора всей информации по пользователю, содержащейся в форме. Остальные рек­визиты однозначно опреде­ляются e-mail’ом пользователя. Помимо полученных от пользователя данных необходимо учитывать дату и сам факт регистрации, т.е. оплаты права на пользование услугами и выдачи пользователю логина и пароля. В целях экономии дискового пространства нужно завести реквизит уникальный номер пользователя , который будет связывать информацию о пользователе, о его логине/пароле и “истории” прохождения тестов. На основе проведенного анализа установим функциональные зависимости реквизи­тов регистрационной формы и отобразим их в таблице 2. Аналогично проанализируем информацию, содержащуюся в форме для создания нового теста (фор­ма 1). В соответствии с описа­нием предметной области установим функциональные зависимости их реквизитов (табл. 1). Таблица 1. Функциональные зависимости реквизитов формы создания нового теста.

Наименование реквизитов документа

Имя реквизита

Функциональные зависимости

Уникальный номер теста

Test_Un

Диплом: Создание тренажерно-тестирующей системы

Описание теста

Test_Cont

Имя теста

TestName

Директория вспомогательных файлов теста

TestDir

Количество задач, выводимых за тест

Test_Portion

Уникальный номер задачи

Task_Un

Номер задачи в тесте

Task_n

Формулировка задачи

Task_Cont

Уникальный номер ответа

Answ_Un

Номер ответа в задаче

Answ_n

Истинность ответа

Answ_True

Формулировка ответа

Answ_Cont

Таблица 2. Функциональные зависимости реквизитов формы регистрации.

Наименование реквизитов документа

Имя реквизита

Функциональные зависимости

Уникальный номер пользователя

Id

Диплом: Создание тренажерно-тестирующей системы

Имя

FName

Отчество

MName

Фамилия

LName

Почтовый индекс

Zip

Край / регион

Region

Город

City

Улица

Street

Номер дома, квартиры

House

Email

Email

Телефон

Phone

Логин

Login

Пароль

Pwd

Дата регистрации

RegData

Отметка о регистрации

Registered

После прохождения пользователем тестов появится информация о результате прохождения, которую тоже необходимо учитывать и хранить для статистики. Статистика будет вестись не только по пользователям но и по тестам. Кроме того, пользователь может иметь доступ к тесту (т.е. подписан на тест), а может не иметь. Данные статистики. Форма 3. 1. Идентификатор пользователя, проходившего тест; 2. идентификатор теста; 3. результат (количество баллов); 4. дата прохождения теста; 5. идентификатор задачи; 6. правильность ответа на задачу. Данные о правах пользователя на тест. Форма 4.
  1. Идентификатор пользователя;
  2. идентификатор теста;
  3. код доступа; (0 – не подписан, 1 – подписан, 2 – тест сдан)
Установим функциональные зависимости реквизитов, учитывая, что один и тот же пользователь может пройти различные тесты с различными результатами. Следовательно, эти данные не уникальны, кроме реквизита дата, при условии, что пользователь не может успеть физически пройти более одного теста за одну минуту (табл. 3). Таблица 3. Функциональные зависимости реквизитов данных статистики.

Наименование реквизитов документа

Имя реквизита

Функциональные зависимости

Идентификатор пользователя

Id

Диплом: Создание тренажерно-тестирующей системы

Идентификатор теста

Test_Un

Результат

Points

Дата

Data

Идентификатор задачи

Task_Un

Правильность ответа

Answ_True

Таблица 4. Информация о правах пользователя на тест.

Наименование реквизитов документа

Имя реквизита

Функциональные зависимости

Идентификатор пользователя

Id

Диплом: Создание тренажерно-тестирующей системы

Идентификатор теста

Test_Un

Код доступа

SubCodes

Выделение информационных объектов. Проанализируем установленные функциональные взаимосвязи реквизитов и установим для каждого из зависимых реквизитов, от каких реквизитов он зависит. Результаты отобразим в таблице соответствия зависимых (описательных) и ключевых реквизитов (табл. 5). Таблица 5. Соответствие описательных и ключевых реквизитов.

Описательные реквизиты

Ключевые реквизиты

Название ИО*, в который включается реквизит

Test_ContTest_UnТесты
TestNameTest_UnТесты
TestDirTest_UnТесты
Test_PortionTest_UnТесты
Task_nTask_Un, Test_UnЗадачи
Task_ContTask_UnЗадачи
Answ_nAnsw_Un, Test_UnОтветы
Answ_TrueAnsw_UnОтветы
Answ_ContAnsw_UnОтветы
FNameIdОбщая информация о пользователе
MNameIdОбщая информация о пользователе
LnameIdОбщая информация о пользователе
ZipIdОбщая информация о пользователе
RegionIdОбщая информация о пользователе
CityIdОбщая информация о пользователе
StreetIdОбщая информация о пользователе
HouseIdОбщая информация о пользователе
EmailIdОбщая информация о пользователе
PhoneIdОбщая информация о пользователе
RegisteredIdОбщая информация о пользователе
LoginIdЗарегистрированные пользователи
PwdIdЗарегистрированные пользователи
RegDataIdЗарегистрированные пользователи
PointsData, Test_Un, IdИстория пользователя
Answ_TrueTask_Un, Test_Un, IdИстория теста
SubCodesId, Test_UnПодписка на тесты
* ИО – информационный объект. Таблица 6. Реквизитный состав информационных объектов.

Реквизиты ИО

Признак ключа

Имя ИО

Название ИО

Семантика (описание)

Test_Un

Test_Cont

Test_Dir

TestName

Test_Portion

*TestComОписание тестовОбщие данные о тесте

Test_Un

Task_Un

Task_n

*

*

TestsТестыИнформация о тестах: какие задачи входят в тест

Task_Un

Task_Cont

*TasksЗадачиФормулировки задач

Answ_Un

Answ_n

Answ_True

Task_Un

*

*

AnswОтветыФормулировки ответов и их принадлежность к задачам

Id

FName

MNane

LName

Zip

Region

City

Street

House

Email

Phone

Registered

*UserRegПользователиОбщая информация о пользователе

Id

Login

Pwd

RegData

*UserLogЗарегистрированные пользователиЗарегистрированные пользователи

Id

Test_Un

Points

Data

*

*

*

TheHistory«История» (статистика) теста Информация о прохождении разными пользователями теста.

Id

Test_Un

Task_Un

Answ_True

*

*

*

History«История» (статистика) пользователяИнформация о прохождении разных тестов одним пользователем

Id

Test_Un

SubCodes

*

*

TestSubscribeПодписка на тестыПрава пользователя на тест
Таким образом, выделены все информационные объекты, отображающие данные, которые используются в рассматриваемой задаче. 4.2. Определение связей информационных объектов и построение ИЛМ. Связи между выявленными информационными объектами определяются реаль­ными отношениями между парами объектов, показанными в таблице 7. При их определении учитывались сведения из описания ПО и семантика ИО. В частно­сти, известно, что одному пользователю соответствует один логин и пароль, но много тестов для прохождения. Один тест могут проходить несколько пользователей. В одном тесте содержится несколько задач. Для одной задачи существует несколько вариантов ответа. У каждого варианта ответа есть только одна формулировка и т.д. Таблица 7. Связи информационных объектов.
Ключ связи

Главный ИО

Подчиненный ИО

Тип отношения

IdUserLogUserReg1:1
IdUserLogTheHistory1:M
IdUserLogHistory1:1
IdUserLogTestSubscribe1:M
Test_UnTestComTests1:M
Test_UnTestComTestSubscribe1:M
Test_UnTestComHistory1:M
Test_UnTestComTheHistory1:M
Task_UnTestsTasks1:M
Task_UnTestsAnsw1:M
Task_UnTestsHistory1:M
Графическое изображение ИЛМ, наглядно показывающей иерархические отношения подчиненности информационных объектов, приведено на рис. 1. Диплом: Создание тренажерно-тестирующей системы Рис. 1. ИЛМ данных, обеспечивающая решение задачи создания тренажерно-тестирующей системы для абитуриентов. 4.3. Определение логической структуры реляционной базы данных. Логическая структура реляционной базы данных определяется совокупностью логически взаимосвязанных реляционных таблиц. Каждая реляционная таблица имеет структуру, определяемую реквизитным составом одного из информацион­ных объектов полученной ИЛМ. Логические связи таблиц соответствуют струк­турным связям между объектами. Логическая структура реляционной базы данных, построенная на основе получен­ной ИЛМ, приведена в Приложении 1. На этой схеме реляционные таблицы пред­ставлены структурой, определяемой составом и последовательностью полей (атри­бутов). Ключевые поля отмечены знаком Диплом: Создание тренажерно-тестирующей системы . Логические связи изображены линиями между одинаковыми ключами связи. 4.4. Исходные данные контрольного примера. В качестве контрольного примера служит «Гостевой вход» и «пробный тест». Требования к данным контрольного примера - их представительность, учитыва­ющая особенности информации, указанные в описании предметной области. Такие данные должны обеспечить отладку алгоритма на компьютере и подтвердить работоспособность реализации алгоритма. В данных контрольного примера для рассматриваемой задачи должно быть предусмотрено, что одному тесту может соответствовать несколько задач, одной задаче – несколько вариантов ответа, из которых только один правильный. Если тестируемый ответит на вопрос, не отметив никакой из вариантов, то ответ считается неверным. Данные контрольного примера, предназначенные для тестиро­вания, отладки и демонстрации решения задачи, приведены в табл. 8 - 13. Таблица 8. Данные Test_Com.

Test_Cont

Test_Un

TestDir

TestName

Test_Portion

Пробный тест №1.1001%DOROOT%/tests/physics/Пробный тест.5
Таблица 9. Данные Tests.

Test_Un

Task_n

Task_Un

100111001
100121002
100131003
100141004
100151005
Таблица 10. Данные Tasks.

Task_Un

Task_Cont

1001Укажите формулу скорости равнозамедленного движения.
1002Закон Гука выражается формулой:
1003Консервативной является...
1004На каком рисунке правильно показан ход луча?
1005Индукция магнитного поля измеряется в СИ в:
Таблица 10. Данные Answ.

Answ_n

Answ_Un

Answ_True

Answ_Cont

Task_Un

110010<I>V = S/t</I>1001
210010<I>V = V<SUB>0</SUB>t - at<SUP>2</SUP>/2</I>1001
310011<I>V = V<SUB>0</SUB> - at</I>1001
110020<i>F = kx<sup>2</sup></i>1002
210020<i>F = kx<sup>2</sup>/2</i>1002
310021<img src = ./physics/DMP/image53.gif>1002
110031сила тяжести1003
210030сила трения1003
310030сила Ампера1003
110040<img src=./physics/GMO/image51.gif>1004
210041<img src=./physics/GMO/image52.gif>1004
310040<img src=./physics/GMO/image53.gif>1004
110051Тл (теслах)1005
210050Гн (генри)1005
310050Ф (фарадах)1005
Примечание: Таблицы UserReg, UserLog, History, TheHistory в данном примере не задействованы. 5. Разработка алгоритмов и технологии решения задачи Общие сведения о содержании и алгоритме решения задачи. По мере поступления документов, содержащих данные о тестах и теоретическому материалу, должен осуществляться ввод этих данных в БД или помещение html- страниц на сайт, где они должны храниться. Таким образом осуществляется накопление необходимой для решения задачи оперативно-учетной информации. Тест должен быть представлен пользователю в виде диалога, где будет представлена задача и несколько вариантов ответа к ней. Пользователь может выбрать один вариант и перейти к следующей задаче. При запросе теста пользователем задачи «тасуются», то есть определяется случайный порядок следования задач. Варианты ответа также «перемешиваются» во время запроса очередной задачи. Если пользователь не выбрал ни один из предложенных вариантов и перешел к следующей задаче, то это засчитывается как неверный ответ. 5.1. Технология ввода и накопления входной информации, обеспечивающей решение задачи. Для решения рассматриваемой задачи должен производиться ввод и накопление в БД оперативно-учетной информации о тестах и пользователях. Справочная информация должна хранится в html-файлах на сайте. В соответствии с этим технология ввода входной оперативной информации и решение рассматриваемой задачи с помощью базы данных приведены на рис. 2. Диплом: Создание тренажерно-тестирующей системы 5.2. Определение макета форм ввода-вывода. Для ввода информации о пользователе при его регистрации и идентификации должны быть разработаны экранные формы. Через них будет осуществляться ввод информации в базу данных. Форма для загрузки данных о пользователе при регистрации (см. форму 5) является простой однотабличной. Форма строится на базе таблицы UserReg, в которую и будут загружаться соответствующие поля. При внесении в базу данных о новом пользователе необходимо установить поле Registered в 0. Если пользователь получит разрешение на прохождение, то этот поле поменяем на 1. Поле Id будет заполняться автоматически при добавлении записи в таблицу. Макет формы ввода данных о пользователе при регистрации. Форма 5.
Имя(FName)
Отчество(MName)
Фамилия(LName)
Почтовый индекс(Zip)
Край/Регион(Region)
Город(City)
Улица(Street)
Номер дома, квартиры(House)
E-mail(Email)
Телефон*(Phone)
(* - не обязательно)
Для загрузки данных в таблицу UserLog и изменения записи в таблице UserReg будем использовать форму выдачи пользователю логина и пароля (форма 6). Эта форма связана с предыдущей формой по ключевому полю Id. После выдачи логина и пароля пользователю необходимо изменить поле Registered записи о нем в таблице UserReg с 0 на 1. Макет формы выдачи пользователю логина и пароля. Форма 6.

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

(Претенденты на получение логина и пароля)

Выберите пользователя, которому выдать логин и пароль:

Фамилия (LName)

Имя (FName)

Отчество (MName)

E-mail (Email)

ИвановИванИванович
. . .
ПетровПетрПетрович

Логин

(Login)

Пароль

(Pwd)

Выдать

Для входа в систему нужна форма, принимающая логин и пароль пользователя для проверки их в базе данных (форма 7). Это простая форма, связанная с таблицей UserLog полями Login и Pwd. Макет формы идентификации. Форма 7.
Логин:(Login)
Пароль:(Pwd)
ВойтиОчистить
Для добавления нового теста в базу данных используется форма 8. Ей необходимо указать только имя файла с добавляемым тестом. Формат файла определен выше. Эта форма наполняет и связывает таблицы TestCom, Tests, Tasks, Answ. Макет формы добавления нового теста. Форма 7.

Имя файла с тестом

С:\.\test23.txt

Создать тест

Очистить

5.3. Обобщенный алгоритм решения задачи и его декомпозиция на модули (функции). Из рисунка 2 видна общая декомпозиция задачи на модули. Рассмотрим систему тестирования пользователя. При входе в систему пользователь вводит свой логин и пароль. По этим данным из базы данных необходимо получить уникальный номер пользователя (Id), этот номер, в свою очередь, будет передан тестирующему модулю системы вместе с уникальным номером теста (Test_Un), запрошенного пользователем. Отображать вопросы (задачи) теста будем дозировано, т.е. по одной задаче за раз. Функционально-технологическая схема и алгоритм тестирования. Диплом: Создание тренажерно-тестирующей системы Рис. 3. Общая функционально-технологическая схема подсистемы тестирования. Подсистема тестирования может быть разбита на несколько основных этапов - модулей, реализуемых средствами СУБД (запросы, отчеты). Блок-схема алгоритма подсистемы тестирования приведена на рис. 4. Диплом: Создание тренажерно-тестирующей системы Рис. 4. Блок-схема алгоритма подсистемы тестирования 5.4. Детальные алгоритмы реализации отдельных модулей задачи. Модуль 1.1. Проверка логина и пароля. На входе имеем: login – логин пользователя, password – пароль пользователя. Посылам запрос к SQL серверу: SELECT * FROM UserReg, UserLog WHERE Login = ‘login’ AND Pwd = ‘password’ AND UserReg.Id = UserLog.Id Если результат запроса не пустой, то считаем, что пользователь авторизовался успешно, также в результате запроса имеем все его данные – ФИО, адрес, . Модуль 1.2 Формирование теста. На входе имеем: Test_Un – номер теста, который выбрал пользователь для прохождения. Посылам запрос к SQL серверу: SELECT Task_Un FROM Tests WHERE Test_Un = Test_Un В результате получаем набор (массив) номеров задач, которые соответствуют этому тесту. Модуль 1.3. Установка случайного порядка следования задач. Необходимо узнать, сколько задач нужно выдать пользователю. Посылам запрос к SQL серверу: SELECT Test_Portion FROM TestCom WHERE Test_Un = Test_Un Результат запомним в Portion. «Перемешиваем» массив задач, полученный на предыдущем шаге, и оставляем только Portion из них. Модуль 1.4. Установка случайного порядка следования ответов. На входе: Task_Un – номер задачи, для которой выбираем ответы. Посылам запрос к SQL серверу: SELECT * FROM Answ WHERE Task_Un = Task_Un Результат – массив ответов, который также «перемешиваем». Модуль 1.5. Отображение задачи и вариантов ответов. На входе: Task_Un – номер задачи, текст которой нужно вывести. Answers – массив вариантов ответов для этой задачи. Посылам запрос к SQL серверу: SELECT Task_Cont FROM Tasks WHERE Task_Un = Task_Un Результат – тело задачи в формате HTML, его и выводим. Для каждого варианта ответа посылам запрос к SQL серверу: SELECT Answ_Cont FROM Answ WHERE Answ_Un = Answers[i] Результат – тело варианта ответа в формате HTML, его и выводим. Модуль 1.6. Проверка правильности ответов и вывод результата теста. На входе: Answer – номер ответа, который выбрал пользователь. Посылам запрос к SQL серверу: SELECT Answ_True FROM Answ WHERE Answ_Un = Answer Результат – 0 (не правильный) или 1 (правильный) ответ. Этот результат заносим в таблицу History и храним до конца теста. После того, как пользователь ответит на все предложенные вопросы, нужно посчитать, сколько раз он ответил правильно (n), и сколько всего вопросов было (m). После чего выводим итог: «Ваш результат n баллов из m». 6. Руководство администратора 6.1. Системные и технические требования Для работы системы необходимо наличие следующего программного обеспечения на сервере:
  • OS Windows (Server Family);
  • MSSQL Server 7.0 или выше;
  • Apache Win32 / PHP 4.0 или выше;
Вместо Apache можно использовать и другой веб-сервер, например MS IIS, единственное требование – поддержка PHP хотя бы на уровне CGI. 6.2. Подготовка к работе 6.2.1 Подготовка веб-сервера. Для начала работы необходимо скопировать файлы системы в каталог %Apache%/htdocs/do/, где %Apache% – установочный каталог веб сервера. Далее все пути на диске будут указываться относительно каталога %Apache%/htdocs/. 6.2.2 Подготовка базы данных.
  1. Создаем в MSSQL Server базу данных и называем ее DO.
  2. В базе данных DO создаем пользователя с логином do_user и паролем www123 . Естественно, что пароль стоит выбрать более сложный. Эти данные – пример. Логин и пароль для доступа к базе данных используются в файле do/bin/admin/register.php
  3. Создаем в базе DO хранимую процедуру CreateAllTables, текст которой можно посмотреть в файле do/tsql/CreateAllTables.sql, и выполняем эту процедуру. В результате создадутся все необходимые для работы системы таблицы.
  4. Создаем в базе DO хранимую процедуру DropAllTables, текст которой можно посмотреть в файле do/tsql/DropAllTables.sql. Результатом этой процедуры будет полное удаление всех таблиц, созданных процедурой CreateAllTables, и дынных в них. Сейчас эту процедуру выполнять не нужно. Она нужна при удалении системы.
  5. Для добавления тестов по физике, необходимо создать в базе DO ряд хранимых процедур, тексты которых приведены в файлах вида do/tsql/phys/nn_CreateTestXXX.sql , где nn – номер теста; XXX – сокращенное название теста. Создаем хранимую процедуру CreateAllTests (do/tsql/phys/ CreateAllTests.sql), которая создаст 17 тестов по физике: 1 пробный, 15 тренажерных и 1 экзаменационный. Создаем процедуру DeleteAllTests (do/tsql/phys/DeleteAlllTests.sql), которая удаляет все, созданное процедурой CreateAllTests.
  6. Теперь необходимо дать права пользователю базы данных do_user на операции SELECT, UPDATE, INSERT, DELETE во всех таблицах, созданных процедурой CreateAllTables.
6.3. Вход в систему На сайте системы выбираем раздел «Вход». Появится форма как на рисунке 1. Диплом: Создание тренажерно-тестирующей системы Рис. 1. Форма авторизации. В появившейся форме авторизации вводим логин и пароль администратора. Эти данные хранятся не в базе данных, а в файле do/bin/user/logon.php, для того, чтобы администратор смог авторизоваться, даже если база данных не доступна. В случае успешной авторизации появится меню Администрирование:
  • Просмотр таблиц пользователей
    • Посмотреть таблицу UserReg (просмотр всех зарегистрированных пользователей)
    • Посмотреть таблицу UserLog (просмотр всех пользователей, подавших заявку на регистрацию)
  • Работа с пользователями
    • Добавить пользователя в UserLog (зарегистрировать пользователя, подавшего заявку на регистрацию)
    • Подписать пользователя на тест (дать доступ пользователю к определенному тесту)
    • Удалить пользователя (удалить пользователя из системы вместе со всей историей прохождения тестов)
    • Удалить «просроченных» пользователей (как предыдущий пункт, но для пользователей, которые находятся в системе больше месяца)
  • Тесты
    • Добавить новый тест
    • Создать тесты Калистратовой (создать тесты по физике, которые были описаны в процедуре CreateAllTests)
    • Удалить тесты Калистратовой (соответственно DeleteAllTests)
  • Статистика
    • По тестам (кем и когда проходился определенный тест)
    • По пользователям (какие тесты и когда проходил определенный пользователь)
    • Список всех пользователей (список ФИО, логин, пароль)
6.4. Просмотр таблиц пользователей Выбрав пункт меню администратора «Посмотреть таблицу UserReg», можно посмотреть таблицу UserReg, в которой находятся все данные о пользователях: ФИО, адрес, e-mail, телефон и т.д. как на рис. 2. Диплом: Создание тренажерно-тестирующей системы Рис. 2. Данные таблицы UserReg. Выбрав пункт меню администратора «Посмотреть таблицу UserLog», можно посмотреть таблицу UserLog, в которой представлена информация о зарегистрированных пользователях: логин, пароль, дата регистрации как на рис. 3. Диплом: Создание тренажерно-тестирующей системы Рис. 3. Данные таблицы UserReg. 6.5. Работа с пользователями 6.5.1 Общие положения Когда пользователь заполняет форму регистрации и нажимает кнопку «Отослать», ему приходит подтверждение в виде письма на указанный e-mail. Дальше пользователь ждет, когда его зарегистрирует администратор и вышлет логин и пароль для входа в систему. В случае, если система будет платной, то администратор ждет оплаты за пользование системой, после чего регистрирует пользователя. По умолчанию пользователь не имеет доступа ни к каким тестам системы. Для того, чтобы пользователь получил доступ к тесту, его (пользователя) необходимо «подписать» на этот тест. После того, как пользователь прошел тест, он снова теряет доступ к нему. 6.5.2 Регистрация пользователя. В меню администратора выбираем пункт «Добавить пользователя в UserLog». Появится форма как на рис. 4. Диплом: Создание тренажерно-тестирующей системы Рис. 4. Форма поиска пользователей. В приведенной форме можно ввести данные пользователя, чтобы его было легче найти, или оставить все поля пустыми. Нажимаем кнопку «Найти». Появится список всех (если поля формы остались пустыми) пользователей, которые в данный момент ожидают регистрации (рис. 5) Диплом: Создание тренажерно-тестирующей системы Рис. 5. Выбор пользователя для регистрации его в системе. Необходимо выбрать одного из них, указать его логин и пароль и нажать на кнопку «Зарегистрировать». После чего система посылает письмо пользователю с подтверждением факта регистрации и его данными для входа в систему. 6.5.3 Подписка пользователя на тест В меню администратора выбираем пункт «Подписать пользователя на тест». В появившейся форме (рис. 4) можно ввести данные пользователя, чтобы его было легче найти, или оставить все поля пустыми. Нажимаем кнопку «Найти». Появится список всех (если поля формы остались пустыми) пользователей, которые зарегистрированы в системе (рис. 6). Диплом: Создание тренажерно-тестирующей системы Рис. 6. Выбор пользователя для «подписки» на тест. Выбираем одного пользователя и нажимаем «Подписать». Появится список тестов, на которые можно подписать выбранного пользователя. Если пользователь уже подписан на этот тест, то напротив названия таста будет пометка – «подписан» (если тест сдан, то пометка – «сдан») как на рис. 7. Диплом: Создание тренажерно-тестирующей системы Рис. 7. Выбор теста(ов), на который(е) нужно подписать пользователя. Отмечаем нужные тесты и нажимаем «Подписать». После этого пользователь получает доступ к выбранным тестам. 6.5.4 Удаление пользователя В меню администратора выбираем пункт «Удалить пользователя». В приведенной форме (рис. 4) можно ввести данные пользователя, чтобы его было легче найти, или оставить все поля пустыми. Нажимаем кнопку «Найти». Появится список всех (если поля формы остались пустыми) пользователей, которые зарегистрированы в системе. Выбираем одного пользователя и нажимаем «Удалить». После этого пользователь полностью удален из системы со всей историей прохождения тестов. 6.5.5 Удаление «просроченных» пользователей В меню администратора выбираем пункт «Удалить просроченных пользователей». Появится список всех зарегистрированных пользователей, которые были зарегистрированы в системе более месяца назад. Диплом: Создание тренажерно-тестирующей системы Рис. 8. Удаление «просроченных» пользователей. Нажатие кнопки «Удалить» приведет к удалению (как в пункте выше) всех «просроченных» пользователей. 6.6. Работа с тестами 6.6.1 Формат тестов РВУ Информация в файле с вопросами имеет блочную структуру. Каждый блок содержит полную информацию об одном вопросе. Внутри блока информация организована по строкам, назначение которых определяется внутренним стандартом. Первая строка файла должна содержать имя группы вопросов. Формат строки: имя группы вопросов. Примечание: в случае, если такая группа уже существует, то вопросы будут к ней добавлены. Далее следуют блоки вопросов. Каждый вопрос обладает рядом обязательных характеристик, которые должны быть описаны в соответствующих строках файла импорта. Примечание: в строках блока, описывающих характеристики вопроса, перед каждым полем обязательно устанавливается указатель поля «<$:». Система РВУ поддерживает следующие форматы вопросов:
  1. Выбор из списка единственного правильного ответа;
  2. Выбор из списка нескольких правильных ответов;
  3. Ввод некоторых данных, которые впоследствии будут сравнены с заложенным "эталоном"
  4. Ответ на естественном языке;
  5. Последовательность.
В случае необходимости могут быть заданы дополнительные форматы (после согласования с Консалтинговым центром РСОО). В каждом блоке должно быть описано несколько обязательных для любого формата вопросов строк:
  • Формат строки:--/New Question/-- Назначение: указывает на начало блока информации о вопросе. Примечание: любой вопрос должен начинаться этой строкой.
  • Формат строки: <$:QuestionType:N Назначение:описывает поле QuestionType, которое задает вариант формата заносимого вопроса в виде натурального числа N из диапазона [1, 5]. Примечание:форматы вопросов разрабатываются в Консалтинговом центре РСОО.
  • Формат строки: <$:QuestionBody: текст вопроса.
Назначение: описывает поле QuestionBody, которое содержит формулировку основного задания (условия) вопроса. Примечание:указывается в одну строку (макс. 64000 символов).
  • Формат строки: <$:Difficulty:N Назначение: описывает поле Difficulty, которое отражает сложность вопроса. Примечание:сложность вопроса задается в виде числа N, где N - натуральное число из диапазона [1, 10].
  • Формат строки: --/End/-- Назначение: указывает на конец блока информации о вопросе.
Также может задаваться время ответа на вопрос. Если эта строка отсутствует, то тогда считается, что время на ответ ограничено лишь временем отпущенным на все тестирование:
  • Формат строки: <$:AnswerTime:N Назначение: описывает поле AnswerTime, которое задает время на ответ в секундах. Примечание:сложность вопроса задается в виде числа N, где N - натуральное число из диапазона от 1 до разумного предела.
В зависимости от формата вопроса в блоке должны присутствовать следующие строки:
  • Для форматов «1», «2» и «5»:
    • Формат строки: <$:Variants: Назначение: описывает поле Variants, которое содержит варианты ответов на вопрос. Примечание: Варианты ответа начинаются на следующей строке и каждый вариант ответа должен располагаться на отдельной строке.
    • Формат строки: <$:RightAnswers: маска ответов Назначение: описывает поле RightAnswers, которое служит для указания маски правильных и неправильных ответов. Маска ответов - это последовательность следующих друг за другом через пробел целых чисел без знака. Порядок следования чисел в маске должен соответствовать порядку расположения вариантов ответов. Примечание: количество чисел в данном поле соответствует количеству вариантов ответов. Для форматов «1» и «2» в качестве чисел используется только «0» и «1»
      • если вариант ответа ложный, то в маске нужно поставить 0;
      • если вариант ответа правильный, то в маске нужно поставить 1.
Для формата «5» используются натуральные числа, где каждое число это порядковый номер, определяющий правильное положение варианта в последовательности.
  • Для формата «3»:
    • Формат строки: <$:EditableVariant: текст для редактирования Назначение: описывает поле EditableVariant, которое содержит текст предлагаемый пользователю для редактирования. Примечание: Этот текст при проверке будет сравниваться с введенным эталоном.
    • Формат строки: <$:RightAnswer:"эталон" для сравнения Назначение: описывает поле RightAnswer, которое служит для указания "эталона". Примечание: С этим текстом сравнивается отредактированный пользователем текст.
  • Для формата «4» никаких дополнительных полей не нужно.
6.6.2 Добавление нового теста Для добавления в систему нового теста (группы вопросов) необходимо создать текстовый файл в формате РВУ (формат описан выше). При желании можно воспользоваться программой «RVUWizard_v.1.1», дистрибутив которой можно найти на сайте ЦИМПО в разделе «Полезные ресурсы» (http://212.192.35.213/cimes/resources/). Пример работы программы «RVUWizard_v.1.1» на рис. 9. Диплом: Создание тренажерно-тестирующей системы Рис. 9. Программа «RVUWizard_v.1.1» Замечание: данная система поддерживает вопросы с единственным верным вариантом ответа (тип вопроса – «1»). После создания файла, необходимо в меню администратора выбрать пункт «Добавить новый тест». Появится форма как на рис. 10. Диплом: Создание тренажерно-тестирующей системы Рис. 10. Форма добавления нового теста. В предложенной форме необходимо:
  • выбрать категорию теста (к какому предмету относится тест или группа вопросов),
  • нажать кнопку «Browse»,
  • выбрать созданный файл
  • нажать на кнопку «Создать».
Если формат файла правильный и не произошло никаких ошибок передачи данных, то создаст в базе данных новый тест. В случае ошибки новый тест создан не будет и система выдаст сообщение с пояснительной информацией. 6.7. Статистика 6.7.1 По тестам Статистика по тестам – кем и когда проходился определенный тест. В меню администратора в разделе «Статистика» выбрать пункт «По тестам». На выбор будет предложено несколько дисциплин (предметов) как на рис. 11. Диплом: Создание тренажерно-тестирующей системы Рис .11. Выбор дисциплины (предмета). Необходимо выбрать одну дисциплину, нажав на кнопку «>>». Появится список тестов , связанных с выбранной дисциплиной (рис. 12). Диплом: Создание тренажерно-тестирующей системы Рис. 12. Выбор теста, связанного с выбранной дисциплиной. Далее нужно выбрать один из предложенных тестов. Появится список пользователей, проходивших выбранный тест, дата прохождения, количество баллов, логин и номер пользователя (рис. 13). Диплом: Создание тренажерно-тестирующей системы Рис. 13. Статистика по тесту. При необходимости можно задать критерий поиска пользователей в форме, расположенной вверху таблицы. Например: показывать всех пользователей, проходивших этот тест сегодня. Также можно отсортировать полученный результат по любому из столбцов таблицы. Если щелкнуть мышкой по одному из пользователей в столбце «ФИО», то перейдем в общую статистику по пользователю. 6.7.2 По пользователям Статистика по пользователям – какие тесты и когда проходил определенный пользователь. В меню администратора в разделе «Статистика» выбрать пункт «По пользователям». Будет выведен список пользователей, зарегистрированных в системе (рис. 14). Диплом: Создание тренажерно-тестирующей системы Рис. 14. Список пользователей. Необходимо выбрать одного из пользователей и нажать кнопку “>>”. Появится список всех тестов, которые проходил выбранный пользователь в формате:
  • название теста
  • количество баллов
  • дата прохождения
или фраза «Пусто», если пользователь еще не проходил ни одного теста (рис. 15). Диплом: Создание тренажерно-тестирующей системы Рис. 15. Общая статистика для выбранного пользователя. 6.7.3 Список всех пользователей Для того, чтобы посмотреть полный список зарегистрированных в системе пользователей, нужно в меню администратора в разделе «Статистика» выбрать пункт «Список всех пользователей» получим результат, как на рис. 16. Диплом: Создание тренажерно-тестирующей системы Можно отсортировать полученный результат по любому из столбцов таблицы. Приложение 1. Логическая структура реляционной базы данных задачи. Диплом: Создание тренажерно-тестирующей системы 7. Литература. 1. Евдокимов В.В. и др. Экономическая информатика. Учебник для вузов. Под редакцией д.э.н., проф. В.В. Евдокимова. – СПб.: Питер, 1997. – 592с. ил. 2. Лекции по базам данных. Зыкин. ОмГУ, 2002. 3. Карпова И.П. Исследование и разработка подсистемы контроля знаний в распределенных автоматизированных обучающих системах. Москва, 2002. 4. Кнут Д. Искусство программирования для ЭВМ / т.3. Сортировка и поиск / Пер. с англ. / Под ред. Баяковского и Штаркмана. – М.: Мир, 1978. – 848 с. 5. Microsoft Developer Network. Microsoft Corp. 2002. 6. PHP Manual. 1997, 1998, 1999, 2000, 2001, 2002 the PHP Documentation Group.


(C) 2009