Requirements Specification
for The Scheduler
Version 0.1
2 October 2009


Contents

1.  Introduction
     1.1. Problem Statement
     1.2. System Personnel
     1.3. Operational Setting
     1.4. Impacts
     1.5. Related Systems
         1.5.1. University Timetabling
         1.5.2. Mimosa
         1.5.3. Wise Timetabling
         1.5.4. aSc Timetabler
         1.5.5. Visual
         1.5.6. Feature Comparison Matrix

2.  Functional Requirements
     2.1. User Interface Overview
         2.1.1. Scheduling Administrator
         2.1.2 Instructor
         2.1.3. Student
     2.2. Basic Schedule Generation
         2.2.1. Creating a New Schedule
         2.2.2. Assigning Courses on a Per Quarter Basis
         2.2.3. Assigning Faculty on a Per Quarter Basis
         2.2.4. Main Schedule View
     2.3. Faculty Preferences
         2.3.1. Instructor Course Preferences
         2.3.2. Instructor Time Preferences
         2.3.3. Instructor Data
     2.4 Database Management
         2.4.1 Faculty Records
         2.4.2 Course Records
         2.4.3 Classroom Records
     2.5. Advanced Schedule Generation and Editing
         2.5.1. Administrator Preference Setting
         2.5.2. Viewing Schedule Attributes
         2.5.3 Manually Editing the Schedule
         2.5.4 Dealing with Constraints
     2.6. Schedule Viewing
         2.6.1 Main Schedule View
         2.6.2 Instructor Week Schedule View
         2.6.3 Room Week Schedule View
     2.7. Student Functions
         2.7.1. Degree Flowcharts
         2.7.2. Degree Progress Checklist
         2.7.3. Future Course Offerings
         2.7.4. Planning a Student Schedule
     2.8. Server Administration

3.  Non-Functional Requirements
     3.1. Performance
     3.2. General Characteristics
         3.2.1. Security and Privacy
         3.2.2. Simplicity versus Power

4.  Developer Overview

5.  Formal Specification
     5.1. Database Objects and Ops (databases.sl)
     5.2. Administrative Database Ops (AdminDatabases.sl)
     5.3. Basic Schedule Generation (baSchedOps.sl)
     5.4. Advanced Schedule Generation (advSchedOps.sl)
     5.5. Instructor Preferences (instructorPrefs.sl)
     5.6. Schedule Views Ops (schedViewOps.sl)

App A.  Late Updates





List of Figures