Оболочка для тестирования java
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное
Учреждение высшего образования
«Тульский государственный университет»
Кафедра информационной безопасности
Оболочка для тестирования
Пояснительная записка к курсовой работе по курсу
«Сетевое программирование»
Выполнил: студент группы 220421 _______ Султанова О.А.
Проверил: доцент каф. АИиУС _______ Яблочкин Л.Б.
(подпись)
Тула 2016
Аннотация
Задачей данной курсовой работы по курсу «Сетевое программирование» являются проектирование и разработка информационной системы, представляющей собой оболочку для проведения тестирования. Целью выполнения данной курсовой работы является получение практических навыков в области сетевого программирования и методов разработки клиент-серверных приложений, создания качественного пользовательского интерфейса, а также генерации и написания кодов клиентского и серверного приложений.
Программа разработана в среде программирования NetBeans IDE, с использованием языка программирования Java. Результатом выполнения данной курсовой работы стали навыки в постановке задачи создания информационной системы, проектировании клиент-серверного приложения, работающего с базой данных, и создании надёжного и понятного интерфейса к клиентскому приложению.
Отчёт состоит из 24 листов, включает в себя 4 основных раздела, содержит 9 рисунков, 8 использованных источников, а так же одно приложение.
Содержание
Введение
Проверка и оценка знаний, умений и навыков учащихся является важным структурным компонентом процесса обучения и в соответствии с принципами систематичности, последовательности и прочности обучения должна осуществляться в течение всего периода обучения. Оценка знаний и умений учащихся является важным звеном учебного процесса, от правильной постановки которого во многом зависит успех обучения. В методической литературе принято считать, что оценка является так называемой “обратной связью” между учителем и учеником, тем этапом учебного процесса, когда учитель получает информацию об эффективности обучения предмету. [5]
В последние годы тестирование как метод оценки знаний все больше набирает популярность. На сегодняшний день существует множество разнообразных методов оценки знаний: устный и письменный опрос, собеседование, диктант, вычислительные задания, деловые игры, экзаменационная схема оценки, тестирование. Для создания адекватного и эффективного теста необходимо затратить много труда, именно поэтому для проведения тестирования удобно использовать специальные компьютерные тестирующие системы (тестовые оболочки). Благодаря им процедура тестирования становится очень простой и массовой, поскольку применение вычислительной техники сводит к минимуму затраты времени и средств организаторов тестирования. Этим обусловлена актуальность данной курсовой работы.[8]
Тесты - это достаточно краткие, стандартизированные или не стандартизированные пробы, испытания, позволяющие за сравнительно короткие промежутки времени оценить преподавателями и студентами результативность познавательной деятельности студентов, т.е. оценить степень и качество достижения каждым студентом целей обучения (целей изучения).
Тесты предназначены для того, чтобы оценить успешность овладения конкретными знаниями и даже отдельными разделами учебных дисциплин, и являются более объективным показателем обученности, чем оценка.
Если подходить к проблеме оценки знаний как способу сравнения, то двум разным ученикам следует предлагать одинаковые тесты (вопросы) и ограничивать время размышления. Тесты должны быть предварительно проверены на довольно большой группе ребят. Обязательна при этом и статистическая обработка ответов. До этого момента их даже считают не тестами, а тестовыми заданиями, то есть вопросами, которые обладают недостаточно надежной "проверяющей способностью". Чем больше тестов, тем надежнее оценка знаний. В серьезных случаях при оценке знаний взрослых используют набор из 100 - 200 вопросов, ограничивая время размышления над каждым. Это серьезнейшая проверка, требующая хорошей подготовленности. Облегченный вариант этой проверки уже давно используют в университетах в виде экзаменационных или зачетных тестов. Кроме зачетных или экзаменационных тестов существуют еще поурочные (рабочие) тесты для текущей оценки знаний учащихся на каждом уроке. Именно поурочные тесты требуют к себе особого внимания, так, при необходимости они могут заменить экзаменационные. А вот обратная замена невозможна в силу постепенности прохождения материала. Составлять поурочные тесты нетрудно, но долго, и стоит сказать об их главных особенностях.[7]
1. Тесты должны быть "закрытыми",
то есть иметь варианты ответов.
2. Краткость. Вопрос должен занимать одну строку. Вопрос должен быть абсолютно ясным.
3. Варианты ответов. Оптимальное их число - 4 - 6, редко - 8. Каждый вариант - не более одной строки.
Составить подобные тесты позволяет программа, разработанная в рамках данной курсовой работы.
В настоящее время наиболее часто используются следующие варианты тестовых контрольных мероприятий:
"автоматический", когда обучаемый выполняет зада
ние в непосредственном диалоге с ЭВМ, результаты сразу переносятся в блок обработки;
“полуавтоматический”, когда задания выполняются письменно, а ответы со специальных бланков вводятся в ЭВМ (решения не проверяются);
“автоматизированный”, когда задания выполняются письменно, решения проверяются преподавателем, а в ЭВМ вводятся результаты проверки. [8]
Одним из наиболее актуальных направлений развития компьютерных технологий в образовании является разработка специализированных систем проверки знаний студентов.
Компьютерное тестирование имеет ряд преимуществ:
– быстрое получение результатов испытания и освобождение преподавателя от трудоемкой работы по обработке результатов тестирования;
– объективность в оценке;
– конфиденциальность при анонимном тестировании;
– тестирование на компьютере более интересно по сравнению с традиционными формами опроса, что создает положительную мотивацию у студентов.
Данная работа будет актуальна ввиду вышеперечисленных преимуществ.
Также, в отличие от массы уже существующих оболочек, она будет обладать следующими свойствами: простота в использовании, клиент-серверная структура, создание тестов для любого предмета и любого количества студентов (без ограничения количества компьютеров), нет ограничения на количество введенных вопросов, в зависимости от содержания теста каждый блок будет соответствовать теме. А самое главное, эта оболочка будет доступна для любого пользователя, желающего организовать тестирование, поскольку она разработана именно в этих целях и не будет требовать серийных ключей и т.д., как у любого другого программного обеспечения.
Постановка задачи и изучение предметной области
Основоположники тестирования - Ф.Гальтон, Ч.Спирман, Дж.Каттел, А.Бине, Т.Симон. Сам термин "умственный тест" придумал Кеттел в 1890г. Начало развития современной тестологии массового применения тестов на практике связано с именем французского врача Бине, разработавшего в соавторстве с Симоном метрическую шкалу умственного развития, известную под названием "тест Бине-Симона".
Тестирование (англ. test - испытание, проверка) - экспериментальный метод психодиагностики, применяемый в эмпирических социологических исследованиях, а также метод измерения и оценки различных психологических качеств и состояний индивида.
«Тест — это инструмент, состоящий из квалиметрически выверенной системы тестовых заданий, стандартизированной процедуры проведения и заранее спроектированной технологии обработки и анализа результатов, предназначенный для измерения качеств и свойств личности, изменение которых возможно в процессе систематического обучения» (А.Н. Майоров)
Возникновение тестологических процедур было обусловлено потребностью сопоставления (сравнения, дифференциации и ранжирования) индивидов по уровню развития или степени выраженности различных психологических качеств.
Основной составляющей единицей теста являются тестовые задания.
«Тестовое задание – составная часть теста, отвечающая требованиям технологичности, формы, содержания и, кроме того, статистическим требованиям [3]:
1) известной трудности;
2) достаточной вариации тестовых баллов;
3) положительной корреляцией баллов задания с баллами по всему тесту».
Другими важными составляющими теста являются правила проведения тестирования и технология обработки тестовых результатов. Они позволяют обеспечить сравнимость результатов различных использований одного и того же теста, равенство тестируемых, объективность и справедливость оценки.
Основными преимуществами компьютерных тестовых систем являются их оперативность, объективность, возможность охватить большую аудиторию, автоматизация обработки результатов, возможность самоконтроля учащихся [4].
Тестирование в компьютерной форме исключает возможность ошибки преподавателя при проверке тестовых заданий, сводит к нулю время, необходимое на проверку (время ожидания оценки учащимися), устраняет необходимость раздачи и сбора тестового материала на бумажных носителях.
В отличие от бланковых систем тестирования, компьютерные тесты позволяют использовать сложные методы контроля оценки знаний учащихся, снизить финансовые и временные затраты при проведении тестирования, применить в тестах мультимедийные задания, а так же повысить открытость процесса тестирования [5].
Но наряду с достоинствами, у компьютерных тестов есть и свои недостатки: повышается вероятность случайного выбора ответа, понижается внимание на оформление решения, теряется логика рассуждения, теряется информация о процессе выполнения отдельных заданий учащимися [4].
Для проведения компьютерного тестирования используют специальные программы (тестовые оболочки). В глобальной сети можно найти множество разных тестирующих программ и оболочек. Но большинство из них оказываются примитивными и крайне неудобными в использовании. Для создания тестирующей оболочки недостаточно хорошо владеть приемами программирования. Следует еще очень точно представлять себе условия, в которых применяется этот программный продукт.
Подводя итог вышесказанному, выделим основные задачи данной курсовой работы:
- Определить целевую аудиторию пользователей, для которых предназначен данный программный продукт;
- Разработать простой и понятный интерфейс для программного продукта;
- Написать клиент-серверное приложение для проведения тестирования:
- Предусмотреть администратором возможность добавления новых тестов и вопросов к уже существующим тестам;
- Предусмотреть возможность тестирования по сети.
Инструкция программисту
Программа написана на языке программирования Java версии 1.8.
Java — объектно- ориентированный язык
программирования, разработанный компанией Sun Microsystems (в последующем приобретённой
компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать
на любой виртуальной Java-машине вне зависимости от компьютерной архитектуры. [1]
Математическая модель
Математическая модель приложения - это клиент-серверная модель архитектуры.
Клиент-сервер (англ. Client- server) — вычислительная или
сетевая архитектура, в которой задания
или сетевая нагрузка распределены между
поставщиками услуг, называемыми серверами,
и заказчиками услуг, называемыми клиентами.
Физически клиент и сервер — это программное обеспечение. Обычно они взаимодействуют
через компьютерную сеть посредством сетевых протоколов и находятся на разных вычислительных
машинах, но могут выполняться также и
на одной машине. Программы — сервера,
ожидают от клиентских программ запросы
и предоставляют им свои ресурсы в виде
данных (например, загрузка файлов посредствомHTTP, FTP, B itTorrent, потоковое мультимедиа или работа с базами данных) или сервисных функций (например,
работа с электронной почтой, общение посредством систем мгновенного обмена
сообщениями, просмотр web-страниц во всемир ной паутине). [1]
Сервер обрабатывает запрос клиента, общаясь с базой данных. Клиент посылает сообщения серверу, на которые тот отвечает.
Алгоритм работы программы
Поскольку требуется клиент-серверное приложение, необходимо реализовать отдельно выделенный сервер и клиенты для подключения. Связь между двумя элементами осуществляем через сокеты.
Со́кеты (англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения. [1]
Главный сокет разворачиваем на сервере, он работает в режиме ожидания. Как только сокет на клиенте соединяется к сокету сервера, запускаем отдельный поток для обработки запросов клиента. Связь между ними по протоколу TCP/IP.
TCP/IP - это два основных сетевых пpотокола Internet. Часто это название используют и для обозначения сетей, pаботающих на их основе. Пpотокол IP (Internet Protocol - IP v4) обеспечивает маpшpутизацию (доставку по адpесу) сетевых пакетов. Пpотокол TCP (Transfer Control Protocol) обеспечивает установление надежного соединения между двумя машинами и собственно пеpедачу данных, контpолиpуя оптимальный pазмеp пакета пеpедаваемых данных и осуществляя пеpепосылку в случае сбоя. Число одновpеменно устанавливаемых соединений между абонентами сети не огpаничивается, т. е. любая машина может в некоторый промежуток времени обмениваться данными с любым количеством дpугих машин по одной физической линии. [2]
Теперь расскажу о самом взаимодействии.
Взаимодействие заключается в передаче клиентами кода операции. Код операции, операционный код, опкод — часть машинного языка, называемая инструкцией и определяющая операцию, которая должна быть выполнена.
Определение и формат кодов инструкций зависит от системы команд данного процессора (который может быть как главным процессором, так и более специализированным для работы в какой-либо конкретной области). В отличие от самого опкода, инструкция обычно имеет одно или больше определений для операндов (то есть данных) над которыми должна выполняться операция, хотя некоторые операции могут иметь явные операнды или совсем их не иметь. [1]
Клиент передает некое именованное число серверу (передача осуществляется через потоки). Сервер распознает это число и выполняет операцию. В зависимости от кода операции, клиент может передавать дополнительные данные серверу. Например, для аутентификации администратора помимо кода необходимо передать логин и пароль.
Сервер, в свою очередь, работает с базой данных. В качестве бд выбрана SQLite.
SQLite — компактная встраиваемая реляци онная база данных. SQLite поддерживает динамическое типизирование данных. [1]
Она является встраиваемой, то есть работа осуществляется не по парадигме "клиент-сервер". База расположена локально рядом с программой.
Теперь расскажу о самом тестировании.
Клиент подключается к серверу. Происходит аутентификация тестируемого. Сервер возвращает случайные вопросы по выбранной теме. Клиент последовательно отрисовывает вопросы, получает ответы от тестируемого, подсчитывает статистику, выводит эту информацию и передает ее серверу, который ее сохраняет.
Входные и выходные данные
В данном разделе представлено описание входных и выходных данных программы.
Входными данными для тестирования необходимо ввести ФИО и тему. ФИО является строковым типом в кодировке UTF-8. Список тем загружается с сервера при подключении.
Выходные данные - это статистика (число правильных ответов), дата начала, дата завершения тестирования. Эти данные пишем на сервер.
Для клиентского приложения
в основе формы лежат библиотеки swing. Swing — библиотека для создания графического интерфейса для программ на языке Java. Swing был разработан компанией Sun Microsystems. Он содержит ряд графических компонентов (англ. Swing widgets), таких как кнопки, поля
ввода, таблицы и т. д.
Swing относится к библиотеке классов JFC, которая представляет собой набор библиотек для разработки графических оболочек. [1]
Инструкция пользователю
Для работы с оболочкой для тестирования требуется запустить клиентское приложение. Далее спрашиваем у администратора требуемый IP адрес и порт. Нажимаем «меню – конфигурация», где прописываем требуемые настройки и нажимаем клавишу «ОК». Работа с меню конфигурации представлена на рисунке 1а и 1 б.
Рисунок 1а – Выбор в меню вкладки «конфигурация»
Рисунок 1б – Работа с меню конфигурации
Теперь требуется установить соединение с сервером. Для этого выбираем пункты «меню – подключиться» (рисунок 2а). Если появляется сообщение об установлении соединения, значит, подключение к серверу прошло успешно. Сообщение с успешным подключением к серверу представлено на рисунке 2б.
Рисунок 2а - Выбор пункта в меню «подключение»
Рисунок 2б – Установление успешного соединения с сервером
Если же соединение не установлено - то свяжитесь с администратором для решения проблем подключения.
Далее выбираем пункты «меню – войти» (рисунок 3а). Вводим свои ФИО и тему для тестирования. Нажимаем на клавишу «Войти» для подтверждения. На рисунке 3б изображена заполненная форма пользователя, желающего пройти тестирование.
Рисунок 3а – Выбор в меню пункта «подключение»
Рисунок 3б – Форма с введенными данными для прохождения тестирования
Далее проходим тестирование, выбирая вариант ответа нажатием на один из предложенных. На рисунке 4 показана форма с выполняемым пользователем тестированием.
Рисунок 4 – Прохождение тестирования
По окончании тестирования пользователь получает сообщение о том, что тестирование окончено. Окно с завершением тестирования представлено на рисунке 5.
Рисунок 5 – Окно с завершением тестирования
Тестовый пример
В тестовом примере представлен запуск программы, реализованной в рамках данной курсовой работы, от имени администратора.
Основные настройки для запуска тестировщика от имени администратора являются аналогичными настройкам пользователя, проходящего тест. Они описаны ранее.
Различие заключается в том, что администратор имеет возможность новые темы и добавлять новые вопросы к этим темам.
На рисунке 6 представлено окно редактирования вопросов в тесте.
Рисунок 6 – Окно редактирования вопросов
Заключение
Все больше и больше в нашем информационном обществе развивается тестирование. Его используют при сдаче экзаменов при окончании школы, в средних и высших учебных заведениях, в психологических тестах, при приемах на работу и т.д., поэтому автоматизация этого процесса просто необходима. Это решает массу проблем и отмечается ряд преимуществ использования тестирования, например, отсутствие влияния человеческого фактора, значительная экономия времени тестировщика, сокращение времени контроля и т.д.
В данном проекте предоставлена реализация организации тестирования знаний студентов с возможностью оценки их знаний по количеству верных ответов.
Тестирования направлено на проверку уровня знаний любого количества студентов с дифференциацией по тематике тестирования, при этом имеется пересдачи любого теста, что было реализовано соответственно системой просмотра результатов в профиле администратора и возможностью выбора любой темы теста студентом.
В целом можно сказать, что тестовые оболочки, являясь новшеством в контроле знаний многих предметов, используются довольно редко, но имеют достаточно большую перспективу в будущем. Однако не стоит отказываться и от других, ставших уже традиционными способов контроля знаний, умений и навыков учащихся, дабы более полно представлять картину их сформированности у учащихся и наиболее объективно их оценивать.
Благодаря компьютерному тестированию можно повысить информационную безопасность и предотвратить рассекречивание теста за счет высокой скорости передачи информации и специальной защиты электронных файлов.
Систематический контроль знаний большого числа проверяемых приводит к необходимости автоматизации контроля, использованию при его проведения компьютерной техники и соответствующего программного обеспечения.
Применение компьютеров при контроле знаний является экономически выгодным и обеспечивает повышение эффективности учебного процесса.
Список использованных источников
- Википедия – свободная энциклопедия. [Электронный ресурс] URL: https://ru.wikipedia.org/wiki/ (дата обращения 05.05.2016).
- Федотов А.М. Введение в Internet. Документация по Интернет технологиям - Новосибирск , Институт вычислительных технологий СО РАН, 1996 - 2003
- Аванесов В.С. Композиция тестовых заданий. – М., Центр тестирования, 2002.
- Габова О.В., Русаков А.А. Тестирование - одна из форм диагностики и проверки успешности обучения. Педагогическая информатика, № 3, 2005, - с.13-17
- Охотина Л.Н. Компьютерное тестирование знаний студентов по математики. Педагогическая информатика, № 3, 2007, - с.46-51
Автоматизированное рабочее место для статистической обработки данных/В.В. Шураков, Д.М. Дайитбегов, С.В. Мизрохи, С.В. Ясеновский. – М.: Финансы и статистика, 1990. – 190 с.
Бекаревич Ю. Б., Пушкина Н. В., Смирнова Е. Ю. Управление базами данных. СПб.: Изд. СПбГУ, 1999. – 530 с.
Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А. Д. Хомоненко. — СПб: Корона принт, 2000. — 416 с.

- Об оптимизации системы валютного контроля
- Оборачиваемость запасов готовой продукции как оценка эффективности управления затратами предприятия
- Оборачиваемость оборотных средств
- Оборачиваемость оборотных средств
- Оборачиваемость оборотных средств и пути её ускорения
- Оборачиваемость оборотных средств предприятия
- Оборона Севастополя 1854-1855 года
- Обогащение полезных ископаемых
- Обогащение словарного запаса дошкольников с ОНР
- Обогащение словаря детей младшего школьного возраста
- Обогащение словаря дошкольников с ОНР
- Обогащение словаря у дошкольников с ОНР III уровня
- Обожженный анод
- Обозначение категории меры и времени в русском языке