
- •Реферат
- •Введение
- •1 Постановка задачи и анализ предметной области
- •1.1 Постановка задачи на разработку информационной системы
- •1.2 Функциональное моделирование бизнес-процессов предметной области
- •1.3 Моделирование потоков данных в предметной области
- •1.4 Построение исходной концептуальной модели данных предметной области
- •2 Проектирование информационной системы
- •2.1 Категории пользователей ис и их информационные потребности
- •2.2 Архитектура информационной системы
- •2.3 Логическая модель базы данных информационной системы
- •2.4 Пользовательский интерфейс приложения информационной системы
- •2.5 Требования к аппаратно-программному окружению информационной системы
- •2.6 Выбор технологий и средств разработки информационной системы
- •3. Разработка информационной системы
- •3.1 Физическое модель и реализация базы данных информационной системы
- •3.2 Серверная часть приложения информационной системы
- •3.3. Запросы клиентского приложения к базе данных
- •3.4 Кодирование клиентского приложения
- •3.5 Средства поддержки пользователя клиентского приложения
- •3.6 Тестирование клиентского приложения
- •Заключение
- •Список использованных источников
- •Приложение а (обязательное)
- •Приложение б
3. Разработка информационной системы
3.1 Физическое модель и реализация базы данных информационной системы
Для создания базы данных использовалась PostgreSQL 8.4. Запросы PostgreSql создания базы данных представлен в приложении Б.
Полная атрибутивная физическая модель базы данных представлена на Рисунке 11.
Рисунок 11 – Атрибутивная модель базы данных
Полное описание отношений представлены на следующих рисунках:
Рисунок 12 – Отношение Texaminator
Рисунок 13 – Отношение Texaminee
Рисунок 14 – Отношение TGroup
Рисунок 15 – Отношение TSubject
Рисунок 16 – Отношение TTest
Рисунок 17 – Отношение TQuestion
Рисунок 18 – Отношение TCurrentTest
Рисунок 19 – Отношение TPassedTest
Рисунок 20 – Отношение TResult
Для данного круга пользователей так же создано представление. Запрос SQL для создания представления:
CREATE VIEW viewpassedtest AS
SELECT "TExaminee"."Name" AS nameexaminee,
"TGroup"."Name" AS groupexaminee,
"TSubject"."Name" AS namesubject,
"TTest"."Name" AS nametest,
"TExaminator"."Name" AS nameexaminator,
"TPassedTest"."Date" AS date, sum(DISTINCT "TResult"."Score") AS score
FROM
"TPassedTest", "TResult", "TExaminee", "TExaminator", "TGroup", "TSubject", "TTest"
WHERE
((((("TExaminee".id = "TPassedTest"."idExaminee") AND ("TGroup".id = "TExaminee"."idGroup"))
AND ("TSubject".id = "TPassedTest"."idSubject")) AND ("TTest".id = "TPassedTest"."idTest"))
AND ("TExaminator".id = "TPassedTest"."idExaminator"))
GROUP BY
"TExaminee"."Name", "TGroup"."Name", "TSubject"."Name", "TTest"."Name", "TExaminator"."Name", "TPassedTest"."Date";
3.2 Серверная часть приложения информационной системы
В серверной части приложений информационной системы расположены различного рода функции, триггеры, процедуры, реализующие настройку или выполняющие операции над базой данных с целью упрощения дальнейшей работы. Все эти функции реализованы в подсистеме конфигуратора.
3.3. Запросы клиентского приложения к базе данных
Для данной подстистемы были разработаны следующие запросы:
Выборка студентов:
SELECT Name FROM TExaminee
WHERE idGroup = (SELECT id FROM TGroup WHERE Name = '%1')").arg(group), db);
Проверка соответсвия введенного пароля с имеющимся:
(SELECT id FROM TExaminee WHERE Code = '%1'").arg(Code), db);
Добавление данных в таблицу пройденных тестов:
(SELECT idSubject, idTest, idExaminator
FROM TCurrentTest
WHERE idGroup = (SELECT id FROM TGroup WHERE Name = '%1')").arg(GroupName), db);
(INSERT INTO TPassedTest (idExaminee, idSubject, idTest, idExaminator, Date) VALUES (%1, %2 ,%3, %4, %5::abstime)").arg(id).arg(idSubject).arg(idTest).arg(idExaminator).arg(QDateTime::currentDateTime().toTime_t()));
3.4 Кодирование клиентского приложения
Полный исходный код данного приложения представлен в приложении А.
Диаграмма классов приведена на схеме 1:
3.5 Средства поддержки пользователя клиентского приложения
Для поддержки пользователя реализована удобная навигация, интуитивно понятный интерфейс, требующий минимальных навыков от конечного пользователя.
3.6 Тестирование клиентского приложения
Тест №1: Запустить программу
Ожидаемый результат: программа будет запущена. Появится окно авторизации.
Полученный результат: соответствует ожидаемому (рисунок 21).
Рисунок 21 – Окно авторизации
Тест №2: Ввести номер группы
Ожидаемый результат: после ввода группы заполниться список студентов, относящихся к ней.
Полученный результат: соответствует ожидаемому (рисунок 22, рисунок 23).
Рисунок 22 – Окно авторизации (неправильно введена группа либо в группе нет ни одного студента)
Рисунок 22 – Окно авторизации (группа введена правильно)
Тест №3: Ввести пароль
Ожидаемый результат: после ввода пароля либо откроется главное окно приложения, либо на экране появиться ошибка.
Полученный результат: соответствует ожидаемому (рисунок 23, рисунок 24).
Рисунок 23 – Окно авторизации (неправильно введен пароль)
Тест №4: Прохождение теста через интернет
Ожидаемый результат: При невозможности подключения к локальному серверу базы данных появится окно с запросом на ввод IP адреса удалённого сервера БД, а так же имени пользователя и пароля.
Полученный результат: соответствует ожидаемому (рисунок 24).
Рисунок 24 – Окно авторизации (программа успешно подключилась к удалённому серверу БД, о чём нас и информирует неактивная кнопка «Connected»)
Тест №5: Прохождение всех заданий теста
Ожидаемый результат: после прохождения всех заданий и нажатия на кнопку «Finish» появится уведомление о том, что тест пройден.
Полученный результат: соответствует ожидаемому (рисунок 25-27).
Рисунок 25-27 – Прохождение тестирования и его завершение