Смекни!
smekni.com

Автоматизированная система контроля знаний специалистов по дефектоскопии (стр. 9 из 15)


2. Проектирование системы контроля знаний

2.1 Общая структура системы

По своей логической структуре система состоит из трёх частей:

- подсистемы конфигурирования теста;

- подсистемы тестирования;

- подсистема сервиса.

Структура системы изображена на рис. 2.1.

Рис. 2.1.

Принцип работы системы состоит в следующем. При помощи подсистемы конфигурирования создаётся и настраивается комплект для проведения экзамена. Комплект включает в себя:

1. контрольные вопросы

2. ответы на вопросы. Причём, на каждый вопрос имеется несколько ответов и один из них – правильный.

3. комментарии к вопросам. К одному вопросу может быть один комментарий.

4. иллюстрации к вопросу. К одному вопросу может быть несколько иллюстраций.

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

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

Подсистема сервиса предназначена для реализации сервисных функций:

· экспорт информации в приложение MSWord, используя технологию OLE

· накопление информации об экзаменуемом

· построение диаграмм соотношения правильных и неправильных ответов

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

2.1 Разработка подсистем

2.1.1 Подсистема конфигурирования

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


Рис. 2.2

Поля данных «текст вопроса», «текст ответа», «текст комментария», «иллюстрация» имеют тип большого двоичного объекта – BLOB. Эти поля предназначены для хранения больших массивов текста или изображений. Остальные поля имеют текстовый тип.

Поле «Шифр вопроса» является ключевым. При создании нового вопроса автоматически генерируется уникальный шифр и записывается в данное поле. Все остальные объекты, относящиеся к данному вопросу, используют это значение для «привязки» к нему. Таблица «Ответы» имеет также поля «Наименование», «Текст ответа», «Признак ответа». Значение поля «Наименование» присваивается автоматически и служит для визуального отображения списка ответов. Правильный ответ помечается в списке словами «Правильный ответ». Поле «Признак ответа» служит для обозначения правильного ответа. Во время редактирования компоненты активного вопроса хранятся в динамической памяти и не записываются в базу данных. Это позволяет легко отменить внесённые изменения. Общий алгоритм работы подсистемы приведён на рис. 2.3.


Рис. 2.3 Алгоритм подсистемы конфигурирования

2.1.2 Подсистема тестирования

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

· Экзамен

· Обучение

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

Рис. 2.4 Алгоритм подсистемы тестирования.

Рассмотрим подробнее блок №2 – «Выборка и загрузка в память вопросов». Задача, выполняемая этим блоком – создать список неповторяющихся вопросов, выбранных случайным образом. Для генерации случайного числа используется генератор случайных чисел используемого языка программирования. Однако, практически любой генератор случайных числе выдаёт повторяющиеся числа. Таким образом, при прямом генерировании номеров выбираемых вопросов возможен повтор выбранных вопросов, а это категорически воспрещено. Поэтому, для избежания этого недостатка используется динамическая структура, в которую заносятся индексы вопросов. Генератор случайной величины генерирует порядковый номер вопроса. После выбора вопроса, он исключается из списка, а порядковые номера остальных вопросов пересчитываются. Алгоритм процедуры выбора приведён на рис. 2.5.

Таким образом, в случае генерации повторяющегося числа, выбираются повторяющиеся вопросы.

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


Рис. 2.5 Алгоритм процедуры выбора

2.1.3 Подсистема сервиса

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

- редактирование настроек теста

- экспорт информации в MSWord

- смена паролей на вход в редактор и тест

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

Экспорт в MSWord возможен только при наличии на компьютере установленного редактора. Осуществляется при помощи использования технологии OLE. Процедура экспорта имеет алгоритм, приведённый на рис. 2.6.

Рис. 2.6 Алгоритм процедуры экспорта в MSWord


3. Реализация программного продукта

3.1 Общее описание пакета программ

Система психологической диагностики написана на языке Паскаль в среде разработки Delphi 5. Пакет программ состоит из следующих компонентов:

1) Редактор теста – Editor.exe;

2) Клиентская программа тестирования Test.exe.

При разработке программ была использована стандартная палитра компонентов Delphi 5. Система управления базами данных, которая используется в пакете программ – Paradox. Для полнофункциональной работы административной программы необходимо наличие на компьютере установленного двигателя баз данных фирмы Borland – BorlandDatabaseEngine (BDE). При несоблюдении этого условия часть подпрограмм будут работать некорректно, однако возможна работа с подпрограммами, не использующими BDE.

Аппаратные требования:

- Intel-совместимая аппаратная платформа;

- процессор Pentium-100;

- оперативная память – 32 Мб

Программные требования:

- операционная система Windows 95 или Windows 98;

- желательно наличие BDE.


3.2 Общие элементы построения приложений

3.2.1 Проверка на повторный запуск

В системе может работать не более одной копии экземпляра каждой программы. Для этого, при запуске программы производится проверка на повторный запуск программы. Алгоритм проверки приведён на рис. 3.1.

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