Разработка прикладной программы тестового контроля с использованием технологий JSP и сервлетов

При разработке данного программного продукта была избрана концепция визуального моделирование проекта, реализованная при помощи языка моделирования UML. В качестве среды проектирования была выбрана Ration Rose. Сначала была создана диаграмма вариантов использования, описывающая общую функциональность данного программного продукта.

Рис 2.1 Диаграмма вариантов использования

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

2.1.2 Модель данных

Далее были разработаны модели данных о пользователях, тестах и статистики которые были описаны в DTD файлах Users.dtd, Tests.dtd и Stats.dtd.

Users.dtd

<!ELEMENT User (User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date)>

<!ELEMENT User_ID (#PCDATA)>

<!ELEMENT FirstName (#PCDATA)>

<!ELEMENT SecondName (#PCDATA)>

<!ELEMENT Group (#PCDATA)>

<!ELEMENT Position (#PCDATA)>

<!ELEMENT Rank (#PCDATA)>

<!ELEMENT Login (#PCDATA)>

<!ELEMENT Password (#PCDATA)>

<!ELEMENT Type (#PCDATA)>

<!ELEMENT Date (#PCDATA)>

<!ELEMENT Users (User+)>

Корневым элементом данной структуры является Users, который представляет информацию о всех пользователях. Информация о конкретном пользователе находиться в элементе User, который в свою очередь содержит поля User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date. Все элементы отображают различные характеристики пользователя, и являются обычными текстовыми полями.

Tests.dtd

<!ELEMENT Test (Test_ID, Subject, Teacher, Questions, Time_Limit)>

<!ELEMENT Test_ID (#PCDATA)>

<!ELEMENT Subject (#PCDATA)>

<!ELEMENT Teacher (#PCDATA)>

<!ELEMENT Question (Quest_ID, Text,Quont_ Ans,Answers, Right_Ans_ID)>

<!ELEMENT Time_Limit (#PCDATA)>

<!ELEMENT Quest_ID (#PCDATA)>

<!ELEMENT Text (#PCDATA)>

<!ELEMENT Quont_Ans (#PCDATA)>

<!ELEMENT Answer (Ans_ID, Ans_Text, Correctness)>

<!ELEMENT Right_Ans_ID (#PCDATA)>

<!ELEMENT Ans_ID (#PCDATA)>

<!ELEMENT Ans_Text (#PCDATA)>

<!ELEMENT Correctness (#PCDATA)>

<!ELEMENT Answers (Answer+)>

<!ELEMENT Questions (Question+)>

<!ELEMENT Tests (Test+)>

Поле Tests является корневым и содержит информацию о всех тестах. Информация о конкретном тесте содержится в элементе Test, он включает в себя атрибуты Test_ID, Subject, Teacher, Time_Limit, а также вложенный элемент Questions, который содержит информацию о вопросах. Информация о конкретном вопросе содержится в элементе Question, он включает в себя атрибуты Quest_ID, Text,Quont_ Ans, Right_Ans_ID, а также вложенный элемент Answers, содержащий информацию о ответах на данный вопрос. Информация о конкретном ответа содержится в элементе Answer, который характеризуется полями Ans_ID, Ans_Text, Correctness.

Stats.dtd

<!ELEMENT Stat (S_Stat_ID,S_User_ID,S_Test_ID,S_Questions)>

<!ELEMENT S_Stat_ID (#PCDATA)>

<!ELEMENT S_User_ID (#PCDATA)>

<!ELEMENT S_Test_ID (#PCDATA)>

<!ELEMENT S_Question (S_Quest_ID,S_Correctness)>

<!ELEMENT S_Quest_ID (#PCDATA)>

<!ELEMENT S_Correctness (#PCDATA)>

<!ELEMENT S_Questions (S_Question+)>

<!ELEMENT Stats (Stat+)>

Поле Stats является корневым и содержит информацию о всех пройденных тестах. Статистика прохождения конкретного теста содержится в элементе Stat, он включает в себя атрибуты S_Stat_ID,S_User_ID,S_Test_ID, а также вложенный элемент S_Questions, который содержит информацию о корректности ответов, которые давал студент при ответах на вопросы.

2.1.3 Объектная модель приложения

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

Класс XMLLogin отвечает за работу с XML файлом, в котором хранятся данные о пользователях. Данный класс реализует основную функциональность администратора . Функция addUser() добавляет нового пользователя, в качестве параметров получает данные, отображающие все его характеристики (User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date). Функция removeUser() удаляет пользователя, номер которого передается в качестве параметра. Функция modifyUser() изменяет данные о конкретном пользователе, в качестве параметров получает номер пользователя и значение характеристик.

Функция readData() читает данные из файла, имя которого храниться в поле fileName и записывает их в поле Users, которое является контейнером для хранения данных. Классы User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date были сгенерированы автоматически при помощи среды разработки Jbuilder 8.0 на основе модели данных и используются для хранения и удобной работы с данными. Каждый класс хранит информацию о соответствующем элементе. Функция newUser() является private-функцией и используется для создания объекта типа User.

рис 2.1 Диаграмма классов XMLLogin и TypeBean

Класс XMLTests отвечает за работу с данными о тестах. Данный класс реализует основную функциональность преподавателя. Функция addTest() добавляет новый тест, в качестве параметров получает данные, отображающие все его характеристики (Test_ID, Subject, Teacher, Questions, Time_Limit). Функция removeTest() удаляет тест, номер которого передается в качестве параметра. Функция readData() читает данные из файла, имя которого храниться в поле fileName и записывает их в поле Tests, которое является контейнером для хранения данных. Классы Test_ID, Subject, Teacher, Questions, Time_Limit были сгенерированы автоматически при помощи среды разработки Jbuilder 8.0 на основе модели данных и используются для хранения и удобной работы с данными. Каждый класс хранит информацию о соответствующем элементе. Функция newTest() является private-функцией и используется для создания объекта типа Test.

рис 2.2 Диаграмма классов XMLTests и TestsBean

рис 2.3 Диаграмма классов XMLStats и StatsBean

2.1.4 Архитектура программного обеспечения

Страница:  1  2  3  4  5  6  7 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы