Материал: Система тестирования

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Для создания АИС «Система тестирования» использовались: СУБД Access, а также интегрированная среда разработки Delphi.Access является настольной СУБД реляционного типа. Достоинством Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать приложения, используя встроенные средства.

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

Для выполнения почти всех основных операций Access предлагает большое количество Мастеров (Wizards), которые делают основную работу за пользователя при работе с данными и разработке приложений, помогают избежать рутинных действий и облегчают работу неискушенному в программировании пользователю.

Создание многопользовательской БД Access и получение одновременного доступа нескольких пользователей к общей базе данных возможно в локальной одноранговой сети или в сети с файловым сервером. Сеть обеспечивает аппаратную и программную поддержку обмена данными между компьютерами. Access следит за разграничением доступа разных пользователей к БД и обеспечивает защиту данных при одновременной работе. Так как Access не является клиент серверной СУБД, возможности его по обеспечению многопользовательской работы несколько ограничены. Обычно для доступа к данным по сети с нескольких рабочих станций, файл БД Access (с расширением *.mdb\*.accdb) выкладывается на файловый сервер. При этом обработка данных ведется в основном на клиенте - там, где запущено приложение, в силу принципов организации файловых СУБД. Этот фактор ограничивает использование Access для обеспечения работы множества пользователей (более 25-40) и при большом количестве данных в таблицах, так как многократно возрастает нагрузка на сеть.

Однако MS Access обладает и большим количеством преимуществ. В первую очередь можно отметить распространенность, которая обусловлена тем, что Access является продуктом компании Microsoft, программное обеспечение и операционные системы которой использует большая часть пользователей персональных компьютеров. MS Access полностью совместим с операционной системой Windows, постоянно обновляется производителем, поддерживает множество языков.

В целом MS Access предоставляет большое количество возможностей за сравнительно небольшую стоимость. Также необходимо отметить ориентированность на пользователя с разной профессиональной подготовкой, что выражается в наличии большого количества вспомогательных средств (Мастеров), развитую систему справки и понятный интерфейс. Эти средства облегчают проектирование, создание БД и выборку данных из нее.

Для реализации клиентской части программного продукта была выбрана среда разработки Borland Delphi 7.

Язык программирования служит двум связанным между собой целям:

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

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

Обычно, визуальная среда разработки состоит из трех взаимосвязанных компонентов: редактора, отладчика и конструктора форм. В любом из современных инструментов ускоренной разработки приложений (Rapid Application Development - RAD) эти три компонента должны гармонично взаимодействовать друг с другом. При работе в конструкторе форм Delphi неявно генерирует программный код тех компонентов, которые размещаются или обрабатываются в формах. В окне редактора в код автоматически созданной программы можно внести необходимые дополнения, определяющие специфическое поведение данного приложения. Здесь же, в окне редактора, можно отладить код, внося точки останова, точки просмотра.

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

.2 Технология создания базы данных в MS Access для использования в АИС «Система тестирования»

Следующее описание технологии создания базы данных в MS Access основывается на СУБД MS Access версии 2007. Абстрагируясь от цифр в названии продукта, описанные действия и требуемый результат можно получить и с помощью работы как в прошлых версиях (вплоть MS Access 2003), так и в самых последних. Различным будет интерфейс СУБД, но принципы создания остаются теми же.

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

При запуске MS Access пользователь попадает в главное окно управления файлами СУБД - вкладку «Файл». В панели навигации слева, по умолчанию, уже будет активна категория «Создать». В центральной части окна этой категории отображаются различные шаблоны новых баз данных. На данном этапе нам требуется создать пустую базу данных, поэтому выбираем шаблон с соответствующим названием. Далее, в правой части окна требуется задать имя и расширение файла базы данных, а так же указать каталог, в которой он будет создан. Теперь при нажатии на кнопку «Создать» будет сгенерирована новая пустая база данных. Визуально описанные выше шаги показаны на (рисунке 6).

Рисунок 6 - Создание файла новой базы данных

Для разрабатываемой мной АИС я указал имя файла новой базы данных как «tests.mdb».

После создания новой базы данных нам становится доступно её редактирование. На экране под панелью вкладок отображается её структура (слева) и область данных (справа) (рисунок 7).

Рисунок 7 - Окно базы данных

Приступим теперь к созданию таблиц.

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

Для этого перейдём на вкладку «Создание» панели навигации и в группе функций «Таблицы» выберем пункт «Таблица». Будет сгенерирована новая таблица - она отобразится в структуре слева (рисунок 8).

Рисунок 8 - Новая таблица

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

Рисунок 9 - Режим конструктора таблицы

В верхней части окна области данных имеется таблица состоящая из трёх полей - «Имя поля», «Тип данных» и «Описание». Данная таблица описывает поля таблицы «Студенты»: в первый столбец записывается имя поля, во второй - из выпадающего списка выбирается тип поля, в третий столбец можно записать комментарий для лучшего понимания структуры базы данных.

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

В правой части окна области данных содержится блок «Окно свойств». Он содержит параметры отображения данных непосредственно в визуальной части СУБД и к вопросам разработки базы данных для клиентской части никак не относится.

Настало время описать все необходимые поля таблицы «Студенты», указать их размерность, а так же задать первичный ключ (рисунок 10).

Рисунок 10 - Описание полей таблицы

После описания и проверки следует сохранить изменения (контекстное меню по вкладке таблицы, выбрать пункт меню «Сохранить»). Поля в таблице будут созданы.

Аналогичным образом создадим все необходимые таблицы для базы данных. Список всех созданных таблиц показан на (рисунок 11).

Рисунок 11 - Описание полей таблицы

Теперь настало время задать связи между таблицами. Для этого нужно перейти на вкладку «Работа с базами данных» и в группе «Отношения» выбрать пункт «Схема данных». В области данных появится пустой лист (рисунок 12)

Рисунок 12 - Формирование схемы данных

Вызовем контекстное меню на листе схемы данных и выберем пункт «Отобразить все». На лист добавятся образы всех имеющихся в базе таблиц (рсиунок 13).

Рисунок 13 - Подготовка к назначению связей

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

Создадим связь между таблицами «Студенты» и «Результаты». Исходя из контекста ранее созданной модели «Сущность - связь» - один студент может иметь сколько угодно пройденных тестов. Поэтому таблица «Студенты» будет являться родительской для таблицы «Результаты». Перенесём поле ID таблицы «Студенты» на поле СтудентID таблицы «Результаты». В вызванной форме «Изменение связей» проверяем выбранные поля, а так же задаём критерии целостности данных (рисунок 14). После чего нажимаем на кнопку «Создать». Будет создана указанная связь, которая отобразится на диаграмме листа.

Рисунок 14 - Форма «Изменение связей»

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

Рисунок 15 - Финальная схема данных

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

.3 Разработка клиентского приложения АИС

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

.3.1 Этап первый: создание главной формы и элементов навигации

Запустим интегрированную среду разработки Borland Delphi 7. Окно запущенной ИСР показано на (рисунок 16).

Рисунок 16 - Рабочая область ИСР Delphi

Основой любого разрабатываемого приложения всегда является проект приложения. Давайте создадим его: в главном меню перейдём на File > New > VCL Forms Application. Автоматически будет сгенерирован новый проект с одним модулем Unit1 в котором описана единственная и текущая форма приложения на данный момент (рисунок 17) .

Рисунок 17 - Новый проект

Сразу же сохраним проект для корректного взаимодействия: File > Save Project As и укажем папку хранения проекта.

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

Поскольку большое количество форм сказывается на скорости взаимодействия пользователей с интерфейсом программы (в нашем случае - это просто будет неудобно), условимся, что форм у разрабатываемой АИС будет одна.

Немаловажным критерием качества взаимодействия пользователей с интерфейсом АИС служит - навигация по программе. Для решения данного вопроса разместим на форме панели - информационную и управляющую. На (рисунок 18) показано их расположение.

Рисунок 18 - Расположение навигационных панелей на форме

Теперь следует заполнить управляющую панель навигационными кнопками. Для этого воспользуемся компонентом TBitBtn с вкладки Additional.

Результат кнопочной навигации представлен на (рисунок 19).

Рисунок 19 - Формирование навигации

Поскольку форма у нас только одна, а уместить все функции и компоненты в свободной области формы невозможно (да и не практично), то необходимо обеспечить многослойность свободной области формы. С данной проблемой легко справляется компонент TNoteBook с вкладки компонентов “Win 3.1”. Этот компонент представляет собой "страницы" (tabs) блокнота, на которых располагаются другие визуальные компоненты. Каждая страница сама является оконным элементом управления и содержит список того, что на ней расположено. Поместим компонент на форму. Зададим ему имя (Name) “N” и укажем выравнивание по всей свободной области (Align=alClient).

Результат можно увидеть на (рисунок 20).

Рисунок 20 - Страница компонента N

Сейчас N содержит только одну страницу. Нам необходимо создать количество страниц равное количеству всех кнопок во всех категориях навигационной панели (это позволит выделить область формы для решения задач, поставленных по контексту каждой из кнопок). Добавление/удаление и редактирование страниц осуществляется в свойстве - массиве Pages компонента. Обратимся к нему. На экране появится окна управления страницами компонента, в котором по нажатию кнопки Add добавляется новая страница. Добавим необходимое нам количество страниц (рисунок 21).

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

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

procedure TForm1.btnAutrorizaciyaClick(Sender: TObject);.ActivePage:='Default';;

При срабатывании этого события будет отображена страница с индексом 0.