4. Developer Overview
The Scheduling Tool is mainly based around a set of databases which hold information about user accounts, instructors, classroom locations, course offerings, and schedules. The main operation of this tool is to generate a schedule given all of the information in the databases. The generated schedule will have a "score" to measure how well it fits preferences of the instructors. It should not violate any defined constraints, which include scheduling multiple courses at the same time in the same room, or by the same instructor. Here are some notes pertaining to features that may be difficult to implement as currently specified:
- Instructor objects contain a list of preferences for which classes they prefer to teach and when they want to teach them. If not all preferences are set or defined at the time of schedule generation, neutral values for time/course ratings will be used (2 on a 0-4 scale).
- At some point, users need to authenticate/log in. Administrators should have permissions to use all of the features of the Scheduling Tool, while instructors will be limited to viewing their data on file and submitting their time/course preferences.
- Users who have not logged in should still be able to view schedules, but not be able to modify any of the data.
- We paused work on Functional Requrements Section 2.7 due to time issues, but optimally it would provide a PASS-like user interface for students to plan their schedules while referring to their flowcharts.
Prev: Non-Functional Requirements
| Next: Formal Specification
| Top: Requirements Specification