CSC 217 Lab 04: Design Comparison
There are two proposed designs for the integrated and extended requirements for PackScheduler. You must compare and contrast the designs and give a recommendation to the manager on which design should be implemented.
You will complete your design comparison and recommendation in Google Forms.
It will be easiest to work with the designs if you open the images in a new tab. Then you can zoom in to study the designs. The major differences are noted with each candidate design.
Unless otherwise shown on the diagram, there is an assumption of public getters/setters for the fields of plain old java objects. Additionally, the appropriate equals(), hashCode(), and toString() methods are assumed. They are left off for brevity of the diagrams.
If you work with a partner/team for the design comparison (on-campus labs only), only submit one form. Include the unity ids of all participants.
Candidate Design A
Here are the major design elements in Candidate Design A:
- Incorporates
Activity,Course,ConflictException, andConflictfromWolfSchedulerintoPackSchedulerin theedu.ncsu.csc216.pack_scheduler.coursepackage. CourseRecordIOis returned to its original design (from GP1) and is added to theedu.ncsu.csc216.pack_scheduler.iopackage.- A new
edu.ncsu.csc216.pack_scheduler.catalogpackage is created with aCourseCatalogclass. TheCourseCatalogclass has similar functionality toStudentDirectoryand several methods can be modified fromWolfScheduler. Student,StudentRecordIO, andStudentDirectoryremain unchanged from Lab 03.- A new
edu.ncsu.csc216.pack_scheduler.managerpackage contains classes that manage the major functionality.RegistrationManagerhas theCourseCatalogandStudentDirectory. It also handles user authentication.RegistrarManagerprovides the functionality for a registrar.StudentRegistrationManagerprovides the functionality for a student.
- The
edu.ncsu.csc216.pack_scheduler.uipackage has been updated with a class that handles user authentication and the flow of events in the GUI with separate panels for each of the major functions.
Candidate Design B
Here are the major design elements in Candidate Design B:
- Incorporates
Activity,Course,ConflictException, andConflictfromWolfSchedulerintoPackSchedulerin theedu.ncsu.csc216.pack_scheduler.coursepackage. CourseRecordIOis returned to its original design (from GP1) and is added to theedu.ncsu.csc216.pack_scheduler.iopackage.- A new
edu.ncsu.csc216.pack_scheduler.catalogpackage is created with aCourseCatalogclass. TheCourseCatalogclass has similiar functionality toStudentDirectoryand several methods can be modified fromWolfScheduler. - A new
Userhierarchy hasStudentandRegistraras sub classes. StudentRecordIOandStudentDirectoryremain unchanged from Lab 03.- A new
edu.ncsu.csc216.pack_scheduler.managerpackage contains theRegistrationManagerclass that handles authentication and enrollment functionality. - The
edu.ncsu.csc216.pack_scheduler.uipackage has been updated with a class that handles user authentication and the flow of events in the GUI with separate panels for each of the major functions.