Object Oriented System Analysis and Design
Class Diagram and CRC Cards – SRS Project
Class Diagram
CRC Card – Course
Front:
|
Class Name: Course |
ID: 1 |
Type: Concrete, Domain |
|
Description: This class maintains information about a course
|
Associated Use Cases: Maintain Course Records Register Student for Classes |
|
|
Responsibilities CreateCourse UpdateCourse DeleteCourse GetCourseByCourseID GetAllAvailableCourses
|
Collaborators Class
|
Back:
|
Attributes: CourseID: string CourseName: string CreditHours: int Description: string PrerequisiteCourse: string AvailabilityStatus: string
|
|
Relationships: Generalization (a-kind-of):
Aggregation (has-parts):
Other Associations: Class
|
CRC Card – Class
Front:
|
Class Name: Class |
ID: 2 |
Type: Detail, Domain |
|
Description: This class maintains the attributes common to all kinds of classes like CourseID, BeginDate, and EndDate and also provides methods to maintain the classes and Get class information. This class is tightly associated with the Online and FaceToFace subclasses that inherit from it.
|
Associated Use Cases: Maintain Class Records Register Student for Classes |
|
|
Responsibilities CreateClass UpdateClass DeleteClass GetClass GetCourseClassList UpdateClassEnrollment
|
Collaborators Course Registration
|
Back:
|
Attributes: CourseID: string BeginDate: date EndDate: date MaximumEnrollment: integer ClassCount: integer ClassStatus: string (X= Cancelled, A=Active, C=Completed)
|
|
Relationships: Generalization (a-kind-of): Aggregation (has-parts):
Other Associations: Course, Registration
|
CRC Card – Online
Front:
|
Class Name: Online |
ID: 3 |
Type: Concrete, Domain |
|
Description: The online class is a sub class of Class and holds information specific about the online classes
|
Associated Use Cases: Maintain Classes Register Student for Classes |
|
|
Responsibilities
CreateOnlineClass DeleteOnlineClass UpdateOnlineClass GetOnlineClass
|
Collaborators
Registration Course |
|
|
|
|
Back:
|
Attributes: URL: string Browser: string
|
|
Relationships: Generalization (a-kind-of): Class
Aggregation (has-parts):
Other Associations: Registration, Course
|
CRC Card – FaceToFace
Front:
|
Class Name: FaceToFace |
ID: 4 |
Type: Concrete, Domain |
|
Description: The FaceToFace class is a sub class of the Class and holds information specific about the face-to-face classes
|
Associated Use Cases: Maintain Classes Register Student for Classes |
|
|
Responsibilities
CreateFaceToFaceClass UpdateFaceToFaceClass DeleteFaceToFaceClass GetFaceToFaceClass
|
Collaborators
Registration Course |
Back:
|
Attributes: Building: string room: string
|
|
Relationships: Generalization (a-kind-of): Class
Aggregation (has-parts):
Other Associations: Registration, Course
|
CRC Card – Registration
Front:
|
Class Name: Registration |
ID: 5 |
Type: Concrete, Domain |
|
Description: This class represents the many to many relationships that exist between classes and students. Each instance of this class is a registration record of a student registered for a class (either online or face-to-face). It maintains the information of a student registered for a class as well as the final student grade in the class
|
Associated Use Cases: Register Student for Classes |
|
|
Responsibilities CreateRegistrationRecord UpdateRegistrationRecord DeleteRegistrationRecord GetRegistrationRecord ProcessFinalGrade VerifyRegistrationRules RegisterStudent DisplayConfirmationMessage DisplayViolationMessage |
Collaborators Class, Student
|
Back:
|
Attributes: StudentID ClassID DateRegistered: date StudentStatus: char (R = Registered, A = Active, D = Dropped, C = Completed Class) Grade: char (A = Excellent, B = Good, C = Fair, D = Poor, F = Fail)
|
|
Relationships: Generalization (a-kind-of):
Aggregation (has-parts):
Other Associations: Class, Student
|
CRC Card – Student
Front:
|
Class Name: Student |
ID: 6 |
Type: Concrete, Domain |
|
Description: This class maintains the records of students in the school. It also responsible for registering a student for a class
|
Associated Use Cases: Maintain Student Records, Register Student for Classes |
|
|
Responsibilities CreateStudent UpdateStudent DeleteStudent GetStudent
|
Collaborators Registration
|
Back:
|
Attributes: StudentID: int FirstName: string MiddleInitial: string LastName: string Department: string DateOfBirth: date GPA: double OnlineEquipment: Boolean
|
|
Relationships: Generalization (a-kind-of):
Aggregation (has-parts):
Other Associations: Registration
|