Сетевая система контроля знаний студентов на основе объектно-ориентированного подхода. Выбор программно-технических средств для реализации проекта. Алгоритмическое и программное обеспечение, интерфейс пользователя. Разработка элементов базы данных.
Аннотация к работе
2.1 Системы контроля знаний 2.1.1 Система контроля знаний knost 2.1.2 Сетевая система контроля знаний на основе объектно-ориентированного подхода 2.3 Выбор программно-технических средств для реализации проекта 2.3.
Список литературы
Приложения
1. Введение
По оценке некоторых зарубежных специалистов, трудоемкость может в 10 раз превышать работу, проделанную при написании учебника. Но это лишь на первом этапе. С другой стороны, традиционный способ проверки вообще не выдерживает сравнения с автоматизированным его аналогом, так как носит эпизодический, субъективный и фрагментарный характер. Так, экспериментально установлено, что оптимальным является 6-8 циклов текущего контроля, что обеспечивает высокую успеваемость студентов и достигается лишь с помощью автоматизированных (компьютерных) систем, позволяющих осуществлять более всестороннюю и полную проверку уровня обученности студентов. Кроме того, возникает возможность оперативно обрабатывать результаты контроля без дополнительных затрат времени преподавателя, что обеспечивает рациональное планирование учебного процесса.
В данном дипломном проекте рассмотрены разработка и внедрение базы данных для контроля знаний студентов Сергиево-Посадского киновидеотехнического колледжа. Специальная направленность предметов в киновидеотехническом колледже не позволила использовать уже имеющиеся программы для тестирования. За короткий срок пришлось изучить методы разработки систем контроля знаний и написать свою базу данных, удовлетворяющую всем требованиям учебно-методического процесса Сергиево-Посадского киновидеотехнического колледжа.
2. Обзор существующих программ
2.1 Системы контроля знаний
В настоящее время существует большое количество систем контроля знаний, как выполненных в виде отдельных программных продуктов, так и встроенных в обучающие системы. Отсутствие стандарта или хотя бы общепринятых норм и правил написания таких систем привело к тому, что практически каждая из них является "вещью в себе" и используется, за редким исключением, только ее собственными разработчиками. А это зачастую происходит изза специфичности образования в том или ином учебном заведении.
2.1.1 Система контроля знаний knost
Система контроля знаний knost предназначена для создания тестов в электронном виде, для тестирования и для просмотра результатов тестирования. Она может применяться в учебных заведениях, а также на предприятиях с целью контроля уровня знаний персонала.
Под тестом в системе подразумевается набор вопросов, количество которых практически не ограничено (фактически число вопросов ограничено примерно двумя миллиардами). У теста также есть название. Каждый вопрос может содержать: - вопрос - многострочный текст, длина которого ограничена величиной 2 Гбайта
- картинку
- список вариантов ответа
У каждого вопроса может быть свое количество вариантов ответа. Максимальное число вариантов ответа на один вопрос составляет примерно 2 млрд. Каждому варианту ответа ставится в соответствие количество баллов, которое дается за данный вариант ответа. "Правильным" считается тот вариант ответа, которому соответствует максимальный балл. В частности, может быть несколько вариантов правильного ответа.
Система состоит из двух программ: модуль администратора и модуль тестирования. Основные функции системы: а) создание теста;
б) Тестирование локальное (одиночное);
в) Тестирование удаленное;
г) Просмотр результатов тестирования.
В модуле администратора создается тест, который сохраняется в файле с расширением *. knt. В этом же модуле можно затем и протестироваться чтобы посмотреть, как работает созданный тест и исправить возможные ошибки.
Тестируемый (студент) с помощью модуля тестирования открывает файл теста (с расширением *. knt). Затем вводит свое имя и выбирает правильные, на его взгляд, варианты ответов. Порядок вопросов в тесте и порядок вариантов ответа на каждый вопрос случайным образом меняются. Это предохранит тестируемого от простого механического заучивания номеров правильных ответов при повторной сдаче теста, как это иногда бывает. Результаты тестирования сохраняются в файлах с расширением *. knr.
Удаленное тестирование применяется при тестировании группы студентов. Каждый тестируемый запускает модуль тестирования, выбирает режим удаленного тестирования, вводит свое имя, имя компьютера преподавателя (или его IP-адрес) и нажимает кнопку "Готов!". В свою очередь преподаватель запускает модуль администратора, выбирает режим удаленного тестирования и выбирает тест и место (каталог), куда записывать результаты тестирования. В таблице будет видно, какие студенты подключены. Преподаватель может указать ограничение по времени тестирования. После нажатия на кнопку "Пуск", на клиентских компьютерах начинает выполняться тест, и завершается или по истечении времени тестирования, или при досрочном завершении теста студентом, или - же при нажатии преподавателем кнопки "Стоп". В последнем случае тест завершится на всех подключенных компьютерах.
Для просмотра результатов тестирования в модуле администратора открывается файл результатов тестирования (с расширением *. knt). При этом можно видеть, какой вариант ответа выбирал тестируемый на каждый вопрос и сколько баллов он набрал. В программе рассчитывается "коэффициент знаний", который представляет собой результат деления числа баллов, набранных тестируемым, на максимально возможное количество баллов в этом тесте. То есть, этот коэффициент может принимать значение от нуля до единицы. Оценка по пятибалльной шкале считается как округленное значение произведения коэффициента знаний на 5.
Удобный и наглядный интерфейс программы. Программа занимает мало места и абсолютно не требовательна к ресурсам компьютера и сети. К недостаткам можно отнести то, что бесплатная версия не позволяет тестировать в сети более трех человек. [20]
2.1.2 Сетевая система контроля знаний на основе объектно-ориентированного подхода
Данная система имеет трехзвенную архитектуру. Целью этой технологии является снижение требований к клиентским компьютерам, для этого значительная часть программных ресурсов клиента переносится в промежуточное звено - сервер приложений. Сервер приложений располагается на компьютере, где находится БД с тестами или на выделенном сетевом компьютере. Только он с помощью BDE непосредственно взаимодействует с БД, реализуя посредничество между ними и остальными клиентскими местами (Рисунок 2.1).
Рисунок 2.1 - Схема трехзвенной архитектуры
В этой архитектуре клиентское программное обеспечение не обращается к BDE и освобождается от значительного слоя компонентов-источников. В результате получается "облегченный" клиент, который не требует больших ресурсов памяти, существенно снижается сетевой трафик за счет отложенного обновления и регулируемого объемов пакетов данных.
Передача данных осуществляется с помощью сокетов. Сокеты - это набор API-функций Windows, c помощью которых можно установить связь между двумя программами, запущенными на разных компьютерах. Процесс, который использует сокетное соединение с сетью, называется хостом. Клиент обращается к конкретному хосту, указывая его имя. Это имя должно быть уникальным в сети. Имя может быть цифровым или символьным.
Стандартизованный контроль знаний выполняется с помощью тестов. В общем случае, когда проверку результатов теста осуществляет человек, тест - это набор вопросов и правильных ответов к ним (эталонов). Если же определение правильности ответа возлагается на ЭВМ, необходимо включить в тест набор параметров, управляющих алгоритмами проверки выполнения теста.
Если рассматривать отдельный сеанс, то он состоит из трех этапов: а) подготовка заданий для контроля;
б) проведение опроса;
в) оценка полученных результатов.
Такая система контроля знаний позволяет: проводить групповое компьютерное тестирование по произвольной тематике; вести базу данных проведенных тестирований; производить автоматическое выставление оценок по полученным результатам тестирований; составлять отчеты по результатам тестирований и распечатывать их; быстро и легко разрабатывать новые тесты по произвольной тематике; вести разработку тестов, направленных на достижение объективности оценки знаний.
Система может функционировать в одном из двух режимов: однопользовательский режим (персональное тестирование); многопользовательский режим (групповое тестирование). Многопользовательский режим реализован на базе клиент-серверной технологии с использованием протокола TCP/IP.
Данная система снабжена эффективным, а главное простым механизмом разработки тестов (для этого создана программа Место Разработчика).
Имеется возможность подробно проанализировать результаты всех проведенных сеансов тестирований и сгенерировать ряд необходимых отчетов (для этого создана программа Место Преподавателя).
Таким образом, система для проведения компьютерного тестирования, состоит из трех, дополняющих друг друга, программных продуктов.
Состав программного пакета: Место Разработчика, Место Пользователя, Место Преподавателя.
Место Разработчика предназначено для создания новых тестов и редактирования старых. Обладает простым и эффективным механизмом для разработки новых тестов.
Место Пользователя служит для проведения тестирований (Рисунок 2.2).
Место Преподавателя используется для выставления оценок за тестирования, составления отчетов по результатам тестирований, настройки Места Пользователя для проведения следующего тестирования, оценки качества тестов.
Созданный сервер занимается обслуживанием тестируемых и преподавателей по сетевому протоколу TCP/IP (протокол обмена информацией в INTERNET) при функционировании пакета в клиент-серверном режиме.
Данные передаются в зашифрованном виде. Для шифровки используется хорошо известный прием двойного наложения битовой маски на один и тот же байт, с помощью операции XOR: после первичного наложения получаем зашифрованный байт, а после второго - первоначальный байт.
Место Пользователя и Место Преподавателя разработаны таким образом, что могут работать, как с локальными данными и пользователями (персональное тестирование), так и с "удаленными" данными и пользователями.
Рисунок 2.2 - Главное окно программы
2.1.3 Анализ существующих систем контроля знаний
Анализ как приведенных выше, так и других доступных систем контроля знаний выявил их следующие недостатки: а) ограниченное количество ответов. Не во всех системах реализованы даже основные формы представления ответов. б) отсутствие формальных методов дифференцированной оценки ответов. в) слабые возможности параметрической настройки теста. г) многие системы контроля знаний предоставляют возможности удаленного тестирования, но возможности таких систем еще более ограничены по сравнению с локальными системами контроля знаний. д) многие программы или дополнительные модули к ним являются платными.
Исходя из вышеописанного, было принято решение для тестирования студентов Сергиево-Посадского киновидеотехнического колледжа написать новую программу, которая бы удовлетворяла всем особенностям и специфике учебного процесса данного заведения.
2.2 Исследование методов проектирования баз данных
Все тонкости построения информационной модели преследуют одну-единственную цель - получить хорошую базу данных.
Существует очень простое понятие базы данных как большого по объему хранилища, в которое организация помещает все используемые ею данные и из которого различные пользователи могут их получать, используя различные приложения. Такая единая база данных представляется идеальным вариантом, хотя на практике это решение по различным причинам труднодостижимо. Поэтому чаще всего под базой данных понимают любой набор хранящихся в компьютере взаимосвязанных данных.
В основу проектирования баз данных должны быть положены представления конечных пользователей конкретной организации - концептуальные требования к системе. Именно конечный пользователь в своей работе принимает решения с учетом получаемой в результате доступа к базе данных информации. От оперативности и качества этой информации будет зависеть эффективность работы организации. Данные, помещаемые в базу данных, также предоставляет конечный пользователь. [23]
При рассмотрении требований конечных пользователей необходимо принимать во внимание следующее: - база данных должна удовлетворять актуальным информационным потребностям организации. Получаемая информация должна по структуре и содержанию соответствовать решаемым задачам;
- база данных должна обеспечивать получение требуемых данных за приемлемое время, то есть отвечать заданным требованиям производительности;
- база данных должна удовлетворять выявленным и вновь возникающим требованиям конечных пользователей;
- база данных должна легко расширяться при реорганизации и расширении предметной области;
- база данных должна легко изменяться при изменении программной и аппаратной среды;
- загруженные в базу данных корректные данные должны оставаться корректными;
- данные до включения в базу данных должны проверяться на достоверность;
- доступ к данным, размещаемым в базе данных, должны иметь только лица с соответствующими полномочиями.
Этапы проектирования базы данных с учетом рассмотренных выше аспектов мы сейчас и рассмотрим.
Этап 1 - проектирование концептуальной модели баз данных: а) анализ данных: сбор основных данных (например, объекты, связи между объектами);
б) существующие прикладные программы: сбор информации о данных в существующих прикладных программах для определения объектов и их взаимосвязей;
в) потенциально возможные прикладные программы: сбор информации о потенциальных возможностях использования данных.
Этап 2 - проектирование логической модели данных с учетом требований СУБД и определяемых конкретным пакетом СУБД процедур.
Этап 3 - проектирование физической модели базы данных.
Этап 4 - оценка физической модели базы данных (на основе оценки эксплуатационных характеристик прикладных программ с учетом частоты использования приоритетов).
При неудовлетворительных оценках эксплуатационных характеристик - возврат на этапы 2 или 3.
Этап 5 - реализация базы данных
В результате анализа поставленной заказчиком задачи и обработки требований конечных пользователей составляется концептуальная модель.
При разработке логической модели базы данных прежде всего необходимо решить, какая модель данных наиболее подходит для отображения конкретной концептуальной модели предметной области. Коммерческие системы управления базами данных поддерживают одну из известных моделей данных или некоторую их комбинацию. Почти что все популярные системы для персональных компьютеров поддерживают реляционную модель данных.
Отображение концептуальной модели данных на реляционную модель производится относительно просто. Каждый прямоугольник концептуальной модели отображается в одно отношение, которое отражает представление пользователя в удобном для него табличном формате. Простота отображения связана с тем, что при разработке концептуальной модели использовался реляционный подход.
2.3 Выбор программно-технических средств для реализации проекта
Как только мы задумываемся о каком-либо упорядоченном архивировании информации, мы неизбежно приходим к мысли о создании базы данных. Создав ее, например, в Microsoft Access, мы, облегченно вздыхаем и на какое-то время успокаиваемся. Но это спокойствие длится не долго. И вот на нашем горизонте уже маячит следующая задача, продиктованная жизненной необходимостью, - нужно обеспечить доступ к этим данным через Internet с рабочих станций, на которых, вполне возможно установлены, различные ОС. Естественно не мы первые, кому необходимо разрешить задачу подобного рода. Опыта других людей и средств для разрешения этой проблемы довольно много. Мы воспользуемся языком, который позволяет пользователям, знающим один набор команд, использовать их, чтобы создавать, отыскивать, изменять, и передавать информацию, независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ.
SQL символизирует собой структурированный язык рзапросов. Это язык, который дает вам возможность создавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах. [23]
2.3.1 MYSQL
Клиентская программа MYSQL представляет собой утилиту командной строки. Эта программа подключается к серверу по сети. Команды, выполняемые сервером, обычно связаны с чтением и записью данных на жестком диске.
Клиентские программы могут работать не только в режиме командной строки. Есть и графические клиенты, например MYSQL GUI, PHPMYADMIN и другие.
MYSQL взаимодействует с базой данных на языке, называемом SQL.
SQL предназначен для манипуляции данными, которые хранятся в Системах управления реляционными базами данных (RDBMS). SQL имеет команды, с помощью которых данные можно извлекать, сортировать, обновлять, удалять и добавлять. Стандарты языка SQL определяет ANSI (American National Standards Institute). В настоящее время действует стандарт, принятый в 2003 году (SQL-3).
SQL можно использовать с такими RDBMS как MYSQL, MSQL, POSTGRESSQL, Oracle, Microsoft SQL Server, Access, Sybase, Ingres. Эти системы RDBMS поддерживают все важные и общепринятые операторы SQL, однако каждая из них имеет множество своих собственных патентованных операторов и расширений.
SQL является общим языком запросов для нескольких баз данных различных типов.
MYSQL - это система управления базами данных. База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми - от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является ПО MYSQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному - как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.
MYSQL - это система управления реляционными базами данных. В реляционной базе данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MYSQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.
Программное обеспечение MYSQL - это программное обеспечение с открытым кодом. Программное обеспечение с открытым кодом означает, что применять и модифицировать его может любой желающий. Такое программное обеспечение можно получать по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями.
Программное обеспечение MYSQL является системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API).
Система безопасности основана на привилегиях и паролях с возможностью верификации с удаленного компьютера, за счет чего обеспечивается гибкость и безопасность. Пароли при передаче по сети при соединении с сервером шифруются. Клиенты могут соединяться с MYSQL, используя сокеты TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT)
Начиная с MYSQL версии 3.23, где используется новый тип таблиц, максимальный размер таблицы доведен до 8 терабайт. Однако следует заметить, что операционные системы имеют свои собственные ограничения по размерам файлов. Ниже приведено несколько примеров: - 32-разрядная Linux-Intel - размер таблицы 4 Гб;
- Solaris 2.7 Intel - 4 Гб;
- Solaris 2.7 ULTRASPARC - 512 Гб;
- WINDOWSXP - 4 Гб.
Как можно видеть, размер таблицы в базе данных MYSQL обычно лимитируется операционной системой. По умолчанию MYSQL-таблицы имеют максимальный размер около 4 Гб. Для любой таблицы можно проверить/определить ее максимальный размер с помощью команд SHOW TABLE STATUS или myisamchk - dv table_name. Если большая таблица предназначена только для чтения, можно воспользоваться myisampack, чтобы слить несколько таблиц в одну и сжать ее. Обычно myisampack ужимает таблицу по крайней мере на 50%, поэтому в результате можно получить очень большие таблицы. [18], [22]
2.3.2 Inter Base
INTERBASE - это SQL-сервер, СУБД, отличающаяся маленькими требованиями к ресурсам системы и при этом довольно серьезной производительностью. Разумеется, речь идет в основном про управление базами данных объемом до нескольких гигабайт. В таких ситуациях INTERBASE является, пожалуй, наилучшим выбором из некоторого числа других серверов.
Что отличает INTERBASE? Прежде всего, это кросс-платформенность, то есть, переносимость с одной операционной системы на другую. INTERBASE поддерживает Linux, Windows и значительное количество Unix-платформ. И делает это легко и удобно. Фактически, приложение, которое использует INTERBASE, не увидит разницы, на какой платформе в данный момент находится сервер. А если вам захочется поменять платформу, то это не потребует переделки базы данных - достаточно лишь проделать операцию резервного копирования на одной платформе и восстановления копии на другой.
INTERBASE всегда был инновационным продуктом, если так можно выразиться. Многие технологии, которые сейчас считаются само собой разумеющимися в мире баз данных, впервые появились именно в INTERBASE. Прежде всего, речь идет о BLOB-полях. Это может звучать удивительно, но именно в INTERBASE они впервые и появились. Во-вторых, это UDF, то есть, функции, определяемые пользователем. Замечательная возможность расширить набор встроенных функций при помощи любого средства разработки! Сама идеология INTERBASE - система множественного поколения записей, которая позволяет гарантировать отсутствие блокировок по чтению и быстрое восстановление базы данных при сбоях - это совершенно инновационная технология, которая являлась уникальной с самого начала, да и сейчас, пожалуй, не имеет реальных аналогов. Ну и напоследок, стоит упомянуть каскадные триггеры. Именно этот механизм, позволяющий создавать очереди автоматически запускающихся триггеров на все виды операций с данными, дает нам возможность гибко реализовывать практически сколь угодно сложную бизнес-логику. [25]
2.3.3 Microsoft SQL Server
Microsoft SQL Server 2000 - это реляционная система управления базой данных (СУБД). В реляционных базах данных данные хранятся в таблицах. Взаимосвязанные данные могут группироваться в таблицы, кроме того, могут быть установлены также и взаимоотношения между таблицами. Отсюда и произошло название реляционные - от английского слова relational (родственный, связанный отношениями, взаимозависимый). Пользователи получают доступ к данным на сервере через приложения, а администраторы, выполняя задачи конфигурирования, администрирования и поддержки базы данных, производят непосредственный доступ к серверу. SQL Server является масштабируемой базой данных, это значит, что она может хранить значительные объемы данных и поддерживать работу многих пользователей, осуществляющих одновременный доступ к базе данных.
СУБД SQL Server появилась в 1989 году и с тех пор значительно изменилась. Огромные изменения претерпели масштабируемость продукта, его целостность, удобство администрирования, производительность и функциональные возможности.
Система SQL Server может быть реализована либо как клиент-серверная система, либо как автономная "настольная" система. Тип проектируемой системы зависит от количества пользователей, которые должны одновременно осуществлять доступ к базе данных, и от характера работ, которые должны выполняться. [18], [19], [23]
Это далеко не полный обзор клиент-серверных СУБД. В своем дипломном проекте я использовал систему MYSQL. Это обусловлено гибкостью, масштабироемостью, большими возможностями, кросплатформенностью и сравнительно низкими требованиями к программным и аппаратным ресурсам, а также данная СУБД распространяется бесплатно.
2.4 Техническое задание
Цель дипломного проекта состоит в разработке сетевой системы контроля знаний на основе клиент-серверной модели для Сергиево-Посадского киновидеотехнического колледжа.
Сущность контроля знаний, состоит в том, что пользователю предлагается выборка специальных заданий и по ответам на нее выносится суждение о его знаниях. Стандартизованный методы контроля знаний имеют следующие положительные свойства, определяющие целесообразность их применения: кратковременность проверки;
стандартность проведения проверки стандартность анализа результатов;
возможность представления результатов проверки в числовой форме;
Для достижения цели решены следующие задачи: изучение основных положений теории тестов; проведен анализ доступных для свободного использования систем контроля знаний; создание двухзвенной базы данных; разработка собственного алгоритма для проведения тестирования; проектирование сетевой системы контроля знаний.
База данных для контроля знаний должна иметь возможности создания новых тестов, редактирования уже внесенных. База данных должна позволять проведение тестирования одновременно на 30-ти рабочих местах.
3. Расчетная часть
3.1 Разработка структурной схемы подсистемы
Система MYSQL может быть реализована либо как клиент-серверная система, либо как автономная "настольная" система. Тип проектируемой системы зависит от количества пользователей, которые должны одновременно осуществлять доступ к базе данных, и от характера работ, которые должны выполняться. В своем дипломном проекте я использовал клиент-серверную конфигурацию MYSQL. Рассмотрим ее подробнее.
Клиент-серверная система может иметь либо двухзвенную установку (two-tier setup), либо трехзвенную установку (three-tier setup). Независимо от варианта установки, программное обеспечение и базы данных MYSQL размещаются на центральном компьютере, который называется сервер базы данных (database server). Пользователи работают на отдельных компьютерах, которые называются клиенты (clients). Доступ пользователей к серверу базы данных производится при помощи приложений с их компьютеров-клиентов (в двухзвенных системах (Рисунок 3.1)) либо при помощи приложений, выполняющихся на специально предназначенном для этой цели компьютере, который называется сервер приложений (в трехзвенных системах).
Свое приложение я реализовал с использованием двухзвенной установки.
В двухзвенных системах клиенты реализовывают приложения, осуществляющие доступ к серверу базы данных непосредственно через сеть. Таким образом, компьютеры-клиенты исполняют программный код, соответствующий нуждам предприятия, и код, отображающий для пользователя результаты доступа к базе данных. Такие клиенты называются толстыми (thick client), потому что они выполняют два вида работы. Двухзвенная установка полезна при относительно небольшом количестве пользователей, потому что для соединения с каждым из пользователей расходуются системные ресурсы, такие как память и блокировки (locks). Чем больше будет количество соединений с пользователями, тем хуже будет производительность системы, изза соперничества за ресурсы. Но так как, база данных для контроля знаний писалась непосредственно для конкретной задачи
Рисунок 3.1 - Двухзвенная клиент-серверная система тестирования студентов Сергиево-Посадского киновидеотехнического колледжа, где есть возможность тестировать одновременно не более 30-ти студентов, то двухзвенная архитектура явилась вполне подходящей.
3.2 Разработка алгоритмического обеспечения
Система состоит из двух программ: модуль администратора и модуль тестирования.
3.2.1 Модуль администратора
Алгоритм работы модуля администратора следующий. Он состоит из четырех модулей: модуля подключения, редактора тем и вопросов, оценок и отчетов. Начнем описывать все по порядку.
Модуль подключения (Рисунок 3.2). Первым пунктом идет загрузка данных (пароля и настроек). Далее если пароль и настройки верны, то идет подключение к серверу. Отдельным блоком идет разрыв соединения, который может наступить в любой момент как по желанию пользователя, так и в зависимости от каких-либо обстоятельств.
Рисунок 3.3 - Редакторы тем и вопросов Модуля администратора
Данный этап, как видно из рисунка, состоит из двух частей: реактора тем и редактора вопросов.
Сперва заполняются темы, а уже потом, к каждой теме есть возможность создать вопросы. По умолчанию (как требовалось изначально) создается 1 вопрос, но их количество можно менять. Редакторы содержат стандартные функции создания, редактирования и удаления.
Пользователи (Рисунок 3.4).
В данном модуле реализована возможность управления пользователями имеющих доступ к базе данных.
Для этого в нем есть стандартные функции создания, редактирования и удаления пользователей. При создании пользователя необходимо указать имя и пароль, а так же задать его права.
Рисунок 3.4 - редактор пользователей Модуля администратора
Студенты (Рисунок 3.5).
Для прохождения тестирования необходимо заранее занести имя, фамилию и номер группы каждого студента в базу данных. Для этого и предназначен данный модуль.
Рисунок 3.5 - Редактор студентов Модуля администратора
Модуль Оценок (Рисунок 3.6)
Рисунок 3.6 - Модуль Оценки Модуля администратора
Этот модуль небольшой по размеру и состоит всего из двух пунктов. Сперва мы получаем уже готовые результаты тестирования, которые хранятся на сервере в базе данных, а потом выводим эти результаты на экран.
Данный модуль состоит из четырех этапов, которые, если объединить второй и третий пункты, можно было бы сократить до трех. Сначала мы берем уже готовые результаты, которые хранятся на сервере. Затем происходит их фильтрование и сортировка по указанным пользователем критериям и запросам. А после этого уже нужные данные можно распечатать в виде отчетов. Модуль обложек (Рисунок 3.8)
В моей программе использован механизм обложек или так называемых "скинов", что позволяет легко и просто менять интерфейс программы т.е. изменять стиль отображения элементов и различных визуальных эффектов. Для разработки обложки используется сторонняя программа, после чего файл обложки загружается в БД и может быть использован.
Этот модуль состоит всего из трех пунктов. На первом тапе вводятся данные (фамилия, имя и группа студента). На втором этапе введенные данные пересылаются на сервер и происходит подключение. На последнем третьем этапе на сервере проверяется, опрашивался ли этот студент ранее. Если он не опрашивался, то в таблице создается еще одна строка с его учетной записью, а если он ранее уже опрашивался, то к уже созданной его строке добавляется только новое поле с новой датой проведения тестирования.
Этот модуль прост по своей сути. Сперва мы получаем список направлений, по которым мог бы опрашиваться студент, затем выбираем направление и как только мы его выбрали, у нас появляется список предметов этого направления. При смене направления список обновляется и изменяется. На последнем этапе мы выбираем предмет для тестирования.
Модуль Опроса (Рисунок 3.11)
Рисунок 3.11 - Модуль опроса
В данном модуле, как видно из рисунка, пять этапов. Сперва мы получаем вопросы с сервера, затем тестируемый студент на них отвечает. Предусмотрена возможность пропускать вопросы и возвращаться к ним позже. Также есть возможность менять вариант ответа. Пункты 3, 4 и 5 выполняются по нажатию кнопки Выход. Сперва мы получаем ответы с сервера, затем сравниваем правильные ответы с ответами студента и записываем получение результаты сравнения на сервер. Здесь же высчитывается оценка, которую получил студент.
Модуль Результат (Рисунок 3.12)
Рисунок 3.12 - Модуль Результат Модуля тестирования
Данный модуль достаточно небольшой по размеру, но зато очень важный по значению. Он отвечает за вывод результатов, которые берутся с сервера и выводятся на экран. Далее идет разрыв соединения с сервером.
3.3 Разработка программного обеспечения
Модуль администратора нужен для занесения списка направления тестирования, предметов, вопросов по ним, просмотра оценок, создания отчетов, а так же для формирования списка студентов. Доступ к нему может быть только под учетной записью оператора базы данных, который обладает правами администратора. База данных Модуля администратора ведет работу с таблицами: Subject (Предмет), Theme (Тема выбранного предмета) и Question (вопрос по дисциплине), Q_Illustration (Иллюстрации к вопросу), Answer (Ответы на вопрос), Test (Перечень всех опросов студентов), Student (Содержит всех студентов подлежащих опросу), User (Список пользователей которым доступны функции администрирования), Skin (Хранит обложки для программы). (Рисунок 3.13)
Рисунок 3.13 - Таблицы базы данных редактора опроса
Как видно из рисунка, целостность таблиц Subject и Theme поддерживается с помощью полей id_subject содержащихся в обоих таблицах, в таблицах Theme и Question с помощью полей id_theme, а в таблицах Question и Q_Illustration целостность потдерживается с помощью полей id_question PK - первичный ключ таблицы, FK фторичный ключ.
Таблицы Модуля тестирования представлены на рисунке 3.14.
Рисунок 3.14 - Таблицы базы данных Модуля тестирования
Как видно из рисунка основных таблиц всего 8, и 2 вспомогательных для хранения списка студентов и обложек. Первая содержит информацию о студенте: его имя, фамилию, номер группы и порядковый номер (все, что нужно для авторизации). Вторая таблица отвечает за стили отображения кнопок, панелей, меню и прочих элементов программы. Порядковому номеру студента соответствует время, дата тестирования, а так же оценка которые запрашиваются у СУБД, тем самым обеспечивая точное время проведения опроса. Итак, мы определились со структурой программы и таблицами базы данных. По итогам исследовательского раздела, для создания базы данных я буду использовать MYSQL Server и Delphi.
При установке Delphi никаких сложностей возникнуть не может, чего нельзя сказать о MYSQL. Поэтому мы рассмотрим установку этого программного продукта подробнее.
3.4 Разработка интерфейса пользователя
Прежде чем приступать к разработке интерфейса программ, так же как и при разработке алгоритма, было просмотрено большое количество уже имеющихся тестирующих программ и опросников, поэтому нельзя сказать, что придуманный интерфейс уникален. Он представляет собой совокупность идей, взятых из других программ.
3.4.1 Разработка интерфейса Модуля администратора
Все пользовательские окна имеют минимальное количество окон для упрощения работы с программой. В модуле администратора работа с программой должна начинаться в главном меню, в котором пользователь при помощи вкладок выбирает, то ли ему создать новый тест, толи ему необходимо посмотреть результат, добавить или удалить пользователей, добавить или удалить студентов, толи напечатать результирующую ведомость. В дополнение ко всему есть возможность редактировать интерфейс программы путем применения различных "обложек”. Так как все функции описаны в разных модулях, то соответственно при выборе пользователем одного из действий загружается на исполнение нужный модуль. Данный редактор содержит несколько основных разделов: создание нового теста, просмотр результатов тестирования, вывод результатов.
При создании нового теста должно учитываться то, что заполнять тест будет не программист, а рядовой пользователь, поэтому такие функции, как вставка вопроса, редактирования вопроса, удаление вопроса, вставка картинки и выбор правильного ответа должн