Разработка прикладной программы тестового контроля с использованием технологий 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 Архитектура программного обеспечения
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности