Many of you register for courses online. The computer knows all the courses that are available each semester, and also knows which ones you are taking. It makes sure that you can’t register for too many courses, that you can’t take the same course twice, that you have taken the prerequisites, and that a course is not oversubscribed.

 A registration system has many users. You’ve probably only seen the system from the point of view of a student. You want to know what courses you signed up for, and maybe how many more hours you need to take to have a full load. But you don’t need to know 3 who is signed up for a particular course. This is only needed by teachers. Teachers will want a course listing and will need to assign grades to each student in a course. But teachers don’t decide which courses are going to be offered each semester. This is done by some administrator. So, there are at least three views of a student registration system; the student’s view, the teacher’s view, and the administrator’s view. A student registration system keeps track of students, courses, and who registers for which one. Students don’t really register for a course, they register for a section. A section is for a particular semester and keeps track of the students registered for the course that semester. A course has a title like “Introduction to Tourism” and a name like “TO101”. It belongs to a department. The department named “Tourism” might have courses named “TO101”, “TO201”, “TO202”, “TO301”, “TO302”, and “TO304”. In fall of 2015, the department is offering TO101 (as always), TO201 and TO301. So, each of those courses has a section for Fall 2015. A course might have several sections for one semester but offered at different times. But none of these courses are that popular.


* Define the functional and nonfunctional requirements of the problem statement above.