Проектирование системы тестирования знаний учащихся
Объект — совокупность типов и свойств, объединенных в один тип, способный описать объект реального мира. В нашем примере один тип достаточный для описания объекта, что снимается на камеру, но бывают случаи, когда одного типа недостаточно, или уровень упрощения слишком высок, чтобы можно было составить простую модель. Например, объект машина состоит из типов: кузов, рама, мотор, колеса и др. Эти… Читать ещё >
Проектирование системы тестирования знаний учащихся (реферат, курсовая, диплом, контрольная)
РЕФЕРАТ
В данной работе было проведено исследование теоретической части, где были изучены принципы тестирования. Был проведен обзор программных и технических средств, для разработки системы тестирования. К практической части работы относится создание системы тестирования учащихся.
КЛЮЧЕВЫЕ СЛОВА: СИСТЕМА ТЕСТИРОВАНИЯ УЧАЩИХСЯ (СТУ), БАЗА ДАННЫХ (БД), CONTENT MANAGEMENT SYSTEM (CMS), HYPERTEXT PREPROCESSOR (PHP), CВОБОДНАЯ CИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (MYSQL), HYPERTEXT MARKUP LANGUAGE (HTML), ASYNCHRONOUS JAVASCRIPT AND XML (AJAX), WAMP, LAMP, XAMP.
К настоящему времени в практике проверки знаний учащихся сложились две основные формы контроля: устный опрос и письменная работа. Каждая из них, имея определенные положительные стороны, обладает и целым рядом существенных недостатков.
Устный опрос является выборочной формой контроля знаний отдельных учащихся, отнимающей значительный объем драгоценного времени от урока.
Письменная работа чрезвычайно трудоемка и не оперативна. Зачастую преподаватель, не успев справиться с проверкой работ учащихся, начинает следующий урок без информации о том, какие разделы предыдущего материала не были усвоены учениками в достаточной степени.
Оба этих метода не избавлены от негативных проявлений, связанных с необъективной оценкой знаний. Одной из задач повседневного учительского труда является необходимость осуществлять контроль знаний учащихся. Формы контроля, применяемые учителями, очень разнообразны, но наиболее часто используются письменный или устный опросы. К сожалению, эти формы не лишены недостатков. При проведении устного опроса — это относительно большая затрата времени урока при небольшом количестве выставляемых оценок, при проведении письменных работ количество оценок возрастает, но много времени уходит на проверку.
Свободной от этих недостатков является форма контроля в виде тестовых заданий.
1. СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ТЕСТИРОВАНИЯ
1.1 Тестирование в образовании
Тестирование как эффективный способ проверки знаний находит все большее применение. Одним из основных и несомненных его достоинств является минимум временных затрат на получение надежных итогов контроля. При тестировании используют как бумажные, так и электронные варианты. Последние особенно привлекательны, так как позволяют получить результаты практически сразу по завершении теста.
Тестирование в педагогике выполняет три основные взаимосвязанные функции: диагностическую, обучающую и воспитательную:
— Диагностическая функция заключается в выявлении уровня знаний, умений, навыков учащегося. Это основная, и самая очевидная функция тестирования. По объективности, широте и скорости диагностирования, тестирование превосходит все остальные формы педагогического контроля. Оперативно проверив работы, преподаватель сможет своевременно откорректировать изложение материала следующего урока, уделив больше внимания слабо усвоенным разделам. Отсутствие трудоемкой проверки письменных работ позволяет достаточно часто проводить контрольные мероприятия, создавая у учащихся ощущение тотального контроля знаний. Система тестовых заданий имеет и еще одно достоинство, так как позволяет избавиться от психологических проблем, связанных с проецируемой на ученика истинной или мнимой.
Обучающая функция тестирования состоит в мотивировании учащегося к активизации работы по усвоению учебного материала.
Для усиления обучающей функции тестирования, могут быть использованы дополнительные меры стимулирования студентов, такие, как раздача преподавателем примерного перечня вопросов для самостоятельной подготовки, наличие в самом тесте наводящих вопросов и подсказок, совместный разбор результатов теста.
Воспитательная функция проявляется в периодичности и неизбежности тестового контроля. Это дисциплинирует, организует и направляет деятельность учащихся, помогает выявить и устранить пробелы в знаниях, формирует стремление развить свои способности.
Тестирование — более справедливый метод, оно ставит всех учащихся в равные условия, как в процессе контроля, так и в процессе оценки, практически, исключая субъективизм преподавателя.
Следует отметить, что именно тестирование постепенно становится и основной формой сдачи экзаменов Тестовые задания могут составляться с использованием разнообразных компьютерных инструментов, начиная от различных редакторов и программ для разработки презентаций и до использования языков программирования и возможностей сети Интернет. И, наверное, любой учитель информатики и ИКТ создавал для своей работы свою тестовую среду. Но разработка качественного тестового инструментария — длительный, трудоемкий и дорогостоящий процесс. Рассмотрим готовые программные решения, существующие на данный момент.
1.2 Assistant II
Программа предназначена для автоматического контроля знаний учащихся. Преподаватель составляет перечень вопросов по теме и программа сама проверяет знания учащихся. У программы есть два режима работы — контроль знаний и тренажер. Можно ограничить время ответа на 1 вопрос или на все вопросы. В тексте вопроса можно использовать рисунки, а для сбора статистики (в т.ч. и детальной по каждому вопросу) применяется дополнительная программа Сервер статистики. Случайный выбор вопросов, перемешивание вариантов ответов, уникальная система подсчета оценки делает невозможным обман компьютера. Интерфейс на русском, английском, украинском, румынском, киргизском языках. Статистика тестирования собирается на каждом компьютере в файл, который можно обрабатывать при помощи Excel, кроме того, в сети можно использовать программу Сервер Статистики. В вопросах можно использовать рисунки, может быть несколько правильных вариантов ответа. Перед началом тестирования возможен вывод инструкции либо теоретического материала. Особое внимание уделено работе в локальной сети.
Рис. 1.1 — Пример теста из программы Assistant II
Программа может служить инструментальной базой для создания автоматизированных, защищенных от взлома, надежных и гибких в настройке систем, предназначенных для проверки, тестирования, создания условий для качественного восприятия учебных материалов, проведения автоматизированных экзаменов и т. п. Особое внимание уделено защите системы против несанкционированного просмотра и защиты авторских прав на материалы тестов.
1.3 eTest
eTest — программный комплекс, предназначенный для подготовки и проведения тестов на компьютере. eTest состоит из двух частей: редактора тестов eTeditor (рабочее место преподавателя) и программы для проведения тестирования eTester (рабочее место учащегося).
Рис. 1.2 — Пример теста в программе eTest
В редакторе можно создавать иерархическую структуру для хранения вопросов теста, добавлять комментарии к конкретным вопросам и группам вопросов, импортировать и экспортировать данные.
Система поддерживает следующие типы вопросов:
простой выбор;
множественный выбор;
ранжировка;
проверка пар сочетаний;
свободный ввод.
Скомпонованные тесты можно использовать как для проведения тестирования, так и для самостоятельного использования учащимися в процессе обучения.
Программа проведения тестов обеспечивает полную защиту вопросов теста от просмотра, и вопросы, и варианты ответа на каждый вопрос случайным образом перемешиваются. Порядок прохождения вопросов в тесте случайный, что позволяет уменьшить возможность списывания при проведении тестирования. По окончании тестирования его результаты выводятся на экране компьютера.
В бесплатно распространяемой версии предусмотрена возможность только локального тестирования с возможностью просмотра результатов по окончании тестирования на компьютере учащегося.
1.4 MyTest X
С помощью программы MyTest X возможна организация и проведение тестирования, экзаменов в любых образовательных учреждениях (вузы, колледжи, школы) как с целью выявить уровень знаний по любым учебным дисциплинам, так и с обучающими целями. Предприятия и организации могут осуществлять аттестацию и сертификацию своих сотрудников.
MyTest X это — система программ (программа тестирования учащихся, редактор тестов и журнал результатов) для создания и проведения компьютерного тестирования, сбора и анализа результатов, выставления оценки по указанной в тесте шкале.
Программа легка и удобна в использовании. Все учителя и учащиеся быстро и легко осваивают ее.
Программа MyTest X работает с девятью типами заданий:
одиночный выбор;
множественный выбор;
установление порядка следования;
установление соответствия;
указание истинности или ложности утверждений;
ручной ввод числа, ручной ввод текста;
выбор места на изображении;
перестановка букв.
В тесте можно использовать любое количество любых типов, можно только один, можно и все сразу. В заданиях с выбором ответа (одиночный, множественный выбор, указание порядка, указание истинности) можно использовать до 10 (включительно) вариантов ответа.
Рис. 1.3 — Пример теста в редакторе тестов программы MyTest
Программа постоянно развивается, грамотно учитывая нужды многих пользователей и при этом никого не ущемляя, то есть новые функции добавляют интересные возможности для тестирования и при этом не являются лишними для тех, кому нужны тесты попроще.
Рис. 1.4 — Пример статистики в программе MyTest
Ко многим полезным функциям, которые имеются в программе для проведения компьютерного тестирования, можно ещё присоединить то, что если ученик по каким-либо причинам не может выполнять тест за ПК (например по состоянию здоровья), то буквально за 1−2 минуты можно сформировать «бумажный» вариант теста.
Программа MyTest X распространяется бесплатно. Не коммерческое использование программы не требует денежных выплат. Любое образовательное учреждение, учитель и ученик могут бесплатно использовать программу на основе лицензионного соглашения без каких либо денежных отчислений. Программа работает под ОС Windows 2000, XP, Vista, 7. Для работы под Linux можно использовать Wine.
1.5 VeralTest
Программный комплекс для разработки тестов и проведения тестирования VeralTest является достойным представителем этого семейства. С одной стороны, пакет включает все необходимые функции для создания тестов любой сложности, позволяет с легкостью организовать одновременное тестирование нескольких человек в компьютерном классе или локальной сети предприятия, имеет развитые средства для централизованного администрирования и обработки результатов тестирования. С другой, благодаря простоте в установке и эксплуатации, VeralTest доступен не только для компаний, имеющих в своем штате ИТ-специалистов, но и для образовательных учреждений и частных лиц.
Главной особенностью комплекса является возможность организации тестирования с каждого компьютера локальной сети посредством WEB-браузера без установки каких-либо дополнительных программ. Для этого достаточно установить VeralTest только на один из компьютеров, это может быть, например, преподавательский компьютер.
Рис. 1.5 — Вид теста VeralTest в браузере Как уже говорилось, установка программы предельно проста и с ней может справиться даже неопытный пользователь. В процессе установки нужно лишь указать папку для VeralTest и выбрать устанавливаемые компоненты: «Редактор тестов» и «Сервер тестирования». Соответственно, создание тестов и проведение тестирования можно выполнять как на одном компьютере, так и на разных. Далее установка идет полностью в автоматическом режиме. В заключение программа установки определит параметры компьютера и откроет окно «Краткий обзор», в котором будет представлена краткая информация, помогающая быстро начать работу с системой.
Работа с системой тестирования через Web-браузер достаточно проста и наглядна, не вызывает затруднений у пользователей любой подготовки. В процессе тестирования выводится информация о количестве вопросов с ответами, набранных баллах и оставшемся времени на выполнение теста. Если администратор, назначая тест, разрешил пропуск вопросов, то тестируемый может пропустить любой вопрос и вернуться к нему после ответа на остальные вопросы теста. По окончании теста выводится информация о количестве вопросов с ответами, затраченном времени и полученной оценке. В разделе «Результаты» тестируемый сможет посмотреть информацию о каждом выполненном им тесте. Еще одной удобной возможностью VeralTest является возможность самостоятельной регистрации пользователей через Web-браузер при входе в систему. При этом администратор может определить группы, в которых разрешена регистрация, и перечень личных сведений, которые необходимо указать при регистрации.
Также стоит упомянуть о возможности составления тестов для VeralTest на языке XML без использования встроенного редактора. На сайте разработчика можно найти подборку статей по этой теме.
1.6 SunRav TestOfficePro
SunRav TestOfficePro — программа для создания тестов, проведения тестирования и обработки результатов тестирования. С помощью SunRav TestOfficePro возможна организация и проведение тестирования, экзаменов в любых образовательных учреждениях (вузы, колледжи, школы) как с целью выявить уровень знаний по любым учебным дисциплинам, так и с обучающими целями. Предприятия и организации могут осуществлять аттестацию и сертификацию сотрудников.
Все тесты и результаты тестирования шифруются методами стойкой криптографии, что полностью исключает возможность подделки результатов тестирования. Кроме того, на тест можно установить пароли: на редактирование — позволяет защитить тест от просмотра его структуры, правильных ответов и т. д.; на просмотр — позволяет предотвратить пробное тестирование с целью выяснения правильных ответов.
Вопросы и варианты ответа можно полноценно форматировать, используя для этого мощный встроенный текстовый редактор, по своим функциям и удобству мало отличающийся от MS WORD. В редакторе можно вставлять изображения, формулы, схемы, таблицы, аудиои видеофайлы, HTML документы и любые OLE документы.
Рис. 1.7 — Интерфейс SunRav TestOfficePro
В тестах возможно использование 5 типов вопросов:
— Одиночный выбор. Тестируемый должен выбрать один вариант ответа из нескольких предложенных.
— Множественный выбор. Тестируемый должен выбрать один или несколько вариантов ответа из нескольких предложенных.
— Открытый вопрос. Тестируемый должен ввести ответ с клавиатуры. Создатель теста может использовать мощный язык шаблонов, позволяющий правильно оценить ответ пользователя.
— Соответствие. Пользователю нужно упорядочить два списка таким образом, что бы они соответствовали друг другу.
— Упорядоченный список. Пользователю нужно упорядочить список в определенном порядке.
Тест может быть разделен на несколько тем. При этом возможно оценивать знания тестируемого как каждой теме в отдельности, так и по тесту в целом.
Вопросы в тесте можно перемешивать. Более того, создатель теста может определить, сколько вопросов из каждой темы получит пользователь для тестирования. Допустим, каждая тема состоит из 100 вопросов. Если выбрать случайным образом только 10 вопросов, то тестируемые получат совершенно разные наборы вопросов из одного и того же теста. Дополнительно, варианты ответов можно также перемешать.
Порядок следования вопросов может быть не только линейным, но и зависеть от ответов пользователя.
Каждый вопрос и вариант ответа может иметь свой «вес». Это позволяет начислять пользователю больше баллов за правильные ответы на сложные вопросы и меньше баллов за ответы на легкие вопросы.
Каждый вопрос может быть снабжен комментарием, который может содержать информацию о правильном ответе и т. п.
Реакция на ответ пользователя может быть различной:
— Отсутствие реакции. Пользователю просто предлагается ответить на следующий вопрос.
— Сообщение о том, что пользователь ответил правильно (неправильно).
— Показ любого документа, связанного с вопросом. В нем, в часности, можно подробно объяснить причину неправильного ответа и предоставить дополнительный материал, который позволит глубже изучить вопрос.
Тестирование можно ограничить по времени — как для теста, так и для каждого вопроса. При этом количество времени, выделяемое для каждого вопроса может быть разным.
Тесты могут быть составной часть электронных учебных пособий, созданных с помощью программы SunRav BookOffice.
Есть несколько способов установить программу для тестирования на компьютеры пользователей: с помощью полного пакета SunRav TestOfficePro, с помощью инсталляционного файла программы tTester или простым копированием необходимых файлов на компьютеры.
Пакет пользуется заслуженной популярностью, как в России, так и в странах ближнего и дальнего зарубежья. Вы можете ознакомиться со списком некоторых наших клиентов и ознакомиться с их отзывами о программе.
Программы пакета:
— tMaker — программа для создания тестов. Позволяет создавать и редактировать тесты пользователю ПК с любым уровнем подготовки. Возможно импортирование тестов, созданных в текстовом редакторе или редакторе электронных таблиц.
— tTester — программа для проведения тестирования. Имеет максимально простой интерфейс. Обширные настройки программы и параметры командной строки позволяют приспособить ее работу под любые требования.
— tAdmin — программа для удаленного администрирования пользователей и обработки результатов тестирования. Позволяет просматривать/печатать результаты тестирования пользователя, а так же создавать, печатать, редактировать, экспортировать отчеты по тестированию групп пользователей. Возможно создание матрицы ответов.
2. ИНСТРУМЕНТАРИЙ ДЛЯ СОЗДАНИЯ СИСТЕМЫ ТЕСТИРОВАНИЯ
2.1 Концептуальная и физическая модели баз данных
Для успешной реализации проекта по созданию ИС объект проектирования (ИС) должен быть, прежде всего, адекватно описан, должны быть построены полные и непротиворечивые функциональные и информационные модели. То есть при разработке ИС должна быть построена модель предметной области, проведено отображения этой модели в модель данных и по МД созданы физические структуры данных.
тестирование assistant база данные Рис. 2.1 — Общий подход к созданию информационных систем на базе Case — технологий При проектировании сложной ИС ее разбивают на части, каждая из которых затем рассматривается отдельно. Возможны два различных способа такого разбиения ИС на подсистемы: структурное (или функциональное) разбиение и объектная (компонентная) декомпозиция.
Суть функционального разбиение хорошо отражена в известной формуле:
«Программа = данные + Алгоритмы».
При функциональной декомпозиции программной системы ее структура может быть описана блок-схемами, узлами которых является «обрабатывающие центры» (функции), а связи между узлами описывают движение данных.
Объектное разбиение в последнее время называют компонентным, что нашло отражение в специальном термине: «разработка, основанная на компонентах» (Component Based Development — CBD). При этом используется другой принцип декомпозиции — система разбивается на «активную суть» — объекты или компоненты, которые взаимодействуют друг с другом, обмениваясь сообщениями и выступая друг к другу в отношении «клиент/сервер». Сообщения, которые может принимать объект, определенные в его интерфейсе. В этом смысле посылка сообщения «объекта-сервера» эквивалентна вызова соответствующего метода объекта. Большинство существующих CASE-средств опираются в основном на структурные методологии.
Примером системы, в которой осуществляется функциональное разбиение является BPwin (система моделирования потоков данных), что поддерживает методологии IDEF0 (функциональная модель), IDEF3 (WorkFlow Diagram) и DFD (DataFlow Diagram). Функциональная модель предназначена для описания существующих бизнес — процессов на предприятии и идеального состояния вещей — того, к чему нужно стремиться. Методология IDEF0 приказывает построение иерархической системы диаграмм — единичных описаний фрагментов системы. Сначала проводится описание системы в целом и ее взаимодействия с окружающим миром (контекстная диаграмма), после чего проводится функциональная декомпозиция — система разбивается на подсистемы и каждая подсистема описывается отдельно (диаграммы декомпозиции).
Затем каждая подсистема разбивается на более мелкие и так далее до достижения нужной степени подробности. После каждого сеанса декомпозиции проводится сеанс экспертизы: каждая диаграмма проверяется экспертами предметной области, представителями заказчика, людьми, которые непосредственно принимают участие в бизнес — процессе. Такая технология создания модели позволяет построить модель, адекватную предметной области на всех уровнях абстрагирования.
На основе модели процессов BPwin с помощью другого CASE-средства ERwin можно построить модель данных. Принято выделять два уровня представления модели данных — логический и физический.
Цель моделирования данных на логическом уровне заключается в обеспечении разработчика ИС концептуальной схеме базы данных в форме одной модели или нескольких локальных моделей, которые относительно легко могут быть отражены в любую систему баз данных.
Логический уровень — это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире, например «Группа», «Фамилия студента». Объекты модели, представляемых на логическом уровне, называются сути и атрибутами. Логическая модель данных может быть построена на основе другой логической модели, например модели процессов. Такая модель данных является универсальной и никак не связана с конкретной реализацией СУБД (системы управления базой данных). Построение логической модели ИС к ее программной разработки или до начала проведения архитектурной реконструкции так же необходимо, как наличие проектных чертежей перед строительством большого здания. Хорошие модели ИС позволяют наладить плодотворное взаимодействие между заказчиками, пользователями и командой разработчиков.
На физическом уровне — данные, наоборот, зависят от конкретной СУБД, фактически являясь отражением системного каталога. В физической модели содержится информация о все объекты БД. Поскольку стандартов на объекты БД не существует, физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько различных физических моделей.
Концептуальная модель БД Концептуальная модель (инфологична) наиболее полно отвечает потребностям проектирование баз знаний и построена на ряде принципов, которые мы сейчас рассмотрим. Есть две большие области понятий в концептуальной модели. Обе они построены по принципу иерархического дерева. Первая область — это дерево типов данных, вторая — дерево данных. Дерево типов описывает структуру данных дерева данных, поэтому без дерева типов нет никакой логической целостности дерева данных. Для начала, рассмотрим простой пример с телевизионной камерой. Отраженный свет попадает в объектив камеры, там он раскладывается на три составляющие: синий, красный, зеленый. Записывая уровень освещенности три составляющих света 25 раз в секунду, мы можем составить представление о освещенность и способность предметов, которые мы снимаем, что отражает. Теперь дадим основные определения.
Уровень упрощения — уровень детализации представления об объект реального мира, достаточный нам для его описания и дальнейшего использования. В предыдущем примере мы составили представление об объекте, что интересует нас, по его освещенности. Мы могли бы дать огромное количество характеристик, вплоть до химического состава и геометрии кристаллов, но нам это не нужно. Нам достаточно показать фильм на экране, поэтому уровень освещенности нам наиболее полно подходит. Значит, для достаточно полного представления об объекте и использования на практике представлений о нем нам достаточно упростить объект реального мира к освещенности.
Свойство объекта — это одна из характеристик объекта реального мира, информацию, о которой мы будем хранить в базе данных. Например, в предыдущем примере у нас есть три свойства у объекта — уровне красной, синей и зеленой составляющих отраженного света.
События — набор реакций объекта на изменения внешних условий, описанных в нашей базе данных, например, узнав интенсивность падающего света на объект и интенсивность отраженного света от объекта, мы можем описать реакцию нашего объекта на изменение освещенности через к-нт отражение.
Тип — набор свойств и событий объекта, описанных как единый комплекс. При этом, в зависимости от уровня упрощений, у нас может быть свойством типа другой тип. Например, совокупность трех событий дает нам тип — предмет, который снимается на камеру.
Объект — совокупность типов и свойств, объединенных в один тип, способный описать объект реального мира. В нашем примере один тип достаточный для описания объекта, что снимается на камеру, но бывают случаи, когда одного типа недостаточно, или уровень упрощения слишком высок, чтобы можно было составить простую модель. Например, объект машина состоит из типов: кузов, рама, мотор, колеса и др. Эти типы, в свою очередь, тоже являются объектами, которые состоят из типов, например для колеса: обед, покрышка, камера и так далее Для камеры: оболочка, ниппель, давление воздуха и так далее Можно бесконечно углубляться в детали, но, как правило, это не нужно. Рассмотрим различные точки зрения пользователей на наши типы, в зависимости от состояния технологического процесса производства и продажи машины. Человек, который собирает колесо, рассматривает его как объект, состоящий из типов: оболочка, ниппель, давление воздуха. Он собрал колесо и передал его на главный конвейер. Далее колесо рассматривается как тип, что входит в состав объекта рама. На последней стадии сборки, нам уже не важно иметь в поле зрения свойства колесо, практически, мы потеряли его из видимости. Далее, мы рассматриваем тип рама, что входит как свойство в объект машина. Человек, который пришел покупать машину, может рассматривать его как объект том, как тип, что входит как свойство в объект материальное положение и так далее 3 этих рассуждений видно, что концептуальная модель очень гибкая и самодостаточная для описания внешнего мира. Мы можем двигаться от простого к сложному, описывая все, что входит в технологический процесс.
Связь — это свойство типа или свойства типа, что характеризует взаимосвязь типов в дереве данных или способ изменения значения свойства объектного типа соответственно. Бывают три типа связей: включение в дереве данных, вставка из другого типа значение свойства типа и ссылки на экземпляр типа в дереве данных. Включение позволяет строить дерево данных. Вот пример. Объект офис состоит из свойств объектного типа — комнаты. Мы не можем описать любой офис прямо в типе офис, поскольку заранее неизвестно, сколько комнат в нем будет, поэтому мы описываем связь типа офис с типом комната. Теперь создав экземпляр типа офис, мы можем добавить к этому узла дерева данных нужное количество ветвей типа комната. Или, например, накладная состоит из шапки и списка товаров. Мы можем рассматривать шапку как узел дерева данных, а список товаров, как ветви дерева данных, вытекая из этого узла. Вставка значения свойства типа с другого типа — это способ редактирования свойства типа, при котором значение одно из свойств типа вставляется с экземпляра свойства другого типа. Например, мы можем описать связь цвета панели инструментов в программе, которое редагуватиметься из списка цветов операционной системы. При этом связь устанавливается только на время редактирования, после окончания которого связь полностью разрывается. Ссылки характерно тем, что будучи однажды установленная, не разрывается после редактирования. Это похоже на исчисляемую свойство таблицы базы данных. Если Вы измените тип, на который установлена ссылка, то во всех экземплярах типов, где есть ссылки на этот тип будет произведено изменение.
Наследование — это способ описания дерева типов. Вы можете описать тип литература, от которого наследовать типы: книга, журнал, статья. При этом поддерживается полиморфизм. Так, если в литературе есть свойство автор, проведя поиск по потомках от литературы, Вы найдете все книги, журналы и статьи этого автора.
Имея такие богатые возможности, концептуальная модель долгое время была не реализована. Мне удалось написать реализацию концептуального подхода. Авторами концептуальной модели были Смит и Смита — американские ученые, что написали ряд статей в 1972 — 1976 годах, которые, по общему мнению, считались утопией. По сути, человек мыслит именно концептуально. Мы знаем, и какие характеристики у объекта, и значение этих характеристик.
Физические модели. Логическая модель данных должна быть отражена в компьютерно-ориентированную даталогическую модель, «понятную» СУБД. В процессе развития теории и практического использования баз данных, а также средств вычислительной техники создавались СУБД, поддерживающие различные даталогические модели.
Сначала начали использовать иерархические даталогические модели.
Иерархическая модель данных является иерархией в виде дерева. Данная модель данных базируется на сегменте, который является совокупностью полей, характеризующих данный сегмент. Сегменты различаются по типу, а каждый тип характеризуется фиксированной длиной и конкретным разбивкой на поля данных. Два связанные сегменты, расположенных на смежных уровнях называются начальным (высшего уровня) и порожденным (низшего). Иерархический запись — система взаимосвязанных сегментов, в которой каждый рожденный сегмент представлен столько раз, сколько необходимо для полного раскрытия данного сегмента. В иерархической структуре является сегмент, который не имеет начального и называется главным или корневым. В этом сегменте обычно располагается идентификатор объекта, свойства которого раскрываются в сегментах второго и низших уровней иерархии.
Для реализации данной модели на физическом уровне используется ряд стандартных методов размещения данных на устройствах, которые запоминают, которые могут размещать сегменты следующими иерархическими способами доступа: последовательный, индексно-последовательный, прямой, индексно-прямой. Согласно способов размещения сегментов устанавливается порядок доступа к ним.
Тип дерева состоит из одного «корневого» типа записи и упорядоченного набора из нуля или более типы под деревьев (каждый из которых является некоторым типом дерева). Тип дерева в целом является иерархически организованным набором типов записи.
Пример типа дерева приведен на рис. 2.2
Рис. 2.2 — Иерархическая модель данных Здесь Отдел является предком для Начальника и Сотрудники, а Начальник и Сотрудники — потомки отдела. Между типами записи поддерживаются связи. Никакой потомок не может существовать без своего отца, причем предок должен быть один.
Простота организации, наличие заранее заданных связей между сути, сходство с физическими моделями данных позволяли добиваться приемлемой производительности иерархических СУБД на медленных ЭВМ с весьма ограниченными объемами памяти. Но, если данные не имели древовидной структуры, то возникала масса сложностей при построении иерархической модели и желании добиться нужной производительности.
Сетевые модели также создавались для мало ресурсных ЭВМ.
Сетевой подход к организации данных является расширением иерархического. В этой модели потомок может иметь любое число предков.
Сетевая БД (6) состоит из набора записей и набора связей между этими записями, а если говорить точнее, из наборов экземпляров каждого типа из заданного в схеме БД набора типов записи и набора экземпляров каждого типа из заданного набора типов связи. Тип связи определяется для двух типов записи: предка и потомка.
Рис. 2.3 — Сетевая модель данных При разработке сетевых моделей было придумано множество «маленьких хитростей», которые позволяют увеличить производительность СУБД, но существенно усложнили последние. Прикладной программист должен знать массу терминов, выучить несколько внутренних языков СУБД, детально представлять логическую структуру базы данных для осуществления навигации среди различных экземпляров, набрав, записей и тому подобное. Один из разработчиков операционной системы UNIX сказал «Сетевая база — это самый верный способ потерять данные».
Сложность практического использования иерархических и сетевых СУБД заставляла искать другие способы представления данных. В конце 60-х годов появились СУБД на основе инвертированных файлов, организации, отличающиеся простотой, и наличием весьма удобных языков манипулирования данными. Однако такие СУБД обладают рядом ограничений на количество файлов для хранения данных, количество связей между ними, длину записи и количество ее полей.
Сегодня наиболее распространены реляционные (основанные на двумерных таблицах) модели данных (7). Будь-яка система данных, не имеет значения сложности, может быть сведена к набора таблиц (или «отношений» в терминологии СУРБД). Каждое отношение (таблица) может быть представлено в виде прямоугольного массива со следующими свойствами:
* каждая ячейка в таблице представляет точно один элемент данных; нет групп, которые повторяются;
* каждая таблица имеет однородные столбце; все элементы в любом из столбцов одного и того же вида;
* каждому столбцу предназначено определенное имя;
* все строки различные дублировать; строки не разрешается;
* и строки и столбцы, не зависят от последовательности; просмотр в разной последовательности не может изменить информационное содержание отношение;
* каждая строка воплощает уникальный элемент данных, который ней и описывается;
* столбцами есть отдельные куски информации (атрибуты данных), которые известны на данный элемент.
Строки обычно называют записями, а столбцы — полями.
Вообще, лишь немного реальных баз данных могут быть описаны с помощью единой таблицы. Большинство приложений используют множество таблиц, которые содержат столбцы (поля) с одинаковым именем. Эти общие данные позволяют объединяя две (или несколько) таблицы, строить осмысленные ассоциации.
Рис. 2.4 — Реляционная модель данных К достоинствам реляционного подхода можно отнести:
* наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать большую часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными;
* наличие простого и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и что обеспечивает теоретический базис реляционного подхода к организации баз данных;
* возможность ненавигацийного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти.
Реляционные системы далеко не сразу получили широкого распространения. Тогда как основные теоретические результаты в этой области были получены еще в 70-х, и тогда же появились первые прототипы реляционных СУБД, долгое время считалось невозможным добиться эффективной реализации таких систем. Однако отмеченные выше преимущества и постепенное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к тому, что уже в середине 80-х годов реляционные системы практически вытеснили с мирового рынка ранние СУБД.
Несмотря на всю свою привлекательность и «привычность», классические реляционные системы управления базами данных являются ограниченными. Они идеально походят для таких традиционных приложений, как системы резервирования билетов и мест в гостиницах, а также банковских систем, но их применение в системах автоматизации проектирования, интеллектуальных производственных системах и других системах, основанных на знаниях, часто является затруднительным. Это, прежде всего, связано с примитивностью структур данных, лежащих в основе реляционной модели данных. Плоские нормализованы отношения универсальные и теоретически достаточные для представления данных любой предметной области. Однако в нетрадиционных применениях в базе данных появляются сотни, если не тысячи таблиц, над которыми постоянно выполняются дорогостоящие операции соединения, необходимые для воспроизведения сложных структур данных, присущих предметной области.
Другим серьезным ограничением реляционных систем является их относительно слабые возможности по части представления семантики приложении. Самое большее, что обеспечивают реляционные СУБД — это возможность формулировки и поддержки ограничений целостности данных. Осознавая эти ограничения и недостатки реляционных систем, исследователи в области баз данных выполняют многочисленные проекты, основанные на идеях, которые выходят за пределы реляционной модели данных.
Как другие недостатки реляционных СУБД отмечаются следующие:
* негибкость структуры для развивающихся БД
* затруднения в построении концептуальной модели для объектов с многочисленными связями «многие — к — многим»
* неестественность табличного представления для разреженных массивов данных.
Объектно-ориентированные базы данных относительно новые, теория баз данных не имеет такой хорошей математической основы как реляционные или древовидные модели. Однако, это не обязательно должно рассматриваться как признаки слабости, присущие данной технологии моделирования. Свойства, представляемых общими для большинства реализаций БД, такие:
1. Абстракция: Каждая реальная «вещь», которая хранится в БД, является членом какого-нибудь класса. Класс определяется как совокупность свойств, методов, общедоступных и частных структур данных, а также программы, применимых к объектов (экземплярам) данного класса. Классы есть ни что иное, как абстрактные типы данных. Методы — это процедуры, которые вызываются для того, чтобы провести какие-либо действия с объектом (например, напечатать или скопировать себя). Свойства — это значение данных, которые связаны с каждым объектом класса, характеризуют его тем или иным образом (например, цвет, возраст).
2. Инкапсуляция: Внутреннее представление данных и деталей реализации общедоступных и частных методов (программ) является частью определения класса и известно только внутри этого класса. Доступ к объектам класса разрешен только через свойства и методы этого класса или его родителей (см. ниже «наследование»), а не путем использования знания подробностей внутренней реализации.
3. Наследование (одиночное или множественное): Классы определены как часть иерархии классов. Определение каждого класса низшего уровня наследует свойства и методы его отца, если они только они явно не объявлены не унаследованными или изменены новым определением. При одиночном наследовании класс может иметь только один родительский класс (то есть классовая иерархия имеет древовидную структуру). При множественном наследовании класс может происходить от многочисленных родителей (то есть иерархия классов имеет структуру ориентированного нециклического графа, не обязательно древовидную).
4. Полиморфизм: Несколько классов могут иметь совпадающие имена методов и свойств, даже если они считаются различными. Это позволяет писать методы доступа, которые правильно работать с объектами совершенно разных классов, чтобы соответствующие методы и свойства были в этих классах определены.
5. Сообщение: Взаимодействие с объектами осуществляется путем посылки сообщений с возможностью получения ответов.
Каждый объект, информация о котором хранится в ООБД, считается таким, что принадлежит какому-либо классу, а связи между классами устанавливаются с помощью свойств и методов классов.
Модель ООБД находится на более высоком уровне абстракции, чем реляционные или древовидные БД, поэтому классы можно реализовать, опираясь на одну из этих моделей, или на какую-нибудь еще. Поскольку в центре разработки оказываются не структуры данных, а процедуры (методы), важно, чтобы выбиралась базовая модель, которая обеспечивает достаточную прочность, гибкость и производительность обработки.
Реляционные БД с их строгим определением структуры и ограниченным набором разрешенных операций, бесспорно, не подходят как базовая платформа для ООБД. Более приспособленной для использования как базовая платформа для СУ ООБД представляется система М-языка с ее более гибкой структурой данных и более процедурным подходом к разработке. Видимо, объектно-ориентированный подход на базе М может превзойти соответствующие реляционные аналоги по скорости доступа и обработки.
2.2 Язык программирования PHP
Язык программирования PHP (Hypertext Preprocessor) — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
В области программирования для сети Интернет PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств, для разработки веб-приложений:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами.
обработка файлов, загружаемых на сервер;
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в апреле 2011 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и др.
Входит в LAMP и WAMP — распространённые наборы программного обеспечения для создания и хостинга веб-сайтов (Linux/Windows, Apache, MySQL, PHP).
Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
2.3 СУБД MySQL
MySQL — свободная система управления базами данных (СУБД). MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
Выбор именно этой СУБД был выбран не случайно, эта субд успела заслужить доверие своей надежностью и скоростью работы при средних нагрузках, что нам и требовалось. Класс Class: DB — представляет собой драйвер связи между фреймворком OposumCMS и базой данных.
2.4 Фреймворк Oposum CMS
Фреймворк определяется как множество конкретных, так и абстрактных классов, а также определенных способов их взаимоотношения. Конкретные классы обычно реализуют взаимные отношения между классами. Абстрактные классы представляют собой точки расширения, в которых каркасы могут быть использованы или адаптированы.
Точка расширения — это та часть фреймворка, для которого не приведена реализация. Соответственно каркас концептуальной модели состоит из концептуальных классов, а каркас программной системы из классов языка программирования общего назначения.
Фреймворк Oposum CMS построен на языке PHP и является минимальным набором классов и методов разработанных для построения веб системы для работы с выбранной базой данных и поддержкой шаблонов HTML+AJAX технологий для организации удобной работы с будущей веб системой.
В разработке программного обеспечения, использовались шаблоны — повторимые архитектурные конструкции, представляющие собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Шаблоны не является законченным образцом, который может быть прямо преобразован в код; это лишь пример решения задачи, который можно использовать в различных ситуациях. Шаблонизатор включенный в состав фреймворка Oposum CMS значительно упростил работу с дизайном системы за счет автоматического генерирования динамического содержания в статических элементах.
3. РАЗРАБОТКА СИСТЕМЫ ТЕСТИРОВАНИЯ
3.1 Система тестирования учащихся
Система тестирования учащихся представляет собой инструмент, который может дать возможность удобной оценки знаний учащихся, и сбора статистики результатов прохождения тестирования учащимися.
Для удобства система будет иметь веб-интерфейс, который будет доступен любому желающему пройти тест, а также преподавателю, из любого браузера компьютера подключенного к единой локальной сети.
Для этих целей была выбрана минимальная сборка фреймворка Oposum CMS последней ревизии на данный момент, с набором классов:
— Class: DB — драйвер обработки запросов БД.
— Class: Template — шаблонизатор шаблонов.
Также был разработан специальный класс Class: Test — тестер, отвечающий за создание и последующую обработку результатов теста.
Для работы системы разработаны модули обработки:
— Module: Stats — вывод статистики результатов в браузере.
— Module: Topic — вывод предметов, и действий над ними.
— Module: Tests — вывод тестов и действий над ними.
— Module: Test — вывод теста и сбор результатов с последующим выводом оценки.
— Module: Users — вывод администраторской панели для управления пользователями (администраторами и преподавателями).
3.2 Структура базы данных
Для разработки системы была разработана специальная база данных под управлением веб-интерфейса основанном на фреймворке Oposum CMS.
База данных основана на MyISAM типе таблиц и представляет собой шесть таблиц (рис. 3.1):
— users — Представляет собой таблицу с учетными записями администраторов и преподавателей.
— topic — Представляет собой таблицу с предметами и их описанием.
— tests — Представляет таблицу тестами, их описанием, а также именем автора теста.
— question — Таблица с вопросами, содержит идентификатор теста, к которому принадлежит, вопрос, 8 вариантов ответа, правильные ответы.
— stats — Представляет таблицу статистики, в которую собираются данные результатов тестов после их прохождения учащимися.
— tmp — Специальная таблица, которую использует генератор тестов, чтобы сохранить промежуточную информацию.
Рис. 3.1 — Структуры таблиц базы данных
3.3 Работа с системой тестирования учащихся
Рассмотрим основные возможности:
— простой и элегантный дизайн основанный на HTML и AJAX (рис. 3.2)
Рис. 3.2 — Общий вид интерфейса Данный интерфейс визуально является простым для понимания любому начинающему работу с ним новичком.
Список предметов представляет собой меню стиля «Аккордеон», при нажатии на предмет он разворачивает свое описание и отображает кнопку перехода к меню выбора тестов по выбранному предмету. В случае если пользователь является администратором или преподавателем, выполнившим вход в систему с помощью правой панели, кроме кнопки в меню отображаются также пункты «Редактировать» и «Удалить».
Перейдя к выбору тестов по предмету, мы увидим подобное первому меню с кнопкой-предложением пройти тест. Нажав на которую мы собственно и начнем проходить тест.
Рис. 3.3 — Вид страницы прохождения теста На этой странице пользователю сдающему тест предлагается ввести свои данные (фамилию, имяотчество, группу), без которых невозможно будет сдать тест. После заполнения данных пользователь приступает к самому тестированию. Тест представляет собой набор вопросов и от 1 до 8 предлагающихся к нему ответов.
По окончании сдачи тестов пользователю будет показан результаты теста, а сам результат будет занесен в статистику.
Рис. 3.4 — Страница статистики
— простое администрирование:
После входа преподавателя или администратора в систему, правая панель видоизменяется, и появляются кнопки:
— Управление — управление пользователями (доступно только администраторам);
— Добавить предмет — возможность добавить предмет и его описание;
— Добавить тест — возможность добавить тест в выбранный предмет (кнопка скрыта, пока вы не выберите предмет на главной странице);
— Выход — возможность выйти из авторизации системы, после окончания добавления или правок.
Рис. 3.5 — Вид правой панели после входа Перейдя на страницу «Управление» мы увидим форму добавление нового пользователя, а ниже ее таблицу-список с пользователями уже зарегистрированными в системе.
Рис. 3.6 — Форма добавления пользователя и их список ниже
4. ЭКОНОМИЧЕСКАЯ ЧАСТЬ
Расчет основной заработной платы исполнителей, занятых разработкой ПО произведен на основании исходных данных, представленных в таблице 4.1.
Таблица 4.1 — Начальные данные
Начальные данные | Значения | Размерность | |
Коэффициент складности, Ксл | 0.08 | ; | |
Нормативна трудоемкости, Тн | Человеко-дня | ||
Мера новизны, Ки | 0.9 | Б | |
Фонд рабочего времени, Фэф | дней | ||
Плановая продолжительность работ, Трд | 0.5 | лет | |
Налог на прибыль при отсутствии льгот | % | ||
Коэффициент премирования, До | 1.4 | ; | |
Цена машино-часа, Цм | грн. | ||
Коэффициент использования типовых программ, Km | 0.5 | ; | |
Объем ПО определяется на основании информации о функции ПО, разрабатываемого. По каталогу функций определяется объем функций. Характеристики функций и их объем приведены в таблице 4.2, общий объем ПО Vо рассчитывается по формуле: