object InstructorDB components: InstructorRecord ; operations: Load, Query, View, Update, CreateBestSchedule ; description: (* This is the actual instructor database. The database is composed of records. *); end InstructorDB; object ScheduleDB components: ScheduleRecord; operations: Load, Query, View, Update; description: (* This database is actually a "filtered" form of the instructor database. All the information in this record is taken from three databases. Also, this information is used to create a capture schedule. *); end ScheduleDB; object CourseDB components: CourseRecord; operations: CreateCourseOffering, LoadPrevCrsOffering, Update ; description: (* This database is composed of records. This information is used to describe the administrative details of a particular course. *); end CourseDB; object RoomDB components: RoomRecord; operations: Load, Query, View, Update ; description: (* This database is composed of records. This information describes the features of a particular classroom. *); end RoomDB; object InstructorRecord components: InsCourseData, InsRoomData, InsInstructorData; operations: AddRecord, DeleteRecord, UpdateRecord ; description: (* This object is an individual record in the Instructor database. Each record is composed of three objects.*); end InstructorRecord; object ScheduleRecord components: SchCourseData, SchRoomData, SchInstructorData; operations: AddRecord, DeleteRecord, UpdateRecord; description: (* This object is an individual record in the schedule database. Each record is composed of three objects. *); end ScheduleRecord; object CourseRecord components: CrsCourseData, CrsRoomData, CrsInstructorData; operations: AddRecord, DeleteRecord, UpdateRecord; description: (* This object is an individual object in the Course database. This record is composed of three objects. *); end CourseRecord; object RoomRecord components: RmCourseData, RmRoomData, RmInstructorData; operations: AddRecord, DeleteRecord, UpdateRecord; description: (* This object is an individual record in the Room database. This record is composed of three objects. *); end RoomRecord; object InsInstructorData components: InsName, InsTimeSlot, InsWeight; operations: UpdateRecord; description: (* This collection of data is native to the InstructorDB record. *); end InsInstructorData; object SchInstructorData components: InsName, InsTimeSlot, InsWeight; operations: UpdateRecord; description: (* This collection of data is native to the InstructorDB record. *); end SchInstructorData; object InsCourseData components: InsCourseTitle, InsCourseNum, InsCourseWeight; operations: UpdateRecord; description: (* This collection of data is native to the CourseDB record. *); end InsCourseData; object SchCourseData components: InsCourseTitle, InsCourseNum; operations: UpdateRecord; description: (* This collection of data is native to the CourseDB record. *); end SchCourseData; object InsRoomData components: InsBuildingNum, InsRoomRequest; operations: UpdateRecord; description: (* This collection of data is native to the RoomDB record. *); end InsRoomData; object SchRoomData components: InsBuildingNum, InsRoomRequest; operations: UpdateRecord; description: (* This collection of data is native to the RoomDB record. *); end SchRoomData; object InsName components: ; operations: EditName; description: (* This object is atomic, it is used to hold a professor's name. *); end InsName; object InsTimeSlot components: InsDaysTaught, InsTime; operations: UpdateTimeSlot; description: (* This object is used to describe the days and time a class is offered. *); end InsTimeSlot; object InsWeight components: ; operations: EditWeight; description: (* This object is atomic, it is used to indicate a professor's preference for a given class. 10 means the professor really wants the particular time. 0 means the professor doesn't care for the particular time at all. *); end InsWeight; object InsDaysTaught components: ; operations: EditDaysTaught; description: (* This object is atomic, it is used to indicate which days of the week a given class is offered. *); end InsDaysTaught; object InsTime components: ; operations: EditTime; description: (* This object is atomic, it is used to indicate which hour(s) a given class is offered. *); end InsTime; object InsCourseTitle components: ; operations: EditCourseTitle; description: (* This object is atomic, and it is used to describe the course title as per the curriculum. For example, "Software Engineering I", or "Computer Graphics" *); end InsCourseTitle; object InsCourseNum components: InsSectionNum, InsUnits; operations: EditCourseNum; description: (* This object is used to indicate the course number as seen in the capture schedule. For example, "440". *); end InsCourseNum; object InsSectionNum components: InsCaptureNum; operations: EditSectionNum; description: (* This object is used to indicate the specific section number for a particular course. For example, "01". *); end InsSectionNum; object InsUnits components: ; operations: ; description: (* This object is atomic. It is used to indicate the units value for a given course. *); end InsUnits; object InsCaptureNum components: ; operations: ; description: (* This object is atomic. It is used to indicate the capture number for a specific course section. *); end InsCaptureNum; object InsBuildingNum components: InsRoomNum; operations: ; description: (* This object is contains the building number. *); end InsBuildingNum; object InsRoomNum components: SeatCapacity, EquipList; operations: ; description: (* This object contains the room number for a particular building. *); end InsRoomNum; object InsRoomRequest components: ; operations: ; description: (**); end InsRoomRequest; object SeatCapacity components: ; operations: ; description: (* This object is atomic. It indicates the seating capacity for a given room. *); end SeatCapacity; object EquipList components: ; operations: ; description: (* This object is atomic. It indicates what type of equipment is contained in a particular room. The following are options for available equipment: "PC", "MAC", "VCR",and "OVERHEAD". *); end EquipList; object CrsCourseData components: CrsCourseTitle, CrsCourseNum ; operations: ; description: (**); end CrsCourseData; object CrsCourseTitle components: ; operations: ; description: (**); end CrsCourseTitle; object CrsCourseNum components: CrsSectionNum, CrsUnits ; operations: ; description: (**); end CrsCourseNum; object CrsSectionNum components: CrsCaptureNum ; operations: ; description: (**); end CrsSectionNum; object CrsCaptureNum components: ; operations: ; description: (* This object is atomic. *); end CrsCaptureNum; object CrsUnits components: ; operations: ; description: (* This object is atomic. *); end CrsUnits; object CrsRoomData components: CrsBuildingNum ; operations: ; description: (**); end CrsRoomData; object CrsBuildingNum components: CrsRoomNum ; operations: ; description: (**); end CrsBuildingNum; object CrsRoomNum components: ; operations: ; description: (* This object is atomic. *); end CrsRoomNum; object CrsInstructorData components: CrsName ; operations: ; description: (**); end CrsInstructorData; object CrsName components: ; operations: ; description: (* This object is atomic. *); end CrsName; object CrsTimeSlot components: CrsDaysTaught, CrsTime ; operations: ; description: (**); end CrsTimeSlot; object CrsDaysTaught components: ; operations: ; description: (* This object is atomic. *); end CrsDaysTaught; object CrsTime components: ; operations: ; description: (* This object is atomic. *); end CrsTime; object RmRoomData components: RmBuildingNum ; operations: ; description: (**); end RmRoomData; object RmBuildingNum components: RmRoomNum ; operations: ; description: (**); end RmBuildingNum; object RmRoomNum components: RmSeatCapacity, RmEquiplist; operations: ; description: (**); end RmRoomNum; object RmSeatCapacity components: ; operations: ; description: (* This object is atomic. *); end RmSeatCapacity; object RmEquiplist components: ; operations: ; description: (* This object is atomic. *); end RmEquiplist; object RmInstructorData components: RmName, RmTimeSlot ; operations: ; description: (**); end RmInstructorData; object RmName components: ; operations: ; description: (* This object is atomic. *); end RmName; object RmTimeSlot components: RmDaysTaught, RmTime ; operations: ; description: (**); end RmTimeSlot; object RmDaysTaught components: ; operations: ; description: (* This object is atomic. *); end RmDaysTaught; object RmTime components: ; operations: ; description: (* This object is atomic. *); end RmTime; object RmCourseData components: ; operations: ; description: (* Debating whether to keep this or not. *); end RmCourseData; object AssignmentFlag components: ; operations: SpecifyOrderAssignment ; description: (* This object is atomic. It is used to determine which mode the scheduler will operate in. Course/Room vs. Instructor/Room. *); end AssignmentFlag;