Разработка автоматизированной системы тестирования знаний по дисциплине "Русский язык"

Функциональная модель системы. Проектирование схемы базы данных. Проектирование архитектуры системы. Принцип технологии клиент-сервер. Построение схемы ресурсов. Выбор программных средств. Разработка базы данных с использованием Microsoft SQL Server.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.03.2015
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

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

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

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

· тесты открытой формы, где ответ испытуемый вписывает самостоятельно в отведенном для этого месте;

· задания на установление соответствия;

· задания на установление правильной последовательности действий.

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

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

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

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

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

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

· спроектировать и реализовать структуру базы данных, функциональную модель системы;

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

· разработать и реализовать удобный пользовательский графический интерфейс, а также его компоненты;

· спроектировать и реализовать формы для ввода и редактирования данных, проверку корректности вводимых данных;

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

1. автоматизация ТЕСТИРОВАНИЯ

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

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

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

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

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

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

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

· общее повышение надежности информационной системы;

· разгрузка персонала от рутинных и сложных операций;

· уменьшение количества внутрифирменных сверок;

· ускорение подготовки отчетности;

· повышение достоверности отчетности.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

· Модель должна охватывать все стадии жизненного цикла продукции, относящиеся к сфере деятельности предприятия.

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

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

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

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

Диаграмма нулевого уровня представлена на рисунке 2.1. На вход системы поступают данные о тесте, выбранном учеником, и данные самого учащегося (имя, класс). Функционирует система согласно правилам и стандартам ввода информации и тестирования. Исполнительные механизмы системы - пользователь и программный продукт. На выходе системы находятся отчеты по результатам тестирования и оценка учащегося.

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

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

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

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

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

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

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

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

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

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

· обеспечивать пользователю возможность создавать новые БД и определять их схему (логическую структуру данных) с помощью специального языка ? языка определения данных поддерживать разнообразные представления одних и тех же данных;

· позволять «запрашивать» данные и изменять их с помощью языка запросов или языка манипулирования данными, допускать интеграцию и совместное использование данных различными приложениями;

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

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

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

· Пользователи, т.е. люди, которые используют данные;

· Приложения, т.е. программы пользователей, которым требуются данные из системы;

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

· Данные, т.е. строки, хранящиеся в файлах;

· Система-хост - компьютерная система, в которой хранятся файлы. Доступ к строкам данных осуществляется системой-хостом.

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

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

· Вопросы - содержит вопросы определенного теста;

· Ответы - содержит варианты ответов на определенный вопрос;

· Тесты - содержит тесты, которые могут использоваться системой;

· Преподаватели - содержит данные о преподавателях дисциплины;

· Регистрации - содержит данные о регистрациях тестируемых;

· Тестирование - содержит данные о результатах тестирования.

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

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

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

· Один тест включает в себя 1 и более вопросов;

· Один вопрос включает в себя 1 и более вариантов ответов;

· Один тест включает себя одного преподавателя;

· Одно тестирование включает в себя 1 и более тестов;

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

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

Вопросы:

· Код вопроса;

· Код теста;

· Вопрос.

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

· Код регистрации;

· Учащийся;

· Класс;

· Дата.

Тесты:

· Код теста;

· Код преподавателя;

· Тематика;

· Вопросов;

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

· Код тестирования;

· Код регистрации;

· Код теста;

· Начато;

· Окончено;

· Верных ответов;

· Оценка системы.

Ответы:

· Код ответа;

· Код вопроса;

· Ответ;

· Правильный.

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

· Код преподавателя;

· Преподаватель;

· Логин;

· Пароль.

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

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

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

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

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

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

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

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

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

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

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

- определение сущностей;

- определение зависимостей между сущностями;

- задание первичных и альтернативных ключей;

- определение атрибутов сущностей;

- приведение модели к требуемому уровню нормальной формы;

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

- генерация базы данных.

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

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

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

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

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

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

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

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

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

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

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

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

· ввод и отображение данных (взаимодействие с пользователем);

· прикладные функции, характерные для данной предметной области;

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

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

· компонент представления данных;

· прикладной компонент;

· компонент управления ресурсом.

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

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

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

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

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

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

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

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

· простейшие прикладные функции выполняются хранимыми процедурами на сервере;

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

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

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

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

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

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

Цели:

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

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

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

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

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

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

· регистрация тестируемого или авторизация преподавателя;

· добавление или изменение данных теста;

· добавление, изменение или удаление вопросов теста;

· добавление, изменение или удаление вариантов ответа вопроса;

· загрузка и считывание позиций справочников приложения;

· возможность просмотра результатов тестирования знаний;

· возможность смены текущего пользователя без перезапуска приложения.

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

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

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

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

· программный комплекс состоит из клиентского приложения и SQL сервера;

· все пользовательские данные хранятся в таблицах базы данных, к которой подключается SQL сервер;

· для соединения с SQL сервером клиент имеет файл настроек, содержащий параметры подключения;

· клиент отправляет запрос SQL серверу, содержащий текст запроса и параметра для его выполнения;

· в зависимости от команды SQL сервер возвращает клиенту наборы строк (результаты выборки);

· клиентское приложение считывает отправленные SQL сервером данные в элементы управления и компоненты формы.

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

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-подобным синтаксисом, из них его синтаксис наиболее близок к 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) для описания в будущем поведения данной сущности.

Microsoft 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 включена инфраструктура асинхронного программирования, которая может использоваться как приложениями в пределах одной базы данных или экземпляра, так и распределенными приложениями;

SQL 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 был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

· создание в базе данных новой таблицы;

· добавление в таблицу новых записей;

· изменение записей;

· удаление записей;

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

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

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

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

· запросы на получение данных;

· запросы на добавление новых данных;

· запросы на удаление данных;

· обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы ? это операции над таблицами. В соответствии с этим, запросы делятся на:

· запросы, оперирующие самими таблицами (создание и изменение таблиц);

· запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием:

· типа хранимых в каждом поле значений;

· связей между таблицами (задание первичных и вторичных ключей);

· информации, необходимой для построения индексов.

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

· вставка новой строки;

· изменение значений полей строки или набора строк;

· удаление строки или набора строк.

Самый главный вид запроса ? это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

· просмотреть полученный набор;

· изменить все записи набора;

· удалить все записи набора.

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

3.2 Разработка базы данных

Microsoft SQL Server ? система управления реляционными базами данных (СУРБД), разработанная корпорацией Microsoft. Основной используемый язык запросов ? Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка [6].

Для хранения информации пользователей в программном продукте используется SQL Server с базой данных «Тест». В базе данных для хранения и структурирования информацией реализованы шесть связанных между собой таблиц.

Таблица «Ответы» (рисунок 3.2):

· КодОтвета - PK, int, not null;

· КодВопроса - FK, int, not null;

· Ответ - nvarchar(200), not null;

· Правильный - nvarchar(3), not null.

Рисунок 3.2 - Создание таблицы «Ответы»

клиент сервер база данные

Таблица «Вопросы» (рисунок 3.3):

· КодВопроса - PK, int, not null;

· КодТеста - FK, int, not null;

· Вопрос - nvarchar(100), not null;

Рисунок 3.3 - Создание таблицы «Вопросы»

Таблица «Тестирование» (рисунок 3.4):

· КодТестирования - PK, int, not null;

· КодРегистрации - FK, int, not null;

· КодТеста - FK, int, not null;

· Начато - smalldatetime, not null;

· Окончено - smalldatetime, not null;

· ВерныхОтветов - int, not null;

· ОценкаСистемы - int, not null.

Таблица «Тесты» (рисунок 3.5):

· КодТеста - PK, int, not null;

· КодПреподавателя - FK, int, not null;

· Тематика - nvarchar(100), not null;

· Вопросов - int, not null.

Рисунок 3.4 - Создание таблицы «Тестирование»

Рисунок 3.5 - Создание таблицы «Тесты»

Таблица «Регистрации» (рисунок 3.6):

· КодРегистрации - PK, int, not null;

· Учащийся - nvarchar(40), not null;

· Класс - nvarchar(10), not null;

· Дата - datetime, not null.

Рисунок 3.6 - Создание таблицы «Регистрации»

Таблица «Преподаватели» (рисунок 3.7).

· КодПреподавателя - PK, int, not null;

· Преподаватель - nvarchar(50), not null;

· Логин - nvarchar(10), not null;

· Пароль - nvarchar(10), not null.

Рисунок 3.7 - Создание таблицы «Преподаватели»

Диаграмма базы данных и связей между таблицами базы данных представлена на рисунке 3.8.

Рисунок 3.8 - Диаграмма базы данных

Между таблицами «Регистрации» и «Тестирование» существует связь один ко многим. Это позволяет нам связывать результаты тестирования с данными зарегистрировавшегося предварительно ученика.

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

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

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

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

3.3 Алгоритм работы программы

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

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

Алгоритм означает точное описание некоторого процесса, инструкцию по его выполнению. Разработка алгоритма является сложным и трудоемким процессом. Алгоритмизация ? это техника разработки (составления) алгоритма для решения задач на ЭВМ. Блок-схема обобщенного алгоритма работы программы представлена на рисунке 3.9.

Рисунок 3.9 - Блок-схема алгоритма работы программы

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

· словесно-формульное описание;

· блок-схема (схема графических символов);

· алгоритмические языки;

· операторные схемы;

· псевдокод;

3.4 Разработка программного продукта

Со времени появления платформы .NET (примерно в 2001 г.) среди библиотек базовых классов появился API по имени Windows Forms, представленный в основном сборкой System.Windows.Forms.dll. Инструментальный набор Windows Forms предоставляет типы, необходимые для построения графических пользовательских интерфейсов для настольных компьютеров, создания специализированных элементов управления, управления ресурсами (например, строками и значками) и выполнения других задач, возникающих при программировании для пользовательских компьютеров. Имеется и дополнительный API по имени GDI+ (представленный сборкой System.Drawing.dll), который предоставляет дополнительные типы, позволяющие программисту генерировать двухмерную графику, взаимодействовать с сетевыми принтерами и обрабатывать графические данные [9].

Windows Forms (и GDI+) применяются в платформе .NET 4.0 и, видимо, будут существовать еще некоторое время (возможно, длительное) в составе библиотеки базовых классов. Правда, после выхода .NET 3.0 компания Microsoft выпустила совершенно новый инструментальный API под названием Windows Presentation Foundation (WPF) [9].

Несомненно, наиболее важным пространством имен Windows Forms является System.Windows.Forms. Типы из этого пространства имен можно разбить на следующие крупные категории [9]:

· Базовая инфраструктура. Это типы, представляющие базовые операции программ, которые используют Windows Forms (Form и Application), и различные типы, предназначенные для взаимодействия с устаревшими элементами ActiveX, a также для взаимодействия с новыми специальными элементами управления WPF;

· Элементы управления. Эти типы применяются для создания графических пользовательских интерфейсов (наподобие Button, MenuStrip, ProgressBar и DataGridView), все они являются производными от базового класса Control. Элементы управления допускают настройку на этапе проектирования и видимы (по умолчанию) во время выполнения;

· Компоненты. Это типы, которые не порождены от базового класса Control, но все-таки могут предоставлять программам Windows Forms визуальные возможности (например, ToolTip и ErrorProvider). Многие компоненты (к примеру, Timer и System.ComponentModel.BackgroundWorker) не видимы во время выполнения, но все-таки допускают настройку на этапе проектирования;

· Окна стандартных диалогов. В Windows Forms имеется несколько заготовленных диалоговых окон для распространенных операций (например, OpenFileDialog, PrintDialog и ColorDialog).

В мире Windows Forms тип Form представляет любое окно в приложении, включая главное окно самого верхнего уровня, дочерние окна приложений с многодокументным интерфейсом (multiple document interface ? MDI), а также модальные и немодальные диалоговые окна. Тип Form содержит множество возможностей, унаследованных от классов-предков, а также из реализуемых им многочисленных интерфейсов.

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

Для создания нового проекта в Visual Studio выберем «New»-«Project», в появившемся окне выберем «Windows Form Application» и заполним предложенные поля.

Для передачи запроса SQL серверу и возврату результата в виде набора строк (запросы на выборку) был реализован метод «GetSQLData», представленный ниже.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.