ICS 52, Fall, 2007

Official Requirements Specification -- Oct. 31, 2007
Later clarifications and modifications in blue


1 Introduction

This document specifies the Official Requirements for the Schocr system, and should serve as the basis for a further development of the system. The Schocr system is designed to assist high schools, colleges, and universities in the task of "time tabling," or assigning classes to classrooms and times. It is designed to create a schedule that takes into account a wide variety of factors and possibly competing goals.

All information was accurate at the time of writing. This document details 62 discrete, atomic requirements. Each is labeled with an identifier in boldface type (e.g. A-1) for easy reference elsewhere in this document and in subsequent system development. In places where the user interface is incompletely specified, the powers that be are relying on the implementers to devise a user interface that is both pleasing to use and in accordance with all listed requirements.

This document contains the following Sections:

2) User Requirements Definition - This section is designed for the non-technical reader. It describes the major features of the system and the rational for each one.

3) System Requirements Specification - This section identifies the objects that make up the system and inter-relationships between them. It has been written so as to provide enough detail for the technical design to be produced.

4) Constraints and Non-functional Requirements - This sections contains the current constraints on the system.

5) Implementation Phases

6) Future Directions and Expected Changes - Although speculative, this section is a key way of influencing the product currently being developed so that it can better respond to situations in the future.

7) Acceptance Test Plan


2 User Requirements Definition

A typical large high school, college, or university has hundreds of courses to schedule into classrooms each quarter or semester. The task of doing so can be time consuming and subject to error if done by hand. In addition, there are many possibly competing constraints on a schedule which are difficult for a human to keep in mind simultaneously, but which are automatically considered by Schocr.

The primary goal of the Schocr system is to create a schedule of courses, classrooms (including labs and lecture halls), and times that satisfies the largest possible number of constraints. Schocr is designed to operate independently of other computer information systems at the school. It operates on the assumption that courses are scheduled into rooms at particular times of the week, and that this scheduling is completed before the start of the term.

The key features of the Schocr system are:

The Schocr system has a standard, easy-to-use graphical user interface. It stores data on a computer disk, and can convert some data from a previous database format.


3 System Requirements Specification

3.1 Overall Operation

The Schocr system supports the following typical cycle of events for each school term.

  1. Data about courses to be offered, available classrooms, and available time slots and time periods are entered in Schocr. Often most of this information can be carried forward from the previous term. (Done approximately 10 weeks before the start of the term.)
  2. Teachers enter time and room preferences. (9 weeks before term start.)
  3. Students enter courses they plan to take the following term. (7 weeks before term start.)
  4. Schocr's Schedule function is run, which creates a tentative schedule (6 weeks before term start.)
  5. Further modifications can be made to Schocr's database. (5 weeks before term start.)
  6. Schocr's Schedule function creates the final schedule. (5 weeks before term start.)
  7. During the term, Schocr can be used to schedule room and time changes for regular courses, and to schedule special one time events.
The Schocr system is used by only one user at a time. It does not handle or have any representation of multiple terms.

3.2 Courses

Information about courses can be entered into Schocr and later modified. Course information is one of the primary sources for creating a schedule.

Schocr stores the following information about each course:

3.3 Rooms

Information about rooms can be entered into Schocr and is one of the primary sources for creating a schedule. Schocr stores the following information about each room (R-0):

3.4 Time Periods and Time Slots

Each class is scheduled to meet during one or more time periods. A time period has three components:

Time periods can be aggregated into time slots by administrators. (T-4) A time slot is a collection of one or more time periods with different days of the week, but the same starting times and durations. For instance, the time periods Tuesday 12:30 p.m. for 90 minutes and Thursday 12:30 p.m. for 90 minutes can be grouped together to form the time slot Tuesday-Thursday 12:30 p.m. for 90 minutes. One time period can be part of zero, one, or several time slots (T-5). A time slot is assigned by the administration a desirability level of A (most desirable), B (medium), or C (least desirable) to indicate the general priority with which it should be used (T-6) (see SR-2). Typically, meeting times in the late morning and early afternoon are most desirable, and courses that meet at early hours such as 8:00 a.m. are least desirable.

(T-7) Time periods and time slots are usually displayed in a format indicating the day or days (abbreviated M for Monday, T for Tuesday, W for Wednesday, Th for Thursday, F for Friday, Sa for Saturday, Su for Sunday) with multiple day abbreviations adjacent to each other; followed by a space; followed by the starting time in 12 hour format and without "am" or "pm"; followed by a dash; followed by the ending time. Examples: "M 12:00-2:00", "MWF 8:30-9:30", "TThSa 5:00-6:00", "MTWThF 9:45-12:15".

Note that although "am" or "pm" does not appear in the display of a time period or time slot, the Schocr system does distinguish between a.m. and p.m. times.

3.5 Teachers

Every course is taught by one or two teachers, who may be faculty, students, researchers, or other personnel. Each teacher has a unique name (P-1). For each course that a teacher teaches, he or she can enter a first, second, and third choice of time slots or time periods (P-2). Teachers cannot enter time preferences for courses in which they are the second teacher (P-3).

A teachers can also enter a first, second, and third choice of room for each course where he or she is the first teacher (P-4).

3.6 Students

Students are inconvenienced when two courses they desire to take in the same term are scheduled at the same time. Therefore, students can inform Schocr of a list of courses they wish to take in the following term (S-1), and that list will be factored in to the creation of a schedule (see (SR-5)). Each student can enter at most one list (this will not be enforced until security is implemented) which can reference at most five courses.

3.7 Schedules and Evaluating Schedules

A schedule assigns to each course a room and either a time slot or a time period (SCH-1). A schedule generated by Schocr follows the "hard" and "soft" rules listed below. The hard rules cannot be violated. The soft rules are enforced by assigning to each violated soft rule a certain number of "penalty points". The penalty points for all violated soft rules are summed to create the schedule's penalty rating. The best schedule is the one with the lowest penalty rating (SCH-2).

Finding the best schedule is potentially a time-consuming task. Therefore, Schocr has two processes for creating a schedule. One, called "optimum", uses sophisticated artificial intelligence techniques to find the best (lowest penalty) possible schedule (SCH-3). The other process, called "speedy", uses a much less time-consuming approach and finds a good (satisfies hard constraints) but not necessarily optimal schedule (SCH-4).

Sometimes a valid schedule that meets all the hard rules will not be possible to create. In this case, Schocr will display an error message identifying the course that could not be scheduled (SCH-5). Schocr will then continue with the process of scheduling other courses.

Hard Rules

  1. A course can only be scheduled in a room with a capacity greater than or equal to the course's maximum allowed enrollment. (HR-1)
  2. Each course must be scheduled to meet in a single room. (HR-2)
  3. Two courses taught by the same teacher cannot be scheduled to meet at the same time or at overlapping times. (HR-3)
  4. A course can only be scheduled to meet at a time represented by one of Schocr's time slots or time periods. (HR-4)
  5. Each course must be scheduled in time periods that add up to the appropriate number of hours per week. (HR-5)
  6. Two courses cannot be scheduled to meet in the same room at the same time or for overlapping times. (HR-6)
  7. A discussion or lab cannot be scheduled at any time that overlaps the times when the corresponding lecture is scheduled. (HR-7)

Soft Rules

The following rules may be violated in a schedule, at the cost of the specified number of penalty points.
  1. The difference between a course's maximum allowed enrollment and the capacity of the room in which it is scheduled should be as small as possible. (Penalty: difference times 10 points.) (SR-1)
  2. A course should be scheduled in a preferred time slot, and in a time slot rather than a time period. (Penalties: type A time slot, no penalty; type B time slot, 50 points; type C time slot, 100 points; in a time period, 200 points.) (SR-2)
  3. If the first teacher has entered course time preferences, a course should be scheduled in one of its teacher's preferred time periods or time slots. (Penalty: first choice: no penalty; second choice: 100 points; third choice: 200 points; not a preferred time: 700 points.) (SR-3)
  4. A course should be scheduled in one of its teacher's preferred rooms. (Penalty: first choice: no penalty; second choice: 20 points; third choice: 40 points; not a preferred room: 60 points.) (SR-4)
  5. Two courses which both appear on a student's list should not be scheduled at overlapping times. (Penalty: 2 points for each student list that contains two or more courses that overlap.) (SR-5)
  6. A room should have all the special requirements that the course needs. (Penalty: 500 points for each course requirement not matched by the room.) (SR-6)

3.8 User Interface

A graphical user interface (GUI) allows access to and control of all of Schocr's functions. The GUI will be based on one or more standard operating system windows and dialog boxes, utilizing menus, buttons, hot keys, and other standard user interface elements (UI-1). It should be organized in an intuitive and easy to use manner. Where appropriate, the user (administrator, teacher, or student) has the option to save the current information, including term, room, time slot, time period, teacher and course information, teacher and student preferences, and a schedule, to a disk file, and later to read the information back in to Schocr from the disk file (UI-2). The GUI will have the following elements:
  1. A teacher section that allows teachers to enter and modify their preferred times and rooms. (UI-3)
  2. A student section that allows students to enter their coming term course lists. (UI-4)
  3. A administration section which allows administrative personnel to
    1. Enter, modify, and delete course information. (UI-5)
    2. Enter and modify time slot and time period information including time slot desirability level. (UI-6)
    3. Enter, modify and delete room information. (UI-7)
    4. Initiate the conversion of old data into the Schocr system (see section 3.9). (UI-8)
    5. Initiate the generation of a schedule, using either the optimal or speedy process. (UI-9)
    6. View the latest schedule produced, in order by course number. The schedule's total penalty should display. (UI-10)
    7. View a report that shows statistics summarizing the number of courses, teachers, and rooms. (UI-11)
    8. View reports that list courses, teachers, and rooms. (UI-12)
    9. Query the latest schedule to find a room and time for a special event with a specified maximum capacity. (UI-13)

Security

Initially, Schocr will have no security. However, the functions that apply to students, teachers, and administrators should be segregated in the user interface. (UI-14)

3.9 Conversion of existing data

Information about courses, rooms, and times currently exists in a DF-2007 database. The exact format of this database has not been determined at the time of writing, but should be available shortly. Schocr's lists of courses, rooms, and times for the first term of operation should be initialized from this data, in so far as possible (CN-1).


4 Constraints and Non-functional Requirements


5 Implementation Phases

An operational system is desired before Finals Week, Fall, 2007. For the first phase, which should be achieved in this time frame, the following functional requirements may be omitted, if required to meet the deadline: (UI-4), (UI-11), (UI-12), (SR-5), and implementation of the optimum scheduling process (SCH-3).


6 Future Directions and Expected Changes


7 Acceptance Test Plan

The complete acceptance test plan will demonstrate that the implemented system completely fulfills the requirements stated in this document.

Here is one scenario, or test case, for testing the hard rules.

Before the test begins, the following information should have been entered into Schocr:

  1. Time Periods: 60 minute time periods starting at 9:00 am, 10:00 am, and 11:00 am for Monday, Tuesday, Wednesday, Thursday, and Friday (15 time periods total).
  2. Time Slots: Three time slots: MTWThF at 9:00 (desirability level C), MTWThF at 10:00 (desirability level B), MTWThF at 11:00 (desirability level A).
  3. Rooms: CS-100 (capacity 50, no facilities), CS-200 (capacity 100, no facilities).
  4. Courses: No courses have special room requirements.
For the first step of the test, run the speedy scheduler. It should be able to find a schedule. Note that the five ICS 1 discussions must all be scheduled at the same time, on different days, in room CS-100. One correct schedule is
TimeMonday Tuesday Wednesday Thursday Friday
9:00 CS-100: ICS-3
CS-200: ICS-4
CS-100: ICS-3
CS-200: ICS-4
CS-100: ICS-3
CS-200: ICS-4
CS-100: ICS-3
CS-200: ICS-4
CS-100: ICS-3
CS-200: ICS-4
10:00 CS-100: ICS-1a
CS-200: ICS-5
CS-100: ICS-1b
CS-200: ICS-5
CS-100: ICS-1c
CS-200: ICS-5
CS-100: ICS-1d
CS-200: ICS-5
CS-100: ICS-1e
CS-200: ICS-5
11:00 CS-100: ICS-2
CS-200: ICS-1
CS-100: ICS-2
CS-200: ICS-1
CS-100: ICS-2
CS-200: ICS-1
CS-100: ICS-2
CS-200: ICS-1
CS-100: ICS-2
CS-200: ICS-1
Also check that Washington's two courses are not scheduled at the same time.

For the second step, add one more discussion to ICS 1:

ICS 1f: title "Intro to CS disc", type discussion, max 25, hours 1, teacher Burr
Use the speedy scheduler again. This should result in one course not being scheduled.