نظام تسجيل الطلاب (تطبيق SRS)
معلومات عامة:
الهندسة المعمارية عالية المستوى:
- اتبعنا بنية وحدة التحكم في عرض النموذج (MVC) من أجل تنفيذ تطبيق SRS.
- منظر
- باستخدام JSP (صفحات خادم Java) لإنشاء واجهة المستخدم الرسومية للواجهة الأمامية للتفاعل مع المستخدمين.
- وحدة تحكم
- باستخدام Java Servlets للاتصال بفئات مشغل DB وإعادة توجيه النتيجة إلى صفحات JSP المناسبة.
- نموذج
- باستخدام اتصالات JDBC واتصال إجراءات DB المعنية من أجل تنفيذ طلب المستخدم.
- JSPs هي صفحات ويب ديناميكية حيث يمكننا كتابة HTML وكذلك رموز Java.
- باستخدام طريقة HTTP "post" لنقل عناصر النماذج من الواجهة الأمامية إلى الخلفية.
- يتم تنفيذ كل وظيفة في ملفات منفصلة (JSP ، Servlet ، DB Class) للنموذج.
- الرسائل المعالجة المعروضة عبر DBMS_OUTPUT من الخلفية في كود Java DBMS_OUTPUT GET_LINE CALL.
- يتم التحقق من عمليات التحقق الأساسية مثل إدخالات الحقول الفارغة على جانب الواجهة الأمامية.
- يتم تنفيذ غالبية الوظائف لمعالجة بيانات DB والتحققات ذات الصلة في جانب الواجهة الخلفية.
خطة مرحلة التنمية والأنشطة:
- تابعنا الخطوات أدناه أثناء مرحلة تخطيط المشروع لتطبيق SRS:
- ناقش وقررت استخدام JSP كواجهة أمامية ، و CDBC Connectivity و Oracle PL/SQL الخلفية.
- تمت مناقشته وقررت استخدام أداة التحكم في الإصدار "Bitbucket" للحفاظ على رمز مصدر المشروع على حد سواء لمكونات الواجهة الخلفية والواجهة الأمامية.
- تمت مناقشته وقررت استخدام IDE PL/SQL لتطوير كائنات قاعدة البيانات مثل الحزمة والإجراءات والوظائف والتسلسل والمشغلات وحالات الاختبار (SQL Scripts).
- تمت مناقشته وقررت استخدام Eclipse IDE لتطوير مشروع تطبيق الويب بما في ذلك JSPs و Java Servlets و Java JDBC ذات الصلة بالاتصال.
| تاريخ الاجتماع | موقع الاجتماع | أنشطة |
|---|
| 6 نوفمبر 2018 | غرفة اجتماعات المكتبة | تم إنشاء مستودعات Bitbucket وحزمة قاعدة ل SRS [NM]. الإجراءات المضمنة لعرض الجدول tuples [VM]. تنفيذ الإجراء للحصول على تفاصيل TA باستخدام ClassID [DP]. |
| 10 نوفمبر 2018 | غرفة اجتماعات المكتبة | حالة اختبار "class_ta" وتنسيق الكود [VM]. شملت مؤشر المرجع في show_tables + حالة اختبار [DP]. مجتمع البيانات لحالة الاختبار وإعداد Java Web Project [NM]. |
| 11 نوفمبر 2018 | غرفة اجتماعات المكتبة | شملت تنفيذ إجراء "الدورة المسبقة" [NM]. شملت التنفيذ الجزئي - إجراء "تسجيل الطالب" [VM]. تنفيذ حقول جدول العرض في اتصال Java و DB [DP]. |
| 12 نوفمبر 2018 | غرفة اجتماعات المكتبة | التنفيذ الجزئي لـ "إسقاط التسجيل" دون تشغيل [DP]. اختبار وظائف "show_students" في الجانب الأمامي [VM]. تثبيت عيوب DB "show_students" وحالات الاختبار [NM]. |
| 13 نوفمبر 2018 | غرفة اجتماعات المكتبة | تنفيذ واختبار "إسقاط طالب التسجيل" من جانب الخلفية وجانب الواجهة الأمامية [DP] [VM] [NM]. |
| 14 نوفمبر 2018 | غرفة اجتماعات المكتبة | تنفيذ التحقق من الصحة 8 لإجراء incroll_student [DP]. حالة الاختبار + نص SQL ذات الصلة للتحقق من تسجيلات الطلاب [NM]. تنفيذ وظائف تفاصيل TA في المقدمة [VM]. |
| 15 نوفمبر 2018 | غرفة اجتماعات المكتبة | اختبار للمشغلات أثناء تسجيل الطالب في الخلفية [VM]. تنفيذ المتطلب السابق فئة العرض في المقدمة [DP]. رمز جزئي واختبار حذف الطالب في المقدمة [NM]. |
| 19 نوفمبر 2018 | غرفة اجتماعات المكتبة | تنفيذ مجتمعة للتسجيل وحذف الالتحاق الطلاب مع الاختبارات الكاملة من الواجهة الأمامية والخلفية [DP] [VM] [NM]. |
| 26 نوفمبر 2018 | غرفة اجتماعات المكتبة | تنفيذ مشترك لحذف الطالب مع الاختبارات الكاملة من الواجهة الأمامية والخلفية [DP] [VM] [NM]. |
| 28 نوفمبر 2018 | غرفة اجتماعات المكتبة | اختبار شامل لجميع الإجراءات والمشغلات والعيوب الثابتة معا من الواجهة الأمامية والجانب الخلفي [NM] [VM] [DP]. |
| 29 نوفمبر 2018 | غرفة اجتماعات المكتبة | تقرير المشروع وإعداد DB النهائي للعروض [VM] [NM] [DP]. |
- أدوار ومسؤوليات أعضاء الفريق:
- عمل جميع أعضاء الفريق معًا في قاعة الاجتماعات نفسها لتطوير واختبار تطبيق SRS من جانب الواجهة الأمامية والجانب الخلفي.
- تم ذكر الأنشطة التي قام بها أعضاء الفريق في الجدول أعلاه مع الأحرف الأولى من المعروفة.
- نيتيش ميشرا [نانومتر]
- Dipika Suresh Patil [DP]
- Vidhi Mewada [VM]
مخطط رمز PL-SQL الخلفي
اسم حزمة DB - Student_registration_system
إجراءات لعرض tuples من كل من الجداول السبعة. هذه الإجراءات تُرجع مؤشر المرجع كمعلمة خارجية يتم استخدامها في الجانب الأمامي لعرض tuples من سبع جداول ديسيبل.
- الإجراء 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_classes Out ref_cursor) ؛
- الإجراء show_enrollments (ref_cursor_enrollments out ref_cursor) ؛
- الإجراء show_prereperies (ref_cursor_prereveries خارج ref_cursor) ؛
- الإجراء show_logs (ref_cursor_logs Out ref_cursor) ؛
الأنواع العالمية -
- اكتب ref_cursor هو مؤشر المرجع ؛
- يتم إرجاع مؤشر المرجع هذا من الإجراء الفردي كاستفسار محدد.
الإجراء لعرض B#، الاسم الأول والاسم الأخير لـ TA للإدخال ClassID.
- الإجراء class_ta (classid_in in classes.classid ٪ type ، ta_b#_out out classes.
- عمليات التحقق:
- إذا لم يكن لدى الفصل TA ، فقم بإبلاغ "الفصل ليس لديه TA".
- إذا كان ClassID المقدم غير صالح (أي ، ليس في جدول الفئات) ، تقرير "ClassID غير صالح".
الإجراء يعيد جميع الدورات الأساسية المباشرة وغير المباشرة.
- الإجراء class_perereq (dept_code_in في المتطلبات الأساسية.
- تصديق:
- إذا كانت المقدمة (Dept_Code ، الدورة#) غير صالحة ، فلا يوجد "Dept_Code || الدورة التدريبية# غير موجودة".
الإجراء يتعامل مع الالتحاق الطالب في الفصل.
- الإجراء incroll_student (b#_in in students.b#٪ type ، classid_in in classes.classid ٪ type) ؛
- عمليات التحقق:
- إذا لم يكن الطالب في جدول الطلاب ، فأبلغ "B# غير صالح".
- إذا لم يكن المصنوع الجليدي في جدول الفئات ، فاستمر في الإبلاغ عن "ClassID غير صالح".
- إذا لم يتم تقديم الفصل في الفصل الدراسي الحالي (أي خريف 2018) ، فإن رفض التسجيل والتقرير "لا يمكن التسجيل في فصل من الفصل الدراسي السابق".
- إذا كان الفصل ممتلئًا بالفعل قبل طلب التسجيل ، رفض طلب التسجيل والإبلاغ عن "الفئة ممتلئة بالفعل".
- إذا كان الطالب موجودًا بالفعل في الفصل ، أبلغ "الطالب بالفعل في الفصل".
- إذا كان الطالب مسجلاً بالفعل في أربعة فصول أخرى في نفس الفصل الدراسي وفي نفس العام ، فإن تقريرًا "سيتم تحميل الطالب مع التسجيل الجديد". ولكن لا يزال يسمح للطالب بالتسجيل.
- إذا كان الطالب مسجلاً بالفعل في خمسة فصول أخرى في نفس الفصل الدراسي وفي نفس العام ، فإن التقرير "لا يمكن تسجيل الطلاب في أكثر من خمسة فصول في نفس الفصل الدراسي." ورفض التسجيل.
- إذا لم يكن الطالب قد أكمل دورات المتطلبات المطلوبة مع ما لا يقل عن درجة C ، ورفض التسجيل والإبلاغ عن "المتطلب السابق غير راضٍ".
الإجراء يتعامل مع حذف الطالب من جدول التسجيل.
- الإجراء DELETE_STUDENT_ENROLLMENT (B#_in in students.b#٪ type ، classid_in in classes.classid ٪ type) ؛
- عمليات التحقق:
- إذا لم يكن الطالب في جدول الطلاب ، فأبلغ "B# غير صالح".
- إذا لم يكن المصنوع الجليدي في جدول الفئات ، فاستمر في الإبلاغ عن "ClassID غير صالح".
- إذا لم يكن الطالب مسجلاً في الفصل ، فأبلغ "الطالب غير مسجل في الفصل".
- إذا لم يتم تقديم الفصل في خريف عام 2018 ، فترفض محاولة الإسقاط والإبلاغ عن "يمكن إسقاط التسجيل فقط في الفصل الدراسي الحالي".
- إذا كان إسقاط الطالب من الفصل سيؤدي إلى انتهاك لمتطلبات الشرط المسبق لفصل آخر ، فالرفض محاولة الإسقاط والإبلاغ عن "الهبوط غير مسموح به لأن فصل آخر يستخدمه الطالب كشرط أساسي". في جميع الحالات الأخرى ، سيتم إسقاط الطالب من الفصل.
- إذا كان الفصل الدراسي هو آخر فصل للطالب ، فأبلغ "هذا الطالب غير مسجل في أي فصول".
- إذا كان الطالب هو آخر طالب في الفصل ، فقم بإبلاغ "الفصل الآن ليس لديه طلاب".
يتناول الإجراء حذف طالب من طاولة الطلاب بناءً على A المعطى ب#.
- الإجراء DELETE_STUDENT (B#_IN في tuthers.b#٪ type) ؛
- تصديق:
- إذا لم يكن الطالب في جدول الطلاب ، فأبلغ "B# غير صالح".
كائنات DB ذات الصلة - هذه الكائنات ليست جزءًا من الحزمة واستخدامها في التطبيق.
- تسلسل لإنشاء سجل# تلقائيًا عند إدراج سجلات السجل الجديدة في جدول السجل.
- تشغيل لجعل الدخول في جدول السجل على حذف إدخال جدول التسجيل.
- TRIG_ON_DEL_ENROLL_INS_LOGS
- تشغيل لتقليل حجم الفئة في جدول الفئات عند حذف إدخال جدول التسجيل.
- TRIG_ON_DEL_ENROLL_UPD_CLASSES
- تشغيل لحذف إدخال جدول TA عند حذف إدخال جدول الطالب.
- trig_on_del_students_del_ta
- تشغيل لجعل الدخول في جدول السجل على حذف إدخال جدول TA.
- تشغيل لجعل إدخال عمود TA فارغًا في جدول الفئات عند حذف إدخال جدول 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
مخطط الرمز الأمامي ورمز جافا
- فيما يلي مقتطف بنية الدليل لمشروع ويب Java Dynamic باستخدام نموذج بنية وحدة التحكم في عرض النموذج:
