Skip to content

Domain Model

Sophie Deng edited this page Feb 10, 2019 · 23 revisions

Domain Model (Current Version)

Program manager and term instructor view point

Program manager and term instructor view point

  • User, Abstract Class
  • Program Manager
  • Term Instructor
  • Course

Classes needed for the functioning of our system:

  • Coop Position
  • Student
  • Report
  • Form
  • RequiredDocument, Abstract Class

Main Decisions

Removed userRole class: We tried doing the player-role pattern on UML and it did not generate a correct code, so we decided to simplify our model.

No Grade: We decided that each term instructor can grade a document pass or fail. If all documents are passed, the coop position itself will be completed. Otherwise, it will be failed.

Main Functions:

  • The program manager should have a void ViewStudent(Student student) function that allows him to look at a student's record. He should also have a void ChangeStatus(Student student, Status status) function to be able to pass or fail a student anytime. He should be able to have a void ViewCoop(CoopPosition coopPosition) function to see all the coops and get their information, like which courses were useful for this position. Lastly, there should be a void ViewProblematicStudent() function to view all the problematic students.
  • The course instructor should have a void ChangeStatus(status) function to be able to change the status of the documents submitted. He should also have a void ViewDocument() function to see the documents submitted by a student.

Domain Model (Version 1)

Program manager and term instructor view point

Classes related to our viewpoint:

  • User
  • UserRole (Player-Role pattern), Abstract Class
  • Program Manager
  • Term Instructor
  • Course

Classes needed for the functioning of our system:

  • Student
  • CoopPosition
  • RequiredDocument, Abstract Class

Main Decisions

UserRole class: We decided to add a class for the role of the user. Derived from the player-role pattern, it allows one user to change roles. It also allows the term instructor for a specific coopPosition to change.

No Grade: We decided that each term instructor can grade a document pass or fail. If all documents are passed, the coop position itself will be completed. Otherwise, it will be failed.

Main Functions:

  • The program manager should have a void ViewStudent(Student student) function that allows him to look at a student's record. He should also have a void ChangeStatus(Student student, Status status) function to be able to pass or fail a student anytime. He should be able to have a void ViewCoop(CoopPosition coopPosition) function to see all the coops and get their information, like which courses were useful for this position. Lastly, there should be a void ViewProblematicStudent() function to view all the problematic students.
  • The course instructor should have a void ChangeStatus(status) function to be able to change the status of the documents submitted. He should also have a void ViewDocument() function to see the documents submitted by a student.