Автоматизация проверки знаний и навыков студентов в области прикладной математики и информатики
Целью данной работы является разработка и реализация программного комплекса для обеспечения возможности проведения тестирования как в образовательной среде, так и в любой другой, где применима автоматизированная обработка результатов. Под обработкой результатов подразумевается подсчет общего количества баллов, начисляемых за каждый правильный вопрос в случае контрольного тестирования, или… Читать ещё >
Автоматизация проверки знаний и навыков студентов в области прикладной математики и информатики (реферат, курсовая, диплом, контрольная)
- Введение
- 1. Обоснование разработки системы
- 1.1 Описание предметной области
- 1.2 Анализ аналогов и прототипов
- 1.3 Подтверждение необходимости и актуальности проектирования
- 1.4 Анализ и выбор средств решения поставленной задачи
- 1.5 Перечень функций разрабатываемой системы
- 2. Разработка проекта системы
- 2.1 Разработка структурной схемы системы
- 2.2 Проектирование баз данных
- 2.3 Разработка и описание рабочих алгоритмов
- 2.4 Требования к системам передачи информации
- 2.5 Описание технологии обработки информации
- 2.6 Разработка интерфейса взаимодействия пользователя с системой
- 3.1 Разработка рабочей программы
- 3.2 Реализация графа диалога пользователей
- 3.3 Тестирование программных средств
- 3.4 Оценка надежности
- 3.5 Разработка сопроводительных документов
- 4. Технико-экономическое обоснование разработки
- 5. Рекомендации по безопасности жизнедеятельности и экологии
- Заключение
- Список использованных источников
- ПРИЛОЖЕНИЕ А
- ПРИЛОЖЕНИЕ Б
- ПРИЛОЖЕНИЕ В
Современный период развития высших учебных заведений характеризуется значительным увеличением числа студентов, в том числе обучающихся по заочной и дистанционной формам обучения. Эта общемировая тенденция усугубляется также высоким уровнем нагрузки на преподавательский состав в вузах РФ. В результате процесс обучения становится все более сложным и менее надежным: решение острых проблем обучения в высших учебных заведениях традиционными методами все чаще не дает удовлетворительных результатов, т. е. страдает качество обучения.
В оценке качества обучения выделяется три основных показателя:
1) Общее состояние качества обучения в целом по учебному заведению;
2) Качество учебной работы преподавателей;
3) Качество знаний и навыков студентов.
Здесь каждый показатель зависит от предыдущего. Ясно, что качество учебной работы преподавателей зависит от общего состояния качества обучения в вузе, а качество знаний и умений студентов (помимо личностно-психологических характеристик конкретного студента) — и от качества их обучения преподавателем, и от общего состояния качества обучения в вузе.
Несомненно, качество учебной работы преподавателей зависит от учебной нагрузки, при возрастании нагрузки на преподавателя качество его работы снижается. Одним из путей снижения учебной нагрузки является автоматизация отдельных функций преподавателя.
Рассматривая высшее учебное заведение как систему управления, необходимо особо отметить область проверки знаний и навыков студентов. Принятие решений в данной области традиционно практически целиком возлагается на преподавателя, несмотря на возможность частичной автоматизации этого процесса. Широкое внедрение инструментальных средств, позволяющих автоматизировать процесс проверки знаний и навыков, помогло бы решить часть проблем системы высшего образования.
Таким образом, автоматизация процесса принятия решений в области проверки знаний и навыков в высшем образовании позволит освободить время преподавателя для творческой деятельности и сократить расходы вузов.
Чаще всего автоматизация принятия решений в области оценки знаний обеспечивается средствами тестирования, и наибольшее распространение получило компьютерное тестирование.
Также стоит отметить, что сегодня многие компании и некоммерческие организации достаточно часто сталкиваются с необходимостью проведения того или иного тестирования. Например, тестирование соискателей на открывшуюся в компании вакансию, или регулярное психологическое тестирование, которое позволяет выявить «климат» в офисе и определить людей, которые являются источниками напряжения и мешают нормально работать другим. А ведь еще есть тесты по технике безопасности, профессиональные тесты для подтверждения права заниматься той или иной деятельностью, различные аттестации и т. п. Для этого очень удобно использовать компьютерное тестирование. Это позволяет ускорить проведение опросов и существенно облегчить обработку результатов.
Стоит отметить, что сейчас на рынке ПО, предназначенного для реализации тестирования, наблюдается некоторый перекос в количественном отношении в сторону относительно простых утилит, функциональных возможностей которых зачастую не хватает для решения всех задач. Они либо вообще представляют собой один скомпилированный тест на определенную тему (Cosmix Test, МanTest и др.), или же в них отсутствует возможность настройки процедуры тестирования. Но есть также и системы с большей, с виду достаточной, функциональностью, у которых и совершенно иной порядок цен. Однако, при детальном рассмотрении, и они порой не лишены недостатков. Так, у продукта фирмы Sun Rav Test Office Pro имеется возможность проводить тестирование только в пределах локальной сети. Кроме того, у него была отмечена высокая требовательность к ресурсам сервера. Продукт Test Office Pro. Web той же фирмы уже может работать и в условиях глобальной сети, однако у него, как и у предшественника, отсутствует защита от несанкционированного доступа к файлу теста. Также встречаются продукты, такие, как Ebol Testdesk, у которых недостаточно функций управления процессом тестирования.
Таким образом, актуальность разработки обусловлена:
1) требованиями повышения качества обучения студентов;
2) значительным возрастанием нагрузки на преподавательский состав;
3) наличием возможности для улучшения существующих комплексов.
Цель данной работы состоит в повышении эффективности проверки знаний студентов технических и иных вузов. Поставленная цель достигается с помощью моделей, алгоритмов и системы автоматизированного тестирования знаний.
Для достижения поставленной цели были решены следующие задачи:
1) обоснована целесообразность автоматизации процесса тестирования знаний.
2) разработаны модели и алгоритмы проверки знаний.
3) разработан автоматизированный комплекс, позволяющий проводить тестирование знаний студентов, а также всевозможные психологические тесты и опросы иного характера.
При программной реализации полученных концепций использовались методы теории алгоритмов, структурного и объектно-ориентированного программирования.
Порядок построения работы следующий: вначале рассматриваются общие принципы проведения компьютерного тестирования и обработки результатов с учетом особенностей применения системы в локальной и глобальных сетях. Далее производится обзор аналогов, выявляются их сильные и слабые стороны. Исходя из полученных данных, делается вывод о конкретных функциях разрабатываемого комплекса, который должен устранить недостатки рассмотренных аналогов, не растеряв их достоинств. Определяются методы реализации.
Во втором разделе разрабатывается структура системы, структура базы данных и обоснование ее введения, разработка алгоритмов, сред передачи данных, технологий обработки выходной информации и интерфейса пользователя.
В третьем разделе решаются вопросы, связанные с конкретной реализацией проекта, такие, как непосредственно разработка программных средств, их тестирование, оценка надежности и разработка сопроводительной документации на проект, а также рекомендации к его использованию.
В четвертом разделе производится технико-экономическое обоснование разработки: просчитывается общая стоимость проектирования и исполнения комплекса.
В пятом разделе приводятся рекомендации по безопасному использованию комплекса, а именно порядок аттестации рабочего места по условиям освещенности.
1. Обоснование разработки системы
1.1 Описание предметной области
В последние годы в сфере образования наблюдается стремительное увеличение интереса к автоматизации контроля результатов обучения. Самым популярным видом такого контроля является тестирование, основанное на диалоге вычислительной системы с пользователем.
Также стоит отметить, что сегодня многие компании и некоммерческие организации достаточно часто сталкиваются с необходимостью проведения того или иного тестирования. Например, тестирование соискателей на открывшуюся в компании вакансию, или регулярное психологическое тестирование, которое позволяет выявить «климат» в офисе и определить людей, которые являются источниками напряжения и мешают нормально работать другим. А ведь еще есть тесты по технике безопасности, профессиональные тесты для подтверждения права заниматься той или иной деятельностью, различные аттестации и т. п. Для этого очень удобно использовать компьютерное тестирование. Это позволяет ускорить проведение опросов и существенно облегчить обработку результатов.
Целью данной работы является разработка и реализация программного комплекса для обеспечения возможности проведения тестирования как в образовательной среде, так и в любой другой, где применима автоматизированная обработка результатов. Под обработкой результатов подразумевается подсчет общего количества баллов, начисляемых за каждый правильный вопрос в случае контрольного тестирования, или за каждый вариант ответов, в случае психологического или иного подобного тестирования, а также подведение частной и общей статистики по результатам. Так, в случае применения продукта в образовательной среде, необходимо иметь возможность просмотра статистики по какой-то конкретной группе, курсу или вузу в целом. Конкретному пользователю также полезно видеть его личную статистику.
Для обработки результатов наиболее подходит централизованная схема организации системы, т. е. клиент-сервер. Причем клиентов одновременно может работать несколько. Данная схема позволяет проводить тестирование одновременно для нескольких людей, например, целой учебной группы, и по окончании процедуры последним тестирующимся получить конечную статистику.
Наилучшим применением схемы клиент-сервер будет реализация ее как в локальной, так и в глобальной сетях. Так, в локальной сети удобно проводить тестирование на лабораторном занятии в компьютерном классе сразу всей группы. Вариант с глобальной сетью подойдет для тестирования знаний и навыков при дистанционном обучении, получившем широкое распространение в последнее время, а также для тестирования знаний обучающихся, которые по некоторым причинам (например, по состоянию здоровья) не могут присутствовать в компьютерном классе или офисе. Актуальность использования глобальной сети в качестве среды передачи данных подтверждает также ее повсеместное распространение и доступность.
Существует пять разновидностей вопросов для тестовых наборов:
1. Одиночный выбор. Пользователю предоставляется возможность выбора из нескольких вариантов единственного верного.
2. Множественный выбор. Из нескольких вариантов выбирается несколько верных.
3. Свободный ввод. Пользователь вводит ответ в поле для ввода. Имеет известные сложности с обработкой результатов. С успехом может быть заменен другой разновидностью вопросов без ущерба для общих показателей.
4. На соответствие. Пользователь должен сопоставить между собой варианты ответов. Вариант — события и даты.
5. Упорядоченный список. Упорядочивание вариантов ответов. Вариант — расположить события в хронологической последовательности.
Статистика подводится как для конкретного пользователя, так и для каких-либо групп пользователей. В случае контрольного теста в статистике приводится процентное соотношение правильных и неправильных ответов на вопросы, исходя из которого преподаватель делает вывод о оценке знаний.
Взаимодействующими сущностями, в порядке убывания иерархической значимости, являются:
1. Преподаватель (администратор);
2. Серверная часть системы;
3. Среда передачи данных;
4. Клиентская часть системы;
5. Пользователь (тестирующийся);
Рисунок 1.1 — Схема взаимодействия сущностей Пользователь имеет возможность создать для себя учетную запись, к которой впоследствии будет привязываться статистика, выбрать тест для прохождения и просмотреть свои результаты.
Администратор же, в свою очередь, имеет возможность редактировать тестовые наборы, изменять, т. е. настраивать, процедуру тестирования, вносить изменения в список зарегистрированных пользователей, а также просматривать детальную статистику необходимого вида, получение которой и является окончательной целью.
1.2 Анализ аналогов и прототипов
Учитывая небольшое количество методик тестирования, целесообразно разработать универсальную программу, которая позволила бы преподавателям различных дисциплин создавать свои базы данных и быстро получать контрольные задания для своего предмета. На рынке предлагается несколько подобных программ, и вот их обзор.
SunRav TestOfficePro
Разработчик: SunRav Software (http://www.sunrav.ru)
Сайт программы: http://www.sunrav.ru/srtop/index.php
Способ распространения: shareware
В пакет SunRav TestOfficePro входят программы для создания тестов, проведения тестирования и обработки результатов тестирования. С его помощью можно организовать и провести тестирования и экзамены в образовательных учреждениях (вузы, колледжи, школы), а предприятия и организации могут осуществлять аттестацию и сертификацию своих сотрудников.
Пакет позволяет создавать тесты по предметам школьной программы, вузовским дисциплинам, тесты для профессионального тестирования, психологические тесты и т. д.
Рисунок 1.2 — Набор программ пакета SunRav TestOfficePro
Все тесты и результаты тестирования шифруются методами стойкой криптографии, что исключает возможность подделки результатов. Кроме того, на тест можно установить пароли: на редактирование — защищает тест от просмотра его структуры, правильных ответов и т. д.; на просмотр — предотвращает пробное тестирование с целью выяснения правильных ответов.
Вопросы и варианты ответа можно форматировать, используя для этого встроенный текстовый редактор, близкий по своим функциям к MS WORD. В редакторе можно вставлять изображения, формулы, схемы, таблицы, аудиои видеофайлы, HTML-документы и любые OLE-документы.
В тестах возможно использование пяти вышеперечисленных типов вопросов.
Тест может быть разделен на несколько тем. При этом возможно оценивать знания тестируемого как по каждой теме в отдельности, так и по тесту в целом.
Рисунок 1.3 — Схема взаимодействия компонентов пакета SunRav TestOfficePro
Вопросы в тесте можно перемешивать. Более того, создатель теста может определить, сколько вопросов из каждой темы получит пользователь для тестирования. Допустим, каждая тема состоит из 100 вопросов. Если выбрать случайным образом только 10 вопросов, то тестируемые получат совершенно разные наборы вопросов из одного и того же теста. Варианты ответов также можно перемешать.
Порядок следования вопросов может быть не только линейным, но и зависеть от ответов пользователя.
Каждый вопрос и вариант ответа может иметь свой «вес». Это позволяет начислять пользователю больше баллов за правильные ответы на сложные вопросы и меньше баллов за ответы на легкие вопросы.
Каждый вопрос может быть снабжен комментарием, содержащим информацию о правильном ответе и т. п.
Возможна следующая реакция на ответ пользователя:
· предложение пользователю ответить на следующий вопрос;
· сообщение о том, что пользователь ответил правильно/неправильно;
· показ любого документа, связанного с вопросом. В нем, в частности, можно подробно объяснить, почему данный ответ неправильный, предоставить дополнительный материал, который позволит глубже изучить вопрос.
Тестирование можно ограничить по времени — как для теста, так и для каждого вопроса. При этом количество времени, выделяемое для каждого вопроса, может быть разным.
В пакет SunRav TestOfficePro входят следующие программы:
· tMaker — программа, позволяющая создавать и редактировать тесты. Возможно импортирование тестов, созданных в текстовом редакторе или в редакторе электронных таблиц;
· tTester — программа для проведения тестирования;
· tAdmin — программа для удаленного администрирования пользователей и обработки результатов тестирования. Позволяет просматривать/печатать результаты тестирования, а также создавать, печатать, редактировать, экспортировать отчеты по тестированию групп пользователей. Возможно создание матрицы ответов.
Технические данные SunRav TestOfficePro:
· количество вопросов — не ограничено;
· количество ответов — не ограничено;
· количество пользователей — не ограничено;
· количество тестов — не ограничено;
· количество тем в тесте — до 256;
· тесты и результаты хранятся в файлах.
В настоящее время для данного пакета подготовлено большое количество тестов. В частности, имеются образовательные тесты по информатике, экономике, английскому языку, истории, обществознанию.
SunRav TestOfficePro. WEB
Разработчик: SunRav Software (http://www.sunrav.ru)
Сайт программы: http://www.sunrav.ru/srtopweb/index.php
Способ распространения: shareware
SunRav TestOfficePro. WEB — это приложение для тестирования по сетям Интернет и интранет. Вся информация (тесты, разделы тестов, результаты и т. д.) хранится в базе данных и защищена от несанкционированного доступа. Если у пользователя нет соответствующих прав, то он не сможет просматривать, редактировать и удалять свои или чужие результаты тестирования.
Рисунок 1.4 — Пакет SunRav TestOfficePro. WEB
Пакет подходит для тестирования удаленных сотрудников, студентов, школьников и т. д. Пользователю для тестирования ничего на своем компьютере устанавливать не нужно — достаточно браузера (Microsoft Internet Explorer, Opera, Mozilla и т. п.).
Возможности тестов аналогичны возможностям тестов из программы SunRav TestOfficePro, которые можно использовать и в программе SunRav TestOfficePro.WEB.
Для организации тестирования требуются:
· Web-сервер — в качестве такового можно использовать Apache или и MS IIS. По сведениям авторов программы, разработка велась с использованием бесплатного сервера Apache версии 1.3 и 2.0. Его можно свободно скачать с сайта http://www.apache.org;
· база данных MySQL — по сведениям авторов программы, разработка велась с применением версии 3.23. Ее можно свободно скачать с сайта http://www.mysql.com;
· PHP-интерпретатор — по сведениям авторов, разработка велась с использованием версии 4.3. Его можно свободно скачать с сайта http://www.php.net.
Если у пользователя нет собственного Web-сервера, можно использовать обычный хостинг, который предоставляет услуги по применению БД MySQL и PHP.
С помощью SunRav TestOfficePro. WEB можно:
· организовывать тесты в разделы;
· регистрировать импортировать, редактировать пользователей;
· проводить тестирование как зарегистрированных, так и не зарегистрированных пользователей;
· просматривать результаты тестирования по индивидуальному пользователю и по группе пользователей (отчеты);
· просматривать результаты рейтинга по данному тесту;
· сохранять результаты тестирования в базе данных.
Конструктор тестов Keepsoft
Разработчик: Keepsoft
Сайт программы: http://www.keepsoft.ru/simulator.htm
Способ распространения: shareware
«Конструктор тестов» — это универсальная программа для проверки знаний. Приложение можно применять для проведения тестирования дома и в учебных заведениях. Программа позволяет использовать неограниченное количество тем, вопросов и ответов.
Рисунок 1.5 — Конструктор тестов Keepsoft
Возможности программы:
· вопросы могут содержать музыку (файлы WAV, MID. RMI), изображения (файлы JPG, BMP, ICO, EMF, WMF), видеоролики (файлы AVI);
· поддерживаются вопросы всех пяти вышеперечисленных типов;
· печать на принтере и сохранение в файл тем, вопросов и ответов;
· печать на принтере и сохранение в файл результатов тестирования;
· экспорт тем, вопросов и ответов в файлы различных форматов (MS Excel, MS Word, MS Access, Paradox, DBase, текстовый файл, HTML, XML, RTF (RichText format), PDF (Adobe Acrobat), буфер обмена MS Windows, Lotus 1−2-3 и др.);
· тестирование на одном компьютере нескольких пользователей. Для каждого пользователя заводится персональная карточка пользователя, поля в которой являются настраиваемыми;
· установка различных прав доступа к редактированию базы данных в «Редакторе» для разных пользователей;
· задание вопросов в произвольном порядке;
· задание цены каждому вопросу в баллах;
· ограничение времени на ответ;
· возможность прервать тестирование и продолжить его в другое время;
· выставление оценки по окончании тестирования. Система оценок настраивается в «Редакторе». Шкалу оценок можно настроить от 2- до 100-балльной системы;
· синхронизация базы данных; при помощи этой функции можно легко обмениваться данными с другими пользователями и переносить данные с компьютера на компьютер;
· проверка орфографии в «Редакторе»;
· поиск по базе данных в «Редакторе»;
· сжатие базы данных;
· настраиваемый интерфейс;
· функция проверки обновления через Интернет.
«Конструктор тестов» можно загрузить с сайта разработчика и ознакомиться с программой бесплатно в течение 30 дней. Для дальнейшей работы с программой необходима регистрация с оплатой. Зарегистрированным пользователям предоставляются персональный регистрационный ключ и бесплатная техническая поддержка по e-mail.
Конструктор тестов «Техносервис плюс»
Разработчик: ООО «Техносервис плюс»
Сайт программы: http://tsplus.narod.ru/test.html
Способ распространения: заказ по e-mail
Программа предназначена для создания тестов, экзаменов, электронных учебников. Для разработки теста или учебника пользователю необязательно иметь навыки программирования — программа адаптирована и предназначена прежде всего для облегчения процесса проверки знаний в образовательных учреждениях. Основным отличием продукта от аналогов является дополнительная возможность — создание модуля закрепления материала, когда уже в процессе обучения пользователь отвечает на вопросы по заданной теме.
Рисунок 1.6 — Главное окно Конструктора тестов «Техносервис плюс»
Программный комплекс содержит три модуля:
· конструктор, позволяющий создавать тесты, учебники, а также модули закрепления материала. В конструкторе предусмотрена возможность использования текстового формата, формул, звукозаписи, видеороликов и изображений;
· учебник — он создается в конструкторе и может иметь неограниченное количество разделов, параграфов и страниц;
· тест, который также может быть приравнен к экзамену, поскольку исключает возможность пользоваться учебником во время проверки знаний, как при закреплении материала.
В этом модуле создаются новые разделы и вопросы, а также указываются ответы на вопросы. При этом в свойствах вопроса необходимо указать количество баллов, начисляемых за правильный ответ на него.
Программа позволяет:
· самостоятельно создавать тесты для контроля знаний учащихся. Разработка теста автоматизирована и выполняется быстро, предусмотрена возможность использования не только текста и рисунков, но и звукозаписи, видео, формул, графиков, сложных графических объектов и пр.;
· с легкостью импортировать в конструктор материалы, по которым построены текущие электронные учебники;
· производить проверку учащихся с целью выявления их уровня знаний при поступлении в учреждение (при переходе в следующий класс (курс);
· производить внутренние плановые/внеплановые проверки знаний после прохождения нового материала для оценки усвоения материала;
· создавать электронные учебники, инструкции, методические материалы;
· в режиме обучения производить опрос учащегося по выбранным вопросам; в случае неверного ответа программа укажет на ошибку и порекомендует еще раз прочитать соответствующий раздел учебника.
В пакет программ «Конструктор тестов» входят:
· модуль создания тестов и учебников;
· модуль тестирования;
· модуль обучения;
· модуль для просмотра учебников.
Ограничений по количеству компьютеров, на которые устанавливается программа, нет.
1.3 Подтверждение необходимости и актуальности проектирования
В образовательном процессе очень большую роль играют контроль и оценка знаний. Они одновременно выполняют функции усвоения и практического применения знаний, которые были получены студентами и учениками в ходе учебного процесса. На данный момент можно выделить 2 типа систем контроля знаний:
· ориентированные на прохождение тестов в письменной или устной форме с последующей проверкой преподавателем. Частным случаем такого тестирования является традиционный экзамен;
· системы компьютерного тестирования с правильно подобранными тестами;
Системы первого типа существуют уже длительное время и имеют ряд недостатков: невозможность автоматической обработки результатов тестирования, большое количество рутинной работы, которая ложится на плечи организаторов тестирования, небольшая скорость обработки результатов, а также возможная необъективность оценки тестирования.
Принятие решений об окончательной оценке традиционно практически целиком возлагается на преподавателя, несмотря на возможность частичной автоматизации этого процесса. Широкое внедрение инструментальных средств, позволяющих автоматизировать процесс проверки знаний и навыков, помогло бы решить часть проблем системы высшего образования.
Таким образом, автоматизация процесса принятия решений в области проверки знаний и навыков в высшем образовании позволит освободить время преподавателя для творческой деятельности и сократить расходы вузов.
Чаще всего автоматизация принятия решений в области оценки знаний обеспечивается средствами тестирования, и наибольшее распространение получило компьютерное тестирование.
Среди преимуществ компьютерных систем тестирования можно выделить:
· автоматизацию обработки результатов;
· освобождение преподавателя от проведения традиционных экзаменов;
· обеспечение объективности контроля знаний; - повышение оперативности тестирования;
· возможность централизованного анализа качества подготовки тестирующихся по большому кругу различных вопросов;
· уменьшение затрат на организацию и проведение тестирования;
Создание систем тестирования, использующих в качестве среды передачи информации глобальную сеть Internet, является крайней перспективной и актуальной научной задачей, так как территориальная рассосредоточенность высших учебных заведений и международная интеграция учебного процесса приводят к тому, что любые локальные модели системы тестирования оказываются малоэффективными. Но для использования системы в стенах вуза необходимо предусмотреть также возможность использования в качестве среды передачи информации локальную сеть.
Таким образом, актуальность разработки обусловлена:
1) требованиями повышения качества обучения студентов;
2) значительным возрастанием нагрузки на преподавательский состав;
3) наличием возможности для улучшения существующих комплексов.
Цель данной работы состоит в повышении эффективности проверки знаний студентов технических и иных вузов. Поставленная цель достигается с помощью моделей, алгоритмов и системы автоматизированного тестирования знаний.
1.4 Анализ и выбор средств решения поставленной задачи
Архитектура разрабатываемого комплекса подразумевает наличие в ней централизованного хранилища данных о тестовых наборах (тестах), пользователях, группах пользователей и результатах тестирования знаний пользователей. Эти хранилищем данных будет реляционная база данных, находящаяся под управлением систему управления базой данных (СУБД) Microsoft SQL Server 2005. Данные в базу помещаются и считываться модулями, которые будут разработаны в ходе выполнения дипломного проекта.
Наиболее популярными моделями доступа к данным являются клиент-серверная и многозвенная архитектуры доступа к базам данных. Рассмотрим каждую из этих архитектур.
Архитектура «клиент-сервер»
Было бы неверно думать, что локальные приложения БД работают только на одном компьютере и в этом состоит их главная особенность. На самом деле такая программа вполне может функционировать в локальной сети и обслуживать нескольких клиентов одновременно.
Основное же отличие между локальными и клиент/серверными приложениями заключается в четком разграничении функций приложения и их распределении по различным компьютерам. При этом говорят о серверной и клиентской частях приложения. На сервер ложится обязанность по управлению базой данных и обслуживанию многочисленных клиентских запросов, а клиент обслуживает отдельного пользователя и «умеет» связываться с сервером, отправлять запросы и получать результаты.
Таким образом, архитектура клиент/сервер обеспечивает одновременное обслуживание множества пользователей. Естественно, что применяются они на больших промышленных предприятиях, в крупных компаниях и корпорациях и т. д.
Архитектура клиент/сервер предъявляет очень высокие требования к серверной части, которая строится на основе специальных программных комплексов, которые так и называются серверами БД или серверами SQL, так как при работе с ними используется специальный язык запросов к базам данных SQL (Structured Query Language).
В настоящее время распространена классификация приложений баз данных в соответствии с уровнями обработки данных. В соответствии с ней простые однопользовательские программы, работающие с маломощными локальными СУБД, являются одноуровневыми. В таких приложениях вся обработка данных ведется самой программой, а СУБД лишь обеспечивает доступ к таблицам.
Двухуровневые приложения соответствуют архитектуре клиент/сервер и организуют обработку как на стороне сервера БД, так и на стороне клиентского приложения. В зависимости от распределения функций обработки данных, различают системы клиент/сервер с «тонким» или «толстым» клиентом.
Важнейшей частью приложений в архитектуре клиент/сервер является сервер. Сервер базы данных представляет собой мощную систему управления базой данных, основанную на использовании SQL. Бизнес по разработке и эксплуатации промышленных серверов БД ежегодно имеет оборот в десятки миллиардов долларов. Подавляющее большинство крупных и средних компаний имеют собственные корпоративные базы данных, с которыми работают многоуровневые приложения на самых разных платформах. Серверы Oracle, Informix, Sybase управляют базами данных объемом десятки и сотни гигабайт. Для управления меньшими корпоративными базами данных применяются программные продукты MS SQL Server и InterBase.
Сервер как часть приложения, предназначенная для обеспечения работы клиентов с БД в целом, решает три основных задачи.
· Администрирование базы данных
· Контроль доступа к данным и разграничение доступа
· Управление и манипулирование потоками данных
Связь между клиентскими приложениями и сервером осуществляется на двух уровнях. Во-первых, должна существовать связь между операционными системами компьютеров клиентов и сервера. Это вопрос создания и администрирования компьютерных сетей. Во-вторых, части многоуровневого приложения должны уметь взаимодействовать между собой. Сервер имеет встроенные программные средства, обеспечивающие взаимодействие с клиентами на уровне данных. На клиентской стороне устанавливается специальное ПО клиента.
При формировании запросов в многоуровневых приложениях используется язык SQL. Каждый тип сервера работает на собственном диалекте языка, который в большей или меньшей степени соответствует стандарту ANSI 92. Сервер InterBase имеют немного дополнений. А диалекты серверов Sybase и MS SQL отличаются от стандарта довольно сильно.
Организация обработки данных в приложениях клиент/сервер имеет ряд. особенностей. Поля таблиц базы данных сервера создаются с использованием не стандартных типов данных, а доменов — создаваемых пользователем типов данных с дополнительными ограничениями.
Все операции с данными должны выполняться сервером по заявке клиента. Для этого используются хранимые процедуры — наиболее распространенные запросы, которые хранятся на сервере и выполняются по требованию клиентов. Хранимые процедуры оптимизированы для выполнения на сервере.
Некоторые хранимые процедуры должны выполняться автоматически при возникновении той или иной ситуации. В частности, они используются для поддержания ссылочной целостности данных. Такие запросы называются триггерами.
Объединяя данные из различных таблиц, можно создавать совокупности столбцов из разных таблиц, которые называются просмотрами. Структуру просмотра можно сохранить и использовать в дальнейшем.
Выполнение наборов операций выполняется сервером при помощи механизма транзакций. Транзакция — это группа операторов SQL, все команды которой должны быть успешно выполнены. В этом случае изменения фиксируются на сервере. В противном случае все команды отменяются. Транзакции обеспечивают сохранение целостности данных при работе с сервером многих клиентов одновременно.
Так как с базой данных сервера одновременно работает множество клиентов, поэтому весьма высока вероятность возникновения конфликтов при попытках модификации одних и тех же данных. Чтобы обеспечить целостность данных, серверы вынуждены осуществлять блокировку данных не отдельными записями, как в локальных СУБД, а страницами или даже таблицами. Размер страниц зависит от типа сервера. Табличная блокировка применяется при выполнении запросов модификации данных к целым таблицам (без использования оператора where).
Клиентская часть приложения может создаваться как при помощи специализированных программных сред, поставляемых совместно с сервером, так и при помощи обычных средств разработки программ. Delphi позволяет создавать клиентские приложения на любой вкус и любой степени сложности.
В целом, клиентские приложения обеспечивают выполнение следующих стандартных функций:
· обеспечение сеанса связи с сервером, при этом одно приложение может одновременно поддерживать несколько соединений;
· формирование запросов и передача их серверу;
· получение результатов выполнения запросов и их отображение при помощи стандартных интерфейсных элементов;
· обеспечение редактирования, дополнительной обработки, преобразования данных и т. д.
Многозвенная архитектура баз данных
Многозвенная архитектура приложений баз данных вызвана к жизни необходимостью обрабатывать на стороне сервера запросы от большого числа удаленных клиентов. Казалось бы, с этой задачей вполне могут справиться и приложения «клиент-сервер», однако в этом случае при большом числе клиентов вся вычислительная нагрузка ложится на сервер БД, который обладает довольно скудным набором средств для реализации сложной бизнес-логики (хранимые процедуры, триггеры, просмотры и т. д.). И разработчики вынуждены существенно усложнять программный код клиентского ПО, а это крайне нежелательно при наличии большого Числа удаленных клиентских компьютеров. Ведь с усложнением клиентского ПО возрастает вероятность ошибок и усложняется его обслуживание.
Многозвенная архитектура приложений БД призвана исправить перечисленные недостатки.
Итак, в рамках этой архитектуры «тонкие» клиенты представляют собой простейшие приложения, обеспечивающие лишь передачу данных, их локальное кэширование, представление средствами пользовательского интерфейса, редактирование и простейшую обработку.
Клиентские приложения обращаются не к серверу БД напрямую, а к специализированному ПО промежуточного слоя. Это может быть и одно звено (простейшая трехзвенная модель) и более сложная структура.
ПО промежуточного слоя называется сервером приложений, принимает запросы клиентов, обрабатывает их в соответствии с запрограммированными правилами бизнес-логики, при необходимости преобразует в форму, удобную для сервера БД и отправляет серверу. Сервер БД выполняет полученные запросы и отправляет результаты серверу приложений, который адресует данные клиентам.
Рисунок 1.7 — Многозвенная архитектура приложений БД
Таким образом, многозвенное приложение БД состоит из:
· «тонких» клиентских приложений, обеспечивающих лишь передачу, представление, редактирование и простейшую обработку данных;
· одного или нескольких звеньев ПО промежуточного слоя (сервер приложений), которые могут функционировать как на одном компьютере, так и распределенно — в локальной сети;
· сервера БД (Oralce, Sybase, MS SQL, InterBase и т. д.), поддерживающего функционирование базы данных и обрабатывающего запросы.
Более простая трехзвенная модель содержит следующие элементы:
· Клиентское приложение обеспечивает интерфейс пользователя на пользовательской машине.
· Сервер приложений находится в доступном для всех клиентов месте и обеспечивает общую передачу данных. Управление передачей данных обеспечивает так называемый брокер данных.
· Удаленный сервер базы данных обеспечивает систему управления базой данных (удаленная СУБД).
Взаимодействие этих уровней осуществляется следующим образом. Пользователь запускает клиентское приложение. Клиент соединяется с сервером приложений (который может определяться как во время исполнения, так и во время создания приложения). Запускается сервер приложений. Клиент получает интерфейс IAppServer от сервера приложений.
Затем клиент запрашивает данные от сервера приложений. В свою очередь сервер приложений запрашивает данные (устанавливая, если необходимо, соединение) в базе данных, упаковывает их для клиента, и возвращает пакет данных клиенту. Клиент расшифровывает пакеты данных и предоставляет их пользователю. Пользователь взаимодействует с клиентским приложением, и данные изменяются. Клиент упаковывает измененные данные в пакеты и отсылает их на сервер приложений.
Сервер приложений расшифровывает пакеты и сохраняет изменения в контексте транзакции. Если запись не может быть сохранена на сервере, сервер пытается согласовать изменения с текущими данными и отделяет данные, которые не могут быть сохранены. Когда процесс обработки измененных данных закончен, сервер возвращает все несохраненные данные клиенту для дальнейшего уточнения.
Клиент уточняет необработанные данные, после чего посылает их снова серверу приложений. Затем клиент обновляет свои данные с сервером.
Обе описанных архитектуры обладают как преимуществами, так и недостатками. Так «клиент серверные» приложения относительно просты в разработке и тестировании, но имеют плохую масштабируемость. Многозвенные приложении хорошо масштабируются, клиенты многозвенной архитектура платформонезависимы от используемой СУБД. Платой за эти преимущества многозвенной архитектуры является сложность разработки и тестирования такой системы.
Разрабатываемый программный комплекс будем строить, основываясь на клиент-серверной архитектуре приложений бах данных в силу легкости разработки и тестирования таких приложений.
1.5 Перечень функций разрабатываемой системы
В техническом задании были поставлены следующие требования к разрабатываемой системе:
1. Функции пользователя:
а) создание учетной записи для последующего использования ее в системе;
б) возможность выбора типа теста;
в) прохождение тестирования;
г) просмотр результатов сеанса тестирования;
2. Функции разработчика тестов а) создание и редактирование тестов;
б) управление порядком следования вопросов и ответов;
в) создание бумажной версии теста;
3. Функции администратора:
а) создание, редактирование и удаление пользователей и групп;
б) просмотр и печать результатов тестирования.
Также были приведены требования к структуре системы. Так, согласно техническому заданию, система должна состоять из:
— модуля тестирования, с которым работает конечный пользователь;
— модуля создания и редактирования тестов;
— модуля администрирования.
Проанализировав предметную область и аналоги разрабатываемого проекта, требования к нему приняли более конкретизированную форму. Окончательный набор функций и требований к проекту:
· основная функция — обеспечение эффективного тестирования знаний; Обеспечивается при реализации всех нижеприведенных функций.
· Точная оценка результатов тестирования. Критериями при решении вопроса об оценке, которую заслуживает испытуемый, являются процент правильных ответов и количество набранных баллов. Количество баллов используется, если вопросы имеют различную сложность и им сопоставлено различное количество баллов, получаемых в случае правильного ответа. Для выставления оценки, скажем, по пятибалльной системе, преподавателем задаются пороги, либо диапазоны, критериев, которым однозначно соответствует некоторая оценка.
· Возможность использования, как для внутреннего, так и открытого тестирования в сети Internet. Обеспечивается клиент-серверной архитектурой системы.
· Удобство и легкость создания и модификации тестов.
· Отсутствие твердой привязки к какому-нибудь предмету, области знаний. Реализуется возможностью добавлять и редактировать тестовые наборы, тематика которых напрямую зависит от человека, их составлявшего.
· Сбор, сохранение и представление в удобной форме разнообразной статистической информации относительно процесса тестирования. Для вывода частных и групповых отчетов, наряду с необходимостью хранить тестовые наборы, информацию о пользователях и другую информацию, необходимую системе, целесообразно ввести в состав проекта базу данных, которая бы позволяла проводить выборки необходимого вида и хранение данных в защищенном виде.
· Возможность одновременного тестирования неограниченного количества пользователей. Количество пользователей, одновременно работающих с системой, ограничено лишь пропускной способностью канала передачи информации от сервера к клиенту, и, в некоторой степени, от аппаратных ресурсов сервера.
· Легкая наращиваемость, масштабируемость системы.
· Контроль времени тестирования и сохранение информации относительно прерванного сеанса тестирования.
· Поддержка безопасного и универсального механизма управления пользователями с распределением прав доступа.
· Возможность самостоятельной регистрации пользователей.
· Возможность настройки процедуры тестирования, как для отдельного тестового набора, так и в целом.
Выводы В первом разделе было произведено описание и анализ предметной области дипломного проекта. Были рассмотрены аналоги и прототипы разрабатываемого программного комплекса, проанализированы их возможности, преимущества и недостатки. На основании этих данных была разработана концептуальная модель разрабатываемой системы, сформулированы основные требования к системе, выделены основные структурные элементы. В первом был произведен анализ существующих архитектуры приложений баз данных: клиент-серверных и многозвенных. В проекте решено использовать архитектуру «клиент-сервер» Так же была подтверждена актуальность разработки. Сформулирован перечень задач, подлежащих решению для обеспечения разрабатываемого программного продукта требуемой функциональностью.
программный комплекс база данные
2. Разработка проекта системы
2.1 Разработка структурной схемы системы
Согласно техническому заданию программный комплекс должен обеспечивать следующие возможности:
— создание и редактирование тестовых наборов (тестов), настройка процедуры тестирования;
— администрирование пользователей и групп пользователей, работающих с элементами комплекса, просмотр результатов тестирования знаний пользователей;
— создание учетной записи тестирующегося пользователя с целью последующего прохождения процедуры тестирования и просмотра результатов сеанса тестирования.
Таким образом, анализируя перечень требуемых возможностей, целесообразно произвести логическую декомпозицию программного комплекса на отдельные функционально законченные программные модули:
1. Модуль создания, редактирования и настройки тестов — модуль преподавателя;
2. Модуль тестирования. С ним осуществляет работу тестирующийся пользователя;
3. Модуль администрирования и вывода отчетов.
Каждый и описанных выше модулей в свою очередь состоит из подмодулей, отвечающих за решение конкретной задачи.
Модуль создания, редактирования и настройки тестов состоит из следующих блоков:
— блок авторизации пользователей. Здесь пользователь вводит имя своей ученой записи с соответствующими правами доступа и пароль. В случае если введены некорректные данные, доступ к модулю должен быть закрыт.
— блок управления разделами тестов. Производит редактирование списка разделов, а также распределение тестов по разделам.;
— блок выбора тестов и настройки процедуры тестирования. В этом блоке может быть дано краткое описание теста, введены сведения об авторе теста, выбран тип теста (контрольный или психологический), настроено временное ограничение на тест, настроен порядок следования вопросов в тесте;
— блок выбора и настройки вопросов теста. В данном блоке должна быть предусмотрена возможность создания, редактирования и удаления вопросов выбранного теста. Необходимо предусмотреть возможность выбора типа вопроса (одиночный выбор, множественный выбор, на соответствии, упорядоченный список, свободный ввод). Текст вопроса должен содержать элементы форматирования. Необходимо предусмотреть возможность поддержки стандартных OLE-объектов в формулировке вопроса;
— блок редактирования ответов. Должен предоставлять возможность по добавлению, изменению и удалению ответов на выбранный вопрос. В данном блоке необходимо осуществлять контроль за вводимой пользователем информацией и предупреждать о выявленных ошибках.
В модуле тестирования выделим следующие блоки:
— блок авторизации пользователя;
— блок выбора теста;
— блок тестирования. В данном блоке производится выборка из базы данных вопросов с вариантами ответов, получение от пользователя ответа на вопрос, анализ и занесение полученных данных в базу;
— блок просмотра результатов сеанса тестирования.
Модуль администрирования состоит из следующих функциональных частей:
— блок авторизации пользователя;
— блок управления группами пользователей. Производит распределение пользователей по группам, а также сопоставление группам разделов тестов.
— блок управления пользователями. Производит редактирование личных данных пользователей и прав доступа.
— блок вывода отчетов. Позволяет выводить отчеты разнообразного вида как по отдельно взятому пользователю, так и по целым группам, с возможностью фильтрации выводимых записей по диапазону дат, набранным баллам и др. Целесообразна также функция сохранения отчета в файл.
Основываясь на описанной выше декомпозиции программного комплекса на модули, была разработана структурная схема комплекса, представленная на рисунке 2.1.
Как видно из рисунка составляющие комплекс программные модули не имеют функциональных связей, благодаря чему упрощается разработка и сопровождение конечного продукта. Кроме этого из рисунка видно, что в каждом модуле имеются одинаковые блоки, отвечающие за авторизацию пользователя, что так же упрощает разработку путем дублирования повторяющихся кусков кода.
Рисунок 2.1 — Структурная схема программного комплекса
2.2 Проектирование баз данных
Для обеспечения требуемой функциональности, разрабатываемый программный комплекс должен обрабатывать большие объемы данных, таких как тестовые наборы данных, данные о группах, пользователях и результатах прохождения тестов пользователями, различные служебные данные. По этой причине к среде хранения данных предъявляются жесткие требования: обеспечение целостности и непротиворечивости хранимых данных, высокая скорость обработки данных, высокая степень защищенности данных от посягательств со стороны злоумышленников, поддержка многопользовательского доступа к данным с функциями разрешения или исключения конфликтных ситуаций. Всем описанным требованиям отвечают реляционные базы данных. В качестве целевой системы управления базой данных (СУБД) выбран Microsoft SQL Server 2005(Standard Edition), который полностью обеспечивает выполнение поставленных выше требования к среде хранения данных. Кроме этого выбранный программный продукт обладает достаточно удобными средствами администрирования баз данных, что существенно упрощает разработку программного комплекса в целом.
Несмотря на то, что проектируемая база данных состоит из взаимосвязанных сущностей, в ней можно выделить две основные подгруппы сущностей. К первой подгруппе отнесем сущности, описывающие хранилища данных о тестах, вопросах и ответах к этим вопросам. Ко второй — сущности пользователей, групп пользователей и результатов прохождения пользователями тестов. На рисунке 2. х представлена ER-модель разрабатываемой базы данных.
Рисунок 2.2 — ER-модель базы данных
Опишем входящие в базу данных сущности и их атрибуты
Сущность Sections. Информация о разделах тестов.
Атрибуты:
· Section_id. Тип: integer. Первичный ключ.
· Section_name.Тип: text. Наименование раздела тестов.
· Section_hidden. Тип: bit. Флаг сокрытия раздела тестов. Принимает значения «1» и «0». При значении «1» раздел тестов удаляется из списка видимых. Информация не удаляется.
Сущность Tests. Информация и параметры теста.
Атрибуты:
· Test_id. Тип: integer. Первичный ключ таблицы.
· Test_description. Тип: text. Описание теста.
· Test_section_id. Тип: integer. Хранится идентификатор из сущности Sections. Определяет принадлежность теста к разделу.
· Test_name. Тип: text. Имя теста.
· Test_type. Тип: integer. Тип теста. Принимает значения «0» и «1». «0» — контрольный тест, «1» — психологический (подсчет баллов).
· Test_author. Тип: varchar (128). Автор теста.
· Test_questions_count. Тип: integer. Количество вопросов в тесте.
· Test_questions_limit. Тип: integer. Определяет то количество из общего числа вопросов в тесте, которое будет задано пользователю.
· Test_is_random_answers. Тип: bit. Флаг перемешивания вариантов ответов. Принимает значения «1» и «0».
· Tests_is_time_limit. Тип: bit. Флаг ограничения времени на тест. Принимает значения «1» и «0».
· Test_time_limit. Тип: char (8). Ограничение времени на тест.
· Test_is_back. Тип: bit. Флаг возможности возврата на предыдущий вопрос. Принимает значения «1» и «0».
Сущность Questions. Вопросы тестов.
Атрибуты:
· Question_id. Тип: integer. Первичный ключ.
· Question_test_id. Тип: integer. Хранится идентификатор из сущности Tests. Определяет принадлежность вопроса к тесту.
· Question_number. Тип: integer. Локальный номер вопроса. Нумерация начинается с единицы.
· Question_header. Тип: varchar (1024). Заголовок вопроса. Может дублироваться текст вопроса. Используется при ведении истории ответов пользователя.
· Question_Text. Тип: text. Текст вопроса. Поддерживается возможность форматирования текста и использования стандартных OLE-объектов.
· Question_time. Тип: char (8). Время на ответ.
· Questin_type. Тип: integer. Тип вопроса. «0» — одиночный выбор, «1» — множественный выбор, «2» -соответствие, «3» — упорядоченный список. «4» — свободный ввод.
· Question_weight. Тип: integer. Количество начисляемых баллов в случае правильного ответа на вопрос.