Разработка автоматизированной системы тестирования знаний ‘Русский язык’

Дипломная работа

Автоматизированное тестирование является одним из средств контроля знаний учащихся. Его основными преимуществами являются непредвзятое отношение к личности испытуемого и автоматизация преподавательского труда проверки знаний обучаемого.

Основными стандартными формами тестов на сегодняшний день являются [1]:

  • тесты закрытой формы, с выбором одного или нескольких ответов из предложенных вариантов;
  • тесты открытой формы, где ответ испытуемый вписывает самостоятельно в отведенном для этого месте;
  • задания на установление соответствия;
  • задания на установление правильной последовательности действий.

Для тестовых сценариев, состоящих из форм первого, третьего и четвертого типа, существует вероятность угадывания правильного ответа из предложенных вариантов. Правильный ответ в заданиях второго типа испытуемый не видит в заданном вопросе, поэтому вероятность подбора верного ответа тестируемым является невысокой, в связи с чем, открытая форма наиболее предпочтительна для тестирования знаний обучаемых.

Проблема средств автоматизированного контроля открытой формы в современных системах тестирования заключается в реализации проверки знаний тестируемого, при условии ввода ответа на ограниченном естественном языке, требующей от тестируемого точного ответа, посимвольно совпадающего с шаблоном в тестовой базе системы. Примером может служить, ставшее обязательным, ЦТ, тестирование которого большей частью осуществляется с применением средств автоматизации проверки ответов. При ответах испытуемого на тесты ЦТ открытых форм, подлежащих автоматизированной проверки, от него требуется ввод шаблона, соответствующий числу либо словосочетанию.

Соответственно, вопросы открытых форм современными системами задаются таким образом, чтобы правильный ответ был единственным. В результате, задания, сформированные подобным образом, позволяют тестировать только точные знания, но не знания, допускающие несколько близких по смыслу вариантов правильных ответов тестируемого, которые он вписывает в произвольной форме на естественном языке [1].

Также, подобные системы не подходят для тестирования общего уровня понимания разделов предметной области. Недостатки методов, применяемых в современных системах, подчеркивают актуальность исследования тестирования в открытой форме без ограничений на ввод испытуемым ответа на естественном языке. Методы исследования должны оценивать схожесть ответа тестируемого к эталонному ответу, составляемому экспертом. Схожесть ответов определяется через семантическую близость, которая является мерой смыслового соответствия между эталонным ответом и ответом тестируемого. Для ее определения, методы должны учитывать формулирование ответа испытуемым, имеющего один смысл, в разных формах, например, получаемых в результате изменения порядка слов или предложений либо замены ключевых терминов на их синонимы [1].

42 стр., 20612 слов

Использование информационных технологий для контроля и оценки ...

... данной дипломной работы является исследование методики оценки знаний, умений и навыков у учащихся с применением информационных технологий. Объектом работы является учебно-воспитательный процесс в общеобразовательных школах. Предмет исследования: применение информационных технологий в процессе оценки знаний, ...

Целью дипломной работы является разработка автоматизированной системы тестирования знаний по дисциплине «Русский язык».

Для достижения цели дипломной работы необходимо решить следующие задачи:

  • спроектировать и реализовать структуру базы данных, функциональную модель системы;
  • разработать алгоритм работы приложения в соответствии с функциональной моделью системы;
  • разработать и реализовать удобный пользовательский графический интерфейс, а также его компоненты;
  • спроектировать и реализовать формы для ввода и редактирования данных, проверку корректности вводимых данных;
  • реализовать разграничение модулей, путем блокировки или сокрытия элементов интерфейса.

1 Понятие автоматизации

В XXI веке можно смело говорить о том, что без современных технологий автоматизации не только идти вперёд, но и удержаться на прежнем месте в конкурентной борьбе практически не возможно [2].

Автоматизация − одно из направлений научно-технического прогресса, применение саморегулирующих технических средств, экономико-математических методов и систем управления, освобождающих человека от участия в процессах получения, преобразования, передачи и использования энергии, материалов или информации, существенно уменьшающих степень этого участия или трудоемкость выполняемых операций [3].

Понятие автоматизация не может существовать без понятия информационная система. По мнению В. Богданова, информационная система (ИС) − это система, реализующая информационную модель предметной области, чаще всего − какой-либо области человеческой деятельности. ИС должна обеспечивать получение (ввод или сбор), хранение, поиск, передачу и обработку (преобразование) информации. Другое определение информационной системы − все информационные потоки, точки их возникновения, обработки, накопления и потребления конечными пользователями плюс технические средства и технологии обработки информации [3].

Автоматизированная информационная система − совокупность программных и аппаратных средств, предназначенных для хранения и/или управления данными и информацией и производства вычислений. Разработка прикладного решения может быть осуществлена в короткое время благодаря развитым средствам и возможностям готовых систем посредством конфигурирования [2].

Проанализировав процесс разработки прикладного решения процесс конфигурирования можно определить, как полное изменение или дополнение системных настроек создаваемого прикладного решения. Разрабатывая средство автоматизации, следует чётко определить цели создания системы.

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

4 стр., 1656 слов

Системы автоматизации в гостиницах

... пользователя его собственное индивидуальное решение, ориентированное на особенности бизнеса, так называемую персональную конфигурацию. 2. Система «Галактика» Назначение и области применения: Система «Галактика» предназначена для автоматизации ... Для того чтобы рационально использовать ресурсы гостиницы, необходимо спланировать весь процесс автоматизации заранее. Важно решить, какие именно ...

  • общее повышение надежности информационной системы;
  • разгрузка персонала от рутинных и сложных операций;
  • уменьшение количества внутрифирменных сверок;
  • ускорение подготовки отчетности;
  • повышение достоверности отчетности.

Автоматизация тестирования — это набор практик, подходов, методов и инструментальных средств, позволяющих исключить участие человека в реализации некоторых задач по тестированию. Из этого определения следует, что автоматизация тестирования не является стадией процесса тестирования, не следует за или перед каким-то этапом, а является процессом, пронизывающим большинство стадий процесса тестирования.

Рассмотрим несколько понятий, важных для понимания автоматизации тестирования. Операция — последовательность шагов (действий), выполняемая конечным пользователем, процессом или сторонним по отношению к системе актёром, выполнение которой приводит к значимому для пользователя, системы или автоматизируемого процесса результату, который, в свою очередь может быть зафиксирован и оценен. Операция (конечное действие) является атомарной (наименьшей) единицей автоматизации, которая может использоваться при оказании услуг.

Входные данные и параметры системы должны быть определены на этапе ее проектирования. Внешние по отношению к автоматизированной системе какой-либо предметной области данные должны храниться во внешних файлах. Результаты выполнения алгоритмов и время/место контроля полученных результатов должны быть определены во время проектирования системы. Автоматизированная система должна также включать логику обработки исключительных ситуаций, а также иметь связанную с ним специальную функциональность, возвращающую систему в работоспособное состояние.

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

Необходимо разработать программное обеспечение для пользователя, позволяющее автоматизировать процесс тестирования знаний по дисциплине «Русский язык».

В приложении должны быть реализованы следующие модули:

  • Модуль «Учащийся», позволяющий проводить регистрацию ученика, выбор теста по определенной теме, тестирование и просмотр его результатов, а также смену текущего пользователя системы без перезапуска приложения.

— Модуль «Преподаватель», позволяющий проходить авторизацию в системе, добавлять или вносить изменения в тесты системы, добавлять или изменять вопросы и варианты ответов на тестовые вопросы, указывая, в том числе и правильный ответ, иметь возможность просмотра результатов тестирования учащихся и смены текущего пользователя без перезапуска приложения.

Программа должна являться полностью завершенным программным продуктом, не требующим каких-либо дополнительных специальных компонентов.

Кроме того, необходимо спроектировать удобный пользовательский интерфейс, который должен быть несложен в использовании и в состоянии обеспечить эффективную работу пользователя с приложением, не требуя предварительного изучения справочной документации. Интерфейс, по сути, представляет собой окно приложения и содержащиеся на нем компоненты, которые реализуют функции перечисленных выше структурных элементов приложения.

Также должен быть предусмотрен вывод сообщений об ошибках, в случае введения неверных команд или данных в поля различных форм программы.

7 стр., 3138 слов

Жизненный цикл автоматизированных информационных систем. Каскадная модель

... ресурсы и технические средства автоматизации. Модели жизненного цикла АИС. Модель жизненного цикла - структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач, выполняемых на ... Данный процесс может включать в себя анализ, оценку и тестирование. Процесс аттестации предусматривает определение полноты соответствия заданных требований к создаваемой системе или ...

2. СИСТЕМА ТЕСТИРОВАНИЯ ЗНАНИЙ

1 Функциональная модель системы

Функциональное моделирование − процесс моделирования функций выполняемых рассматриваемой информационной системой/объектом, путем создания описательного структурированного графического изображения, показывающего что, как и кем делается в рамках функционирования объекта и объектов, связывающих эти функции, с учетом имеющейся информации [3].

Целью создания функциональной модели процесса является точная спецификация всех функций, осуществляемых в рамках процесса более высокого уровня иерархии, а также характера взаимосвязей между ними. Будучи построенной, такая модель способна обеспечить полное представление, как о функционировании обследуемого процесса, так и обо всех имеющих в нем место потоках информации и материалов. Функциональная модель позволяет четко определить распределение ресурсов между операциями процесса, что дает возможность оценить эффективность их использования [3].

Функциональная модель сети процессов обработки информации должна создаваться в соответствии со следующим примерным перечнем требований:

  • Строится с точки зрения руководства предприятия. При таком подходе модель должна включать все процессы и их элементы, влияющие на производство конечной продукции;
  • Модель должна содержать процессы, определенные как обязательные в рамках требований соответствующей нормативно-технической документации;
  • Модель должна охватывать все стадии жизненного цикла продукции, относящиеся к сфере деятельности предприятия.

Для того чтобы функциональная модель удовлетворяла перечисленным требованиям, она должна строиться как бизнес-модель делового процесса. Такая модель она будет охватывать требуемые процессы жизненного цикла, а также связанные с ними вспомогательные процессы и процессы менеджмента, входящие в состав деятельности организации [3].

Бизнес-процесс — это совокупность процессов (операций, действий) и взаимодействий между ними, результатом которой является продукция и/или услуги, поставляемые потребителям, а входами — материальные, информационные и трудовые ресурсы, поставляемые внешними поставщиками.

Процесс в функциональной модели есть преобразование входных материалов или информации в продукт на выходе с использованием ресурсов в виде механизма и при выполнении условий, представленных в виде управления. Такую интерпретацию часто называют бизнес-правилом описания процесса. Функциональная модель процессов, разработанная в такой интерпретации, позволяет точно описать бизнес — правила организации, проанализировать их. А затем, выявив «узкие» места и внося изменения в деловой процесс, оценить степень влияния предлагаемых изменений на существующие бизнес — правила [3].

Изучение системы посредством функционального моделирования для описания структуры процессов необходимо начинать с классификации имеющихся в организации процессов. Методика выделения из общей совокупности процессов организации дерева функций, определяющих выход, базируется на технике иерархического моделирования [3].

Диаграмма нулевого уровня представлена на рисунке 2.1. На вход системы поступают данные о тесте, выбранном учеником, и данные самого учащегося (имя, класс).

9 стр., 4493 слов

Базы данных, основные модели их организации

... и внутренним уровнем соответственно (рис. 1.3). Рис. 1.3. Уровни СУБД 2.2. Типы баз данных На протяжении ряда лет было предложено несколько моделей реализации систем с базами данных: иерархический, сетевой, реляционный и объектно-ориентированный. Иерархические и сетевые базы данных на ...

Функционирует система согласно правилам и стандартам ввода информации и тестирования. Исполнительные механизмы системы — пользователь и программный продукт. На выходе системы находятся отчеты по результатам тестирования и оценка учащегося.

Разработка автоматизированной системы тестирования знаний 'Русский язык' 1

Рисунок 2.1 — Диаграмма нулевого уровня

Диаграмма первого уровня (декомпозиция нулевого) представлена на рисунке 2.2.

Разработка автоматизированной системы тестирования знаний 'Русский язык' 2

Рисунок 2.2 — Диаграмма первого уровня

На вход блока «Выбор теста» поступают данные о выбранном тесте и данные учащегося. Функционирует блок согласно правилам и стандартам ввода данных. Исполнительные механизмы системы — пользователь и программный продукт. На выходе блока находятся номера тестов в системе.

На вход блока «Запуск теста» поступают номер теста, данные учащегося и данные теста. Исполнительные механизмы системы — пользователь и программный продукт. На выходе блока находятся проверенные данные заявки.

На вход блока «Тестирование» поступают вопросы теста и данные теста. Функционирует блок согласно правилам и стандартам тестирования. Исполнительные механизмы системы — пользователь и программный продукт. На выходе блока находится оценка учащегося.

На вход блока «Запись и отображение результата» поступают данные из сформированной ранее оценки учащегося. Функционирует блок согласно правилам и стандартам ввода данных. Исполнительные механизмы системы — пользователь и программный продукт. На выходе блока находятся сформированные им отчеты.

2 Проектирование схемы базы данных

Под базой данных понимается множество взаимосвязанных элементарных групп данных (информации), которые могут обрабатываться одной или несколькими прикладными системами. Система базы данных состоит из базы данных, программного обеспечения общего назначения, которая называется системой управления базой данных (СУБД), и служит для управления базой данных; соответствующего оборудования и людей.

Каждая СУБД должна удовлетворять следующим требованиям:

  • обеспечивать пользователю возможность создавать новые БД и определять их схему (логическую структуру данных) с помощью специального языка − языка определения данных поддерживать разнообразные представления одних и тех же данных;
  • позволять «запрашивать» данные и изменять их с помощью языка запросов или языка манипулирования данными, допускать интеграцию и совместное использование данных различными приложениями;
  • поддерживать хранение очень больших массивов данных, измеряемых гигабайтами и более, в течение долгого времени, защищая их от случайной порчи и неавторизованного использования, а также − обеспечивать модификацию БД и доступ к данным путем запросов, т.е.

гарантировать безопасность и целостность данных;

— контролировать доступ к данным одновременно для многих пользователей, исключать влияние запроса одного пользователя на запрос другого и не допускать одновременный доступ, который может испортить данные, т.е. гарантировать управление параллельным доступом к данным.

Система с базой данных состоит из следующих компонентов:

16 стр., 7860 слов

Автоматизированная информационная система «Библиотека колледжа»

... -серверам: через ODBC-драйверы. Доступ к базам данных обеспечивается внутри локальной сети и через Интернет. Система OPAC-mini компании «Документальные информационные технологии» предназначена для автоматизации средних и мелких библиотек ...

  • Пользователи, т.е. люди, которые используют данные;
  • Приложения, т.е. программы пользователей, которым требуются данные из системы;
  • СУБД — программное обеспечение, которое управляет доступом к данным и обеспечивает указанные функциональные возможности системы с базой данных;
  • Данные, т.е. строки, хранящиеся в файлах;
  • Система-хост — компьютерная система, в которой хранятся файлы. Доступ к строкам данных осуществляется системой-хостом.

Роль СУБД состоит в том, чтобы генерировать запросы, позволяющие использовать функциональные возможности системы управления файлами системы-хоста для обслуживания различных приложений. СУБД — это дополнительный уровень программного обеспечения, надстроенный над программным обеспечением системы-хоста.

Проведенный анализ предметной области позволил выявить следующий набор сущностей:

  • Вопросы — содержит вопросы определенного теста;
  • Ответы — содержит варианты ответов на определенный вопрос;
  • Тесты — содержит тесты, которые могут использоваться системой;
  • Преподаватели — содержит данные о преподавателях дисциплины;
  • Регистрации — содержит данные о регистрациях тестируемых;
  • Тестирование — содержит данные о результатах тестирования.

В соответствии с выделенными сущностями можно построить нашу первую ER-диаграмму. Диаграмма ER («сущность-связь»), построенная на основании выделенных сущностей предметной области и ее правил, имеет следующий вид (рисунок 2.5):

Разработка автоматизированной системы тестирования знаний 'Русский язык' 3

Рисунок 2.5 — Диаграмма «сущность-связь»

Диаграмма на рисунке 2.5 соответствует следующим правилам:

  • Один тест включает в себя 1 и более вопросов;
  • Один вопрос включает в себя 1 и более вариантов ответов;
  • Один тест включает себя одного преподавателя;
  • Одно тестирование включает в себя 1 и более тестов;
  • Одно тестирование включает в себя одну регистрацию.

Теперь опишем атрибуты выделенных ранее основных сущностей предметной области.

Вопросы:

  • Код вопроса;
  • Код теста;
  • Вопрос.

Регистрации:

  • Код регистрации;
  • Учащийся;
  • Класс;
  • Дата.

Тесты:

  • Код теста;
  • Код преподавателя;
  • Тематика;
  • Вопросов;

Тестирование:

  • Код тестирования;
  • Код регистрации;
  • Код теста;
  • Начато;
  • Окончено;
  • Верных ответов;
  • Оценка системы.

Ответы:

  • Код ответа;
  • Код вопроса;
  • Ответ;
  • Правильный.

Преподаватели:

  • Код преподавателя;
  • Преподаватель;
  • Логин;
  • Пароль.

Проверка перечисленных объектов на соответствие различным нормальным формам позволила сделать вывод о нахождении отношений в 4-й нормальной форме. Проектирование физической структуры таблиц базы данных и связей осуществлялось при помощи инструментальной среды AllFusion ERwin Data Modeler.

Нормальная форма − свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение [3].

7 стр., 3168 слов

Разработка базы данных информационной системы для автоматизации ...

... области были выбраны следующие виды расчетов для автоматизации движения денежных средств через кассу: расчетные поручения, расчеты по аккредитивам, ... модель должна помочь разработчикам выбрать структуру хранения данных и реализовать систему доступа к ним. 2 Модель СУБД ... этих запросов были созданы отчеты. Они представлены в приложениях Г и Д. Заключение Проанализировав безналичные формы отчетности ...

Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации.

AllFusion ERwin Data Modeler (ранее ERwin) — CASE-средство для проектирования и документирования баз данных, которое позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных. Модели данных помогают визуализировать структуру данных, обеспечивая эффективный процесс организации, управления и администрирования таких аспектов деятельности предприятия, как уровень сложности данных, технологий баз данных и среды развертывания [3].

Data Modeler предназначен для всех компаний, разрабатывающих и использующих базы данных, для администраторов баз данных, системных аналитиков, проектировщиков баз данных, разработчиков, руководителей проектов. Продукт позволяет управлять данными в процессе корпоративных изменений, а также в условиях стремительно изменяющихся технологий. Он сочетает графический интерфейс Windows, инструменты для построения ER-диаграмм, редакторы для создания логического и физического описания модели данных и прозрачную поддержку ведущих реляционных СУБД и настольных баз данных. ERwin Data Modeler создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения как части документации, необходимой в цикле разработки [3].

Однако данный продукт далеко не только инструмент для рисования. ERwin автоматически создает базу данных (таблицы, индексы, хранимые процедуры, триггеры для обеспечения ссылочной целостности и другие объекты, необходимые для управления данными).

В ERwin существуют два уровня представления и моделирования — логический и физический. Логический уровень означает прямое отображение фактов из реальной жизни. Целевая СУБД, имена объектов и тины данных, индексы составляют второй (физический уровень модели).

Различие между логическим и физическим представлением данных официально признано в 1978 году, когда комитет ANSI/SPARC предложил обобщенную структуру систем баз данных. Эта структура получила название трехуровневой архитектуры. Три уровня архитектуры следующие: внутренний, концептуальный и внешний [3].

Внутренний уровень — это уровень, определяющий физический вид базы данных, наиболее близкий к физическому хранению и связан со способами сохранения информации на физических устройствах хранения. С данным уровнем связаны дисководы, физические адреса, индексы, указатели и т.д. За этот уровень отвечают проектировщики физической БД, которые решают, какие физические устройства будут хранить данные, какие методы доступа будут использоваться для извлечения и обновления данных и какие меры следует принять для поддержания или повышения быстродействия системы управления базами данных. Пользователи не касаются этого уровня [3].

13 стр., 6077 слов

Технологии разработки и управления базами данных

... баз данных и различных моделей организации данных. Собственно, модель - это основа, на которую опирается та или иная база данных. В той или иной модели определяются связи между данными, типы вводимых данных, методы ... от даты пожара. пожар управление сервер access 1. Описание структуры базы данных База данных состоит из трех таблиц Виды объектов, Данные о пожарах, Ликвидация пожаров. Рис.1. Таблица ...

Концептуальный уровень — структурный уровень, определяющий логическую схему базы данных. На данном уровне выполняется концептуальное проектирование базы данных, которое включает анализ информационных потребностей пользователей и определение нужных им элементов данных. Результатом концептуального проектирования является концептуальная схема, логическое описание всех элементов данных и отношений между ними [3].

Внешний уровень — структурный уровень БД, определяющий пользовательские представления данных. Каждая пользовательская группа получает свое собственное представление данных в БД. Каждое такое представление данных дает ориентированное на пользователя описание элементов данных, из которых состоит представление данных, и отношений между ними. Его можно напрямую вывести из концептуальной схемы. Совокупность таких пользовательских представлений данных и дает внешний уровень [3].

Процесс построения информационной модели состоит из следующих шагов:

  • определение сущностей;
  • определение зависимостей между сущностями;
  • задание первичных и альтернативных ключей;
  • определение атрибутов сущностей;
  • приведение модели к требуемому уровню нормальной формы;
  • переход к физическому описанию модели — назначение соответствий: имя сущности — имя таблицы, атрибут сущности атрибут таблицы;
  • задание триггеров, процедур и ограничений;
  • генерация базы данных.

Таким образом, после нормализации была получена схема данных (логическая модель ERWin), представленная на рисунке 2.6.

Разработка автоматизированной системы тестирования знаний 'Русский язык' 4

Рисунок 2.6 — Схема данных (логическая модель ERWin)

Для осуществления генерации базы данных построим физическую модель ERWin, указав при этом ключи, типы и размерности атрибутов. Такая модель представлена на рисунке 2.7.

Разработка автоматизированной системы тестирования знаний 'Русский язык' 5

Рисунок 2.7 — Схема данных (физическая модель ERWin)

2.3 Проектирование архитектуры системы

Обычно, когда говорят «сервер», имеют в виду сервер в архитектуре клиент-сервер, а когда говорят «клиент» — имеют в виду клиент в этой же архитектуре. Суть ее в том, чтобы разделить функции между двумя подсистемами: клиентом, который отправляет запрос на выполнение каких-либо действий, и сервером, который выполняет этот запрос. Взаимодействие между клиентом и сервером происходит посредством стандартных специальных протоколов, таких как TCP/IP и z39.50.

Сервер представляет собой набор программ, которые контролируют выполнение различных процессов. Соответственно, этот набор программ установлен на каком-то компьютере. Часто компьютер, на котором установлен сервер, и называют сервером. Основная функция компьютера-сервера — по запросу клиента запустить какой-либо определенный процесс и отправить клиенту результаты его работы [8].

25 стр., 12274 слов

Создание мобильного приложения для организации

... приложение запущено. мобильный информационный интерфейс Пользовательский интерфейс приложения должен быть нативным для платформы Android и соответствовать основным рекомендациям по разработке приложений ... данной дипломной работы является создание мобильного приложения для ... по заказу, а также возможность: быстрого набора номера клиента из данных заказа; поиска адреса оказания техпомощи из данных ...

Клиентом называют любой процесс, который пользуется услугами сервера. Клиентом может быть как пользователь, так и программа. Основная задача клиента — выполнение приложения и осуществление связи с сервером, когда этого требует приложение. То есть клиент должен предоставлять пользователю интерфейс для работы с приложением, реализовывать логику его работы и при необходимости отправлять задания серверу [8].

Взаимодействие между клиентом и сервером начинается по инициативе клиента. Клиент запрашивает вид обслуживания, устанавливает сеанс, получает нужные ему результаты и сообщает об окончании работы.

Услугами одного сервера чаще всего пользуется несколько клиентов одновременно. Поэтому каждый сервер должен иметь достаточно большую производительность и обеспечивать безопасность данных.

Логичнее всего устанавливать сервер на компьютере, входящем в какую-либо сеть, локальную или глобальную. Однако можно устанавливать сервер и на отдельно стоящий компьютер (тогда он будет являться одновременно и клиентом и сервером).

Основной принцип технологии клиент-сервер заключается в разделении функций приложения на три группы [8]:

  • ввод и отображение данных (взаимодействие с пользователем);
  • прикладные функции, характерные для данной предметной области;
  • функции управления ресурсами (файловой системой, базой данных).

Поэтому, в любом клиент-серверном приложении выделяются следующие компоненты [6]:

  • компонент представления данных;
  • прикладной компонент;
  • компонент управления ресурсом.

Связь между компонентами осуществляется по определенным правилам, которые называют «протокол взаимодействия».

Компанией «Gartner Group», специализирующейся в области исследования информационных технологий, предложена следующая классификация двухзвенных моделей взаимодействия клиент-сервер (рисунок 2.8).

Двухзвенными эти модели называются потому, что три компонента приложения различным образом распределяются между двумя узлами [7].

Разработка автоматизированной системы тестирования знаний 'Русский язык' 6

Рисунок 2.8 — Классификация моделей клиент-сервер

Исторически первой появилась модель распределенного представления данных, которая реализовывалась на универсальной ЭВМ с подключенными к ней неинтеллектуальными терминалами. Управление данными и взаимодействие с пользователем при этом объединялись в одной программе, на терминал передавалась только «картинка», сформированная на центральном компьютере [7].

Затем, с появлением персональных компьютеров (ПК) и локальных сетей, были реализованы модели доступа к удаленной базе данных. Некоторое время базовой для сетей ПК была архитектура файлового сервера. При этом один из компьютеров является файловым сервером, на клиентах выполняются приложения, в которых совмещены компонент представления и прикладной компонент (СУБД и прикладная программа).

Протокол обмена при этом представляет набор низкоуровневых вызовов операций файловой системы. Такая архитектура, реализуемая, как правило, с помощью персональных СУБД, имеет очевидные недостатки − высокий сетевой трафик и отсутствие унифицированного доступа к ресурсам [7].

С появлением первых специализированных серверов баз данных появилась возможность другой реализации модели доступа к удаленной базе данных. В этом случае ядро СУБД функционирует на сервере, протокол обмена обеспечивается с помощью языка SQL. Такой подход по сравнению с файловым сервером ведет к уменьшению загрузки сети и унификации интерфейса «клиент-сервер». Однако, сетевой трафик остается достаточно высоким, кроме того, по-прежнему невозможно удовлетворительное администрирование приложений, поскольку в одной программе совмещаются различные функции [7].

Позже была разработана концепция активного сервера, который использовал механизм хранимых процедур. Это позволило часть прикладного компонента перенести на сервер (модель распределенного приложения).

Процедуры хранятся в словаре базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, что и SQL-сервер. Преимущества такого подхода: возможно централизованное администрирование прикладных функций, значительно снижается сетевой трафик (т.к. передаются не SQL-запросы, а вызовы хранимых процедур).

Недостаток − ограниченность средств разработки хранимых процедур по сравнению с языками общего назначения [7].

На практике сейчас обычно используются смешанный подход:

  • простейшие прикладные функции выполняются хранимыми процедурами на сервере;
  • более сложные функции реализуются на клиенте непосредственно в прикладной программе.

Сейчас ряд поставщиков коммерческих СУБД объявили о планах реализации механизмов выполнения хранимых процедур с использованием языка Java. Это соответствует концепции «тонкого клиента», функцией которого остается только отображение данных (модель удаленного представления данных).

В последнее время также наблюдается тенденция ко все большему использованию модели распределенного приложения. Характерной чертой таких приложений является логическое разделение приложения на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате. В этом случае двухзвенная архитектура клиент-сервер становится трехзвенной, а к некоторых случаях, она может включать и больше звеньев (рисунок 2.9) [7].

Разработка автоматизированной системы тестирования знаний 'Русский язык' 7

Рисунок 2.9 — Модель распределенного приложения

2.4 Построение схемы ресурсов

Перед разработкой программного продукта необходимо определить основные требования к нему. Для этого необходимо определить преследуемые цели и потребителей продукта, дать общую формулировку задачи и определить основные функции.

Цели:

  • основная цель — разработка автоматизированной системы тестирования знаний по дисциплине «Русский язык»;

Потребители системы:

  • бюджетная организация (школа), оказывающая услуги по обучению и контролю уровня знаний клиентов (учащихся) по дисциплине «Русский язык».

Общая формулировка задачи:

  • создание автоматизированной системы тестирования знаний по дисциплине «Русский язык».

Основные функции системы:

  • регистрация тестируемого или авторизация преподавателя;
  • добавление или изменение данных теста;
  • добавление, изменение или удаление вопросов теста;
  • добавление, изменение или удаление вариантов ответа вопроса;
  • загрузка и считывание позиций справочников приложения;
  • возможность просмотра результатов тестирования знаний;
  • возможность смены текущего пользователя без перезапуска приложения.

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

На рисунке 2.10 представлена предложенная в ходе проектирования схема ресурсов.

Разработка автоматизированной системы тестирования знаний 'Русский язык' 8

Рисунок 2.10 — Схема ресурсов системы

Схема ресурсов была построена на основании следующих правил обработки данных и конфигурации управляющих этой обработкой блоков:

  • программный комплекс состоит из клиентского приложения и SQL сервера;
  • все пользовательские данные хранятся в таблицах базы данных, к которой подключается SQL сервер;
  • для соединения с SQL сервером клиент имеет файл настроек, содержащий параметры подключения;
  • клиент отправляет запрос SQL серверу, содержащий текст запроса и параметра для его выполнения;
  • в зависимости от команды SQL сервер возвращает клиенту наборы строк (результаты выборки);
  • клиентское приложение считывает отправленные SQL сервером данные в элементы управления и компоненты формы.

3. РАЗРАБОТКА ПРОЕКТА СИСТЕМЫ

1 Выбор программных средств

Программный продукт «Система тестирования знаний» разработан на языке программирования C# с использованием MS Visual Studio 2013 и MS SQL Server 2008.

C# (Си-шарп) − объектно-ориентированный язык программирования для платформы .NET. Разработан в 2000 году Андерсом Хейлсбергом, Скоттом Вилтамутом и Питером Гольде под эгидой Microsoft Research. Основным постулатом С# является высказывание: «всякая сущность есть объект». Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода. C# − это полнофункциональный объектно-ориентированный язык, который поддерживает все три «столпа» объектно-ориентированного программирования: инкапсуляцию, наследование и полиморфизм. Он имеет прекрасную поддержку компонентов, надежен и устойчив благодаря использованию «сборки мусора», обработки исключений, безопасности типов. Язык C# разрабатывался «с нуля» и вобрал в себя много полезных свойств таких языков, как C++, Java, Visual Basic, а также Pascal, Delphi и др. При этом необходимость обратной совместимости с предыдущими версиями отсутствовала, что позволило языку C# избежать многих отрицательных сторон своих предшественников. Выделение и объединение лучших идей современных языков программирования делает язык C# не просто суммой их достоинств, а языком программирования нового поколения [9].

# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников − языков C++, Delphi, Modula и Smalltalk − С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (в отличие от Haskell).Синтаксические конструкции С# унаследованы не только от C++, но и от Visual Basic. Например, в С#, как и в Visual Basic, используются свойства классов как C++, С# позволяет производить перегрузку операторов для созданных вами типов (Java не поддерживает ни ту, ни другую возможность).

С# − это фактически гибрид разных языков. При этом, С# синтаксически не менее (если не более) чист, чем Java, так же прост, как Visual Basic, и обладает практически той же мощью и гибкостью, что и C++. Подводя итоги, еще раз выделим основные особенности С# [9]:

  • Указатели больше не нужны. В программах на С#, как правило, нет необходимости в работе с ними (однако если вам это потребуется, пожалуйста, − возможности для работы с указателями в вашем распоряжении);
  • Управление памятью производится автоматически;
  • В С# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов.
  • В С# осталась возможность перегружать операторы, унаследованная от C++. При этом значительная часть возникавших при этом сложностей ликвидирована;
  • Предусмотрена полная поддержка использования программных интерфейсов. Однако в отличие от классического СОМ, применение интерфейсов − это не единственный способ работы с типами, используя различные двоичные модули .NET позволяет передавать объекты (как ссылки или как значения) через границы программных модулей;

— Также предусмотрена полная поддержка аспектно-ориентированных программных технологий (таких как атрибуты).

Это позволяет присваивать типам характеристики (что во многом напоминает COM IDL) для описания в будущем поведения данной сущности.SQL Server 2008 представляет собой платформу для работы с базами данных, обеспечивающую возможность крупномасштабной оперативной обработки транзакций (OLTP), хранения данных и работы с приложениями для электронной торговли, а также является платформой бизнес-аналитики для создания решений по интеграции данных, анализу и составлению отчетов [6].

В структуру Microsoft SQL Server 2008 входят следующие компоненты или, как их иначе называют, «службы» [6]:

  • Компонент Database Engine. Компонент Database Engine представляет собой основную службу для хранения, обработки и обеспечения безопасности данных. Этот компонент обеспечивает управляемый доступ к ресурсам и быструю обработку транзакций, что позволяет использовать его даже в самых требовательных корпоративных приложениях обработки данных. Кроме того, компонент Database Engine предоставляет разносторонние средства поддержания высокого уровня доступности;
  • Службы Analysis Services − многомерные данные.

Службы Analysis Services поддерживают обработку OLAP, позволяя проектировать и создавать многомерные структуры, которые содержат данные, собранные из других источников данных (например, реляционных баз данных), и управлять этими многомерными структурами;

  • Службы Analysis Services − интеллектуальный анализ данных. Благодаря службам Analysis Services можно проектировать, создавать и визуализировать модели интеллектуального анализа данных. Разнообразие стандартных алгоритмов интеллектуального анализа данных позволяет создавать такие модели на основе других источников данных;
  • Службы Integration Services.

Службы Integration Services представляют собой платформу для создания высокопро-изводительных решений по интеграции данных, в том числе пакетов для хранения данных, обеспечивающих извлечение, преобразование и загрузку данных;

  • Репликация. Репликация представляет собой набор технологий, с помощью которых данные или объекты баз данных можно скопировать и перенести из одной базы данных в другую, а затем синхронизировать эти базы данных для обеспечения согласованности. Благодаря репликации данные можно размещать в различных местах, обеспечивая возможность доступа к ним удаленных и мобильных пользователей по локальным или глобальным сетям, посредством коммутируемых и беспроводных соединений, а также через Интернет;
  • Службы Reporting Services.

Службы Reporting Services предлагают средства создания корпоративных отчетов с поддержкой веб-интерфейса, которые позволяют включать в отчеты данные из различных источников, публиковать отчеты в разнообразных форматах, а также централизованно управлять безопасностью и подписками;

  • Компонент SQL Server Service Broker Компонент Service Broker призван помочь разработчикам в создании безопасных масштабируемых приложений баз данных. Это новая технология компонента Database Engine предоставляет платформу для взаимодействия на основе обмена сообщениями, благодаря которой независимые компоненты приложений могут действовать как единое целое. В компонент Service Broker включена инфраструктура асинхронного программирования, которая может использоваться как приложениями в пределах одной базы данных или экземпляра, так и распределенными приложениями;Server 2008 представляет «среды» для облегчения выполнения задач разработки и управления: среда SQL Server Management Studio (рисунок 3.1) и среда Business Intelligence Development Studio. В среде Management Studio можно разрабатывать решения компонента SQL Server Database Engine и решения по уведомлению и управлять ими, управлять развернутыми решениями служб Analysis Services, запускать пакеты служб Integration Services и управлять ими, управлять серверами, отчетами и моделями отчетов служб Reporting Services. В среде BI Development Studio можно разрабатывать решения бизнес-аналитики: проекты служб Analysis Services используются для разработки кубов, измерений и структур интеллектуального анализа данных;
  • проекты служб Reporting Services − для создания отчетов;
  • проекты моделей отчетов − для определения моделей отчетов и проекты служб Integration Services − для создания пакетов. Обе эти среды тесно взаимосвязаны с Microsoft Visual Studio и Microsoft Office System [6].

В этих средах SQL Server 2008 предоставляет графические инструменты, необходимые для проектирования, разработки, развертывания и администрирования реляционных баз данных, аналитических объектов, пакетов преобразования данных, топологий репликации, отчетов, серверов отчетов и серверов уведомлений. Кроме того, SQL Server 2008 включает программы командной строки, позволяющие выполнять из командной строки задачи администрирования [6].

Язык SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL нельзя назвать языком программирования.

Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

  • создание в базе данных новой таблицы;
  • добавление в таблицу новых записей;
  • изменение записей;
  • удаление записей;
  • выборка записей из одной или нескольких таблиц.

Разработка автоматизированной системы тестирования знаний 'Русский язык' 9

Рисунок 3.1 — Окно SQL Server Management Studio

Со временем, SQL усложнился − обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) − и стал приобретать черты, свойственные языкам программирования. Каждое предложение SQL − это запрос или обращение к базе данных, которое приводит к изменению в базе данных. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов [6]:

  • запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);
  • запросы на получение данных;