Requirements Specification
for Scheduling Tool
Version 0.1
7 December 2007

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 GACS (Generic Algorithm Class Scheduler)
         1.5.2 Lantiv Timetabler
         1.5.3 Mimosa Software Scheduler
         1.5.4 Cyber Matrix Class Scheduler
         1.5.5 Visual Classroom
         1.5.6 Orologio Class Timetabling
         1.5.7 Feature Comparison Matrix

2.  Functional Requirements
     2.1. User Interface Overview
     2.2. Setting Up Instructor Scheduling Preferences
         2.2.1 Time Preferences
         2.2.2 Class Preferences
         2.2.3 Pattern Preferences
         2.2.4 Proximal Preferences
     2.3. Basic Schedule Generation
     2.4. Database Management
         2.4.1 Instructors
         2.4.2 Classes
         2.4.3 Rooms
     2.5. Advanced Schedule Generation and Editing
         2.5.1 Modifying the Temporary Databases
             2.5.1.1. Modifiying an Instructor's Information in the Temporary Database
             2.5.1.2. Modifiying a Classroom's Information in the Temporary Database
             2.5.1.3. Modifiying a Course's Information in the Temporary Database
         2.5.2 Dealing with Constraints
             2.5.2.1 Administrator Constraints
             2.5.2.2 Physical Constraints
         2.5.3 View Schedule Attributes
             2.5.3.1 View Time Scheduling Attributes
             2.5.3.2 View Class Scheduling Attributes
             2.5.3.3 View Pattern Scheduling Attributes
             2.5.3.4 View Proximal Scheduling Attributes
             2.5.3.5 View Scheduling Conflicts
         2.5.4 Hand Editing the Schedule
     2.6. View a Schedule
     2.7. Server Administration
     2.8. Error Conditions


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
     4.1. Primary Objects and Operations
         4.1.1. The Generate Schedule Operation
         4.1.2. The Database Objects
         4.1.3. The Viewing a Schedule Operation
     4.2. Data and Operation Dictionaries
     4.3. UML Drawings and Dataflow


5.  Formal Specification
     5.1. Schedule Database (scheddb.fmsl)
     5.2. Attributes Databases (attributes.fmsl)
     5.3. Room Database (room.fmsl)
     5.4. Instructor Database (instructor.fmsl)
     5.5. Instructor Preferences (pref.fmsl)
     5.6. Course Database (course.fmsl)
     5.7. ScheduleEntry Database (scheduleEntry.fmsl)


List of Figures