Object Oriented System Analysis and Design

profileSmart Study
week3.solution_classdiagramandcrccards.coursesolution.docx

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