- •Применение современных open-source технологий при создании корпоративных систем
- •Предисловие
- •Введение
- •Практическая работа № 1 разработка архитектуры системы
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочие задания Задание 1. Установка среды Archi. Изучение нотации ArchiMate
- •1. Скачайте свободно распространяемую среду Archi и установите ее на своем компьютере, проверив функционирование
- •2. Изучите нотацию ArchiMate
- •Задание 2. Построение архитектурного описания разрабатываемой системы
- •Задание 3. Создание отчета
- •Сохранение работы
- •Практическая работа № 2 создание многопользовательской среды разработки проекта
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочее задание
- •Практическая работа № 3 разработка пользовательского интерфейса
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочее задание
- •Практическая работа № 4 разработка базы данных
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочие задания
- •Задание 1. Создание физической модели бд
- •1.1. Физическая модель данных для хранения регистрационной информации о слушателях и экспертах
- •1.2. Физическая модель данных для хранения информации о читаемых дисциплинах
- •1.3. Физическая модель данных для хранения анкетной информации
- •Задание 2. Создание бд из полученных моделей
- •Практическая работа № 5 разработка программной логики системы
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочие задания
- •Задание 1. Программные компоненты для авторизации пользователей
- •Задание 2. Программные компоненты для внесения анкетных данных в бд
- •Задание 3. Программные компоненты обработки анкетных данных и вывода результатов
- •Задание 4. Отладка созданных программ
- •Практическая работа № 6 развертывание и тестирование программной системы
- •1. Цель работы
- •2. Теоретические сведения, необходимые для выполнения работы
- •3. Рабочее задание
- •Контрольные вопросы
- •Библиографический список
Задание 2. Программные компоненты для внесения анкетных данных в бд
Страница AnketsMenu.xhtml выдает пользователю окно формы, соответствующее представленному на рис.3.4 в разделе «Разработка пользовательского интерфейса» настоящего учебного пособия. При помощи этой формы пользователь может выбрать дисциплину и конкретное занятие по ней для введения анкетных данных. Страница AnketsMenu.xhtml работает с классами Student, DisciplineBean, Zanyatie, ZanyatieBean, AnketaForZan (см. рис. 5.3).
Класс Student должен осуществлять поддержку хранения профильных данных по студенту в течение всей сессии пользователя и отображение их на экран.
Страница AnketsMenu.xhtml должна связываться с классом DisciplineBean, брать от него данные по дисциплинам и выводить их на экран в виде выпадающего списка.
Класс DisciplineBean представляет собой ManagedBean с видимостью SessionScoped и осуществляет выбор всех дисциплин, имеющихся в БД в таблице disciplines, возвращая их в виде списка SelectItem.
После выбора дисциплины на интерфейс пользователю должны выводиться все проведенные занятия по этой дисциплине в двух таблицах – отдельно для лекций и для семинаров. Для каждого занятия должна быть представлена его тема и дата проведения. Также у каждого занятия должна стоять ссылка на анкету для этого типа занятия. При этом система должна видеть, заполнял ли уже данный пользователь анкету по конкретному занятию и, если заполнял, то не выдавать ссылки на анкету, а вместо этого писать серым цветом (аналог погашенной ссылки) строку «Анкета заполнена».
Данные о лекциях и о семинарах целесообразно отобразить на интерфейсе в виде структуры DataTable. За выдачу данных о занятиях отвечает класс ZanyatieBean, являющийся ManagedBean с видимостью SessionScoped. Данный класс осуществляет выбор всех занятий для указанной пользователем дисциплины по первичному ключу этой дисциплины и возвращает результат в виде списка занятий.
Определение статуса заполнения анкеты должно осуществляться с помощью метода anketaStatus класса ZanyatieBean. Данный метод соединяется с БД и осуществляет поиск в таблице lections_ankets на предмет наличия записи с ID занятия и ID студента. Если такой записи не обнаружено, то метод возвращает 0, если запись есть – 1.
При получении значения 0 программа AnketsMenu.xhtml отрисовывает у занятия ссылку «Заполнить анкету». Ссылка переводит на метод fillLecAnketa класса AnketaForZan, передавая ему в качестве параметров ID занятия, тему занятия и название дисциплины. При получении значения 1 программа AnketsMenu.xhtml не прорисовывает у занятия ссылку на анкету, выводя надпись «Анкета заполнена».
При нажатии на ссылку «Заполнить анкету» срабатывает метод fillLecAnketa класса AnketaForZan, который возвращает либо значение «blankLec», при работе с лекциями, либо «blankSem», при работе с семинарами. Данный метод призван только обеспечить управление навигацией, которая при значении «blankLec» осуществляется на страницу AnketaForLec.xhtml, а при значении «blankSem» – на AnketaForSem.xhtml.
После перехода на страницу AnketaForLec.xhtml пользователю выдается анкета для выбранной им лекции. В анкете присутствуют вопросы, полностью описанные в разделе «Разработка пользовательского интерфейса» настоящего учебного пособия и оценочная шкала от 1 до 5 для выбора соответствующей оценки. То же самое верно для семинаров.
AnketaForLec.xhtml взаимодействует с классом AnketaLecData, который является ManagedBean с видимостью RequestScoped. Этот класс собирает все оценки и заносит их в БД в таблицу lections_ankets (для лекций) или seminar_ankets (для семинаров) при помощи метода insertIntoDB. При успешном внесении информации в БД метод возвращает значение «insertOK», по которому осуществляется навигация обратно на страницу AnketsMenu.xhtml, на которой пользователь может либо продолжить заполнение анкет по другим занятиям, либо выйти из системы.