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
, andConflict
fromWolfScheduler
intoPackScheduler
in theedu.ncsu.csc216.pack_scheduler.course
package. CourseRecordIO
is returned to its original design (from GP1) and is added to theedu.ncsu.csc216.pack_scheduler.io
package.- A new
edu.ncsu.csc216.pack_scheduler.catalog
package is created with aCourseCatalog
class. TheCourseCatalog
class has similar functionality toStudentDirectory
and several methods can be modified fromWolfScheduler
. Student
,StudentRecordIO
, andStudentDirectory
remain unchanged from Lab 03.- A new
edu.ncsu.csc216.pack_scheduler.manager
package contains classes that manage the major functionality.RegistrationManager
has theCourseCatalog
andStudentDirectory
. It also handles user authentication.RegistrarManager
provides the functionality for a registrar.StudentRegistrationManager
provides the functionality for a student.
- The
edu.ncsu.csc216.pack_scheduler.ui
package 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
, andConflict
fromWolfScheduler
intoPackScheduler
in theedu.ncsu.csc216.pack_scheduler.course
package. CourseRecordIO
is returned to its original design (from GP1) and is added to theedu.ncsu.csc216.pack_scheduler.io
package.- A new
edu.ncsu.csc216.pack_scheduler.catalog
package is created with aCourseCatalog
class. TheCourseCatalog
class has similiar functionality toStudentDirectory
and several methods can be modified fromWolfScheduler
. - A new
User
hierarchy hasStudent
andRegistrar
as sub classes. StudentRecordIO
andStudentDirectory
remain unchanged from Lab 03.- A new
edu.ncsu.csc216.pack_scheduler.manager
package contains theRegistrationManager
class that handles authentication and enrollment functionality. - The
edu.ncsu.csc216.pack_scheduler.ui
package 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.