Система регистрации студентов (заявление SRS)
Общая информация:
Архитектура высокого уровня:
- Мы следили за архитектурой контроллера модели (MVC), чтобы реализовать приложение SRS.
- Вид
- Использование JSP (Java Server Pages) для создания графического интерфейса Frontend для взаимодействия с пользователями.
- Контроллер
- Использование Java Servlets для вызова классов операторов DB и перенаправления результатов на соответствующие страницы JSP.
- Модель
- Использование соединений JDBC и вызова соответствующих процедур БД для выполнения запроса пользователя.
- JSP - это динамические веб -страницы, где мы можем написать HTML, а также коды Java.
- Использование метода HTTP «post» для передачи элементов формы от фронта в бэкэнд.
- Каждая функциональность реализована в отдельных файлах (JSP, Servlet, DB Operate Class) для модульности.
- Обработанные сообщения, отображаемые с помощью dbms_output из бэкэнда в коде Java DBMS_Output GET_LINE Процедура.
- Основные проверки, такие как записи пустых полей, выполняются на стороне Frontend.
- Большинство функциональных возможностей для манипулирования данными БД и связанных с ними проверки реализованы на бэкэнд.
План и деятельность фазы развития:
- Мы выполняли ниже шаги на этапе планирования проекта в приложении SRS:
- Обсудил и решил использовать JSP в качестве фронта, подключения JDBC и бэкэнд Oracle PL/SQL.
- Обсуждается и решил использовать инструмент управления версиями «Bitbucket» для поддержания исходного кода проекта как для бэкэнд, так и для компонентов фронта.
- Обсуждается и решила использовать разработчик PL/SQL для разработки объектов базы данных, таких как пакет, процедуры, функции, последовательность, триггеры и тестовые примеры (сценарии SQL).
- Обсуждается и решила использовать Eclipse IDE для разработки проекта веб -приложений, включая JSP, сервлеты Java и Java JDBC, связанные с подключением к классам моделей.
| Дата встречи | Место встречи | Деятельность |
|---|
| 6 ноября 2018 года | Библиотечный зал | Созданы репозитории Bitbucket и базовый пакет для SRS [NM]. Включены процедуры отображения таблиц кортежей [VM]. Реализация процедуры для получения деталей TA с использованием классической [DP]. |
| 10 ноября 2018 года | Библиотечный зал | Тестовый случай для «class_ta» и форматирования кода [VM]. Включен курсор в Show_tables + It'd Test Case [DP]. Население данных для тестирования и настройки веб -проекта Java [NM]. |
| 11 ноября 2018 года | Библиотечный зал | Включена внедрение процедуры «необходимого курса» [NM]. Включена частичная реализация - процедура «Зарегистрировать студент» [VM]. Реализованные поля отображения таблицы в подключении Java и DB [DP]. |
| 12 ноября 2018 года | Библиотечный зал | Частичная реализация «зачисления в падение» без триггера [DP]. «Show_students» тестирование функциональности на стороне передней части [VM]. Фиксирование дефектов DB «Show_students» и тестовых случаев [нм]. |
| 13 ноября 2018 года | Библиотечный зал | Реализация и тестирование «Drop Student of Suptyed» со стороны Backend и Frontend [DP] [VM] [NM]. |
| 14 ноября 2018 года | Библиотечный зал | Реализация проверки 8 для процедуры recoll_student [DP]. Тестовый случай + Связанный SQL Script для проверки зачисления студентов [NM]. Внедрение функциональности деталей TA на Frontend [VM]. |
| 15 ноября 2018 года | Библиотечный зал | Тестирование на триггеры при зачислении студента в Backend [VM]. Реализация предпосылки класса дисплеев на фронте [DP]. Частичный код и тестирование Delete Student на Frontend [NM]. |
| 19 ноября 2018 года | Библиотечный зал | Комбинированная реализация регистрации и удаления учащихся с полным тестированием с фронта и бэкэнд [DP] [VM] [NM]. |
| 26 ноября 2018 года | Библиотечный зал | Комбинированная реализация Удаления Студента с полным тестированием с фронта и бэкэнд [DP] [VM] [NM]. |
| 28 ноября 2018 года | Библиотечный зал | Тщательное тестирование всех процедур, триггеров и фиксированных дефектов вместе со стороны фронта и бэкэнд [NM] [VM] [DP]. |
| 29 ноября 2018 года | Библиотечный зал | Отчет проекта и окончательная настройка БД для демонстрации [VM] [NM] [DP]. |
- Роли и обязанности членов команды:
- Все члены команды работали вместе в той же комнате для конференций, чтобы разработать и тестировать приложение SRS со стороны Frontend и Backend.
- Мероприятия, проведенные членами команды, упоминаются в вышеуказанной таблице с соответствующими инициалами.
- Nitesh Mishra [NM]
- Дипика Суреш Патил [DP]
- Видхи Мевада [VM]
Схема кода Backend PL-SQL
Имя пакета DB - Student_registration_system
Процедуры отображения кортежей из каждой из семи таблиц. Эти процедуры возвращают курсор ref в качестве параметра OUT, который используется на передней стороне для отображения кортежей из семи таблиц дБ.
- Процедура show_students (ref_cursor_students out ref_cursor);
- Процедура show_tas (ref_cursor_tas out ref_cursor);
- Процедура show_courses (ref_cursor_courses out ref_cursor);
- Процедура show_classes (ref_cursor_class Out ref_cursor);
- Процедура show_enrollments (ref_cursor_enrollments out ref_cursor);
- Процедура show_prerequisites (ref_cursor_prerequisites out ref_cursor);
- Процедура show_logs (ref_cursor_logs out ref_cursor);
Глобальные типы -
- Тип ref_cursor - ref cursor;
- Этот курсор ref возвращается из индивидуальной процедуры в качестве выбора запроса.
Процедура отображения B#, имя и фамилия TA для входной классики.
- Процедура class_ta (classid_in в классе.
- Валидации:
- Если у класса нет ТА, сообщите: «У класса нет ТА».
- Если предоставленная классика недействительна (то есть не в таблице классов), сообщите «Классида недействительна».
Процедура возвращает все прямые и косвенные обязательные курсы.
- Процедура class_prereq (dept_code_in в prerequisites.dept_code%тип, курс#_in в prerequisites.course#%тип, pre_req_out out varchar2);
- Валидация:
- Если предоставленная (dept_code, course#) является недействительным, отчет «DEPT_CODE || Курс# не существует».
Процедура обрабатывает зачисление студента в класс.
- Процедура regroll_student (b#_in в студентах.
- Валидации:
- Если студент не в таблице студентов, сообщите «B# недействителен».
- Если классика не находится в таблице классов, сообщите «Классида недействительна».
- Если класс не предлагается в текущем семестре (т. Е. Осень 2018 года), отклоните зачисление и отчет «не могут зарегистрироваться в классе с предыдущего семестра».
- Если класс уже заполнен до запроса на зачисление, отклоните запрос на зачисление и сообщите: «Класс уже заполнен».
- Если студент уже в классе, сообщите: «Студент уже в классе».
- Если студент уже зачислен в четырех других классов в том же семестре и в том же году, сообщите: «Студент будет перегружен с новой регистрацией». но все же позволяйте ученику быть зачисленным.
- Если студент уже зачислен в пять других классов в том же семестре и в том же году, сообщают: «Студенты не могут быть зачислены в более чем пяти классах в том же семестре». и отвергнуть зачисление.
- Если студент не завершил требуемые обязательные курсы, по крайней мере, с классом C, отклоните зачисление и сообщите о «не удовлетворенных условиях».
Процедура обрабатывает удаление студента из таблицы зачисления.
- Процедура delete_student_enrollment (b#_in in indents.b#%type, classid_in in classe.classid%type);
- Валидации:
- Если студент не в таблице студентов, сообщите «B# недействителен».
- Если классика не находится в таблице классов, сообщите «Классида недействительна».
- Если студент не зачислен в класс, сообщите: «Студент не зачислен в класс».
- Если класс не предлагается осенью 2018 года, отклоните попытку падения и сообщите «только зачисление в текущий семестр может быть отброшена».
- Если отбросить студента из класса приведет к нарушению необходимости необходимости для другого класса, отвергните попытку падения и сообщите: «Падение не разрешено, потому что другой класс, который зарегистрирован студент, использует его в качестве предпосылки». Во всех других случаях студент будет отброшен из класса.
- Если класс является последним классом для студента, сообщите: «Этот студент не зачисляется ни в какие классы».
- Если студент является последним студентом в классе, сообщите: «У класса нет студентов».
Процедура обрабатывает удаление студента из таблицы студентов на основе данного B#.
- Процедура delete_student (b#_in в студентах.b#%тип);
- Валидация:
- Если студент не в таблице студентов, сообщите «B# недействителен».
Связанные объекты DB - эти объекты не являются частью пакета и используются в приложении.
- Последовательность для автоматического генерации журнала#, когда новые записи журнала вставлены в таблицу журналов.
- Триггер для входа в таблицу журналов при удалении записи таблицы регистрации.
- TRIG_ON_DEL_ENROLL_INS_LOGS
- Запуск для уменьшения размера класса в таблице классов по удалению входа таблицы регистрации.
- TRIG_ON_DEL_ENROLL_UPD_CLASSES
- Триггер для удаления записи таблицы TA по удалению записи таблицы студентов.
- TRIG_ON_DEL_STUDENTS_DEL_TA
- Триггер для входа в таблицу журналов по удалению входа таблицы TA.
- Триггер, чтобы сделать вход столбца TA NULL в таблице классов по удалению записи таблицы TA.
- TRIG_ON_DEL_TAS_UPD_CLASSES
- Триггер для входа в таблицу журналов при введении записи таблицы регистрации.
- TRIG_ON_INS_ENROLL_INS_LOGS
- Триггер для увеличения размера класса в таблице классов при введении таблицы регистрации.
- TRIG_ON_INS_ENROLL_UPD_CLASSES
- Триггер для входа в таблицу журналов при обновлении записи таблицы классов.
- TRIG_ON_UPD_CLASSES_INS_LOGS
- Триггер для удаления регистрации при удалении учащихся.
- TRIG_ON_DEL_STUD_DEL_ENROLL
Схема кода Frontend и Java
- Ниже приведен фрагмент структуры каталогов для Java Dynamic Web Project с использованием модели архитектуры контроллера модели:
