Study Information System

Study information system is intended to support management of courses including electronic enrollment and course dropping.

Management of the courses allows teachers to add new courses, remove courses and update course information, which includes a name, info, prerequisites, capacity, schedule and a distinction of full time and distance study courses.

Students have an opportunity to electronically enroll at courses and drop a course (i.e. withdraw from it). Enrollment at courses is only allowed when the capacity of the course is not yet filled up. If the course capacity is filled up, the system notifies the teacher responsible for the course via email.

One of the supplementary functions of the system is the support of adding of work reports about the worked hours of external teachers, who unlike internal teachers do not receive monthly wage, but are paid solely for their worked hours.

Key:
Red - noun as a class candidate.
Green - noun as an attribute candidate.
Blue - verb as an operation/method candidate.

Candidate classes, attributes and operations:

Class: Course/FullTimeCourse/DistanceStudyCourse
Attributes: name, info, prerequisites, capacity, schedule, responsiblePerson
Operations: manageCourse, enrollStudent, withdrawStudent, notify

Class: Student
Attributes: ---
Operations: ---

Class: Teacher/InternalTeacher/ExternalTeacher
Attributes: email, wage
Operations: ---

Class: WorkReport
Attributes: hoursWorked
Operations: addReport

Final classes, attributes and operations written as CRC:

Class: Course/FullTimeCourse/DistanceStudyCourse
Attributes: name, info, prerequisites, capacity, schedule
Operations (responsibilities): addCourse, remCourse, updateInfo, enrollStudent, withdrawStudent, notify
Collaborators: Students, responsible Teacher, lecturing Teachers

Class: Student
Attributes: name, address, email
Operations (responsibilities): addStudent, remStudent, updateInfo
Collaborators: Kurzy

Class: Teacher/InternalTeacher/ExternalTeacher
Attributes: name, address, email, monthlyWage/hourlyWage
Operations (responsibilities): addTeacher, remTeacher, updateInfo
Collaborators: WorkReport, lectured Courses, managed Courses

Class: Work Report
Attributes: hoursWorked, date
Operations (responsibilities): addReport, remReport
Collaborators: Teacher, Course