1、 大学自动排课算法设计与实现 软件需求规格说明书 文档编号: 密 级: 编 写: 编写日期: 年 月 日 审 核: 审核日期 年 月 日 批 准: 批准日期: 年 月 日 修订记录 版本 章节名称 修订内容 修订日期 修订人 批准人
2、
3、 用户需求确认书 《软件需求规格说明书》中列举的需求已包含用户现阶段所用需求,需求明确,符合要求。 用户职务 用户签名 签订日期 目 录 1 引言 1 1.1 编写目的 1 1.2 范围 1 1.3 定义 1 1.4 参考资料 1 2 项目概述 2 2.1 产品描述 2 2.2 产品功能 2 2.3 用户特点 2 2.4 一般约束 2 2.5 假设和依据 3 3 具
4、体需求 3 3.1 功能需求 3 3.1.1 功能需求1 3 3.1.2 功能需求2 3 3.1.3 功能需求3 3 3.2 外部接口需求 3 3.2.1 用户接口 3 3.2.2 硬件接口 3 3.2.3 软件接口 5 3.2.4 通信接口 3 3.3 性能需求 3 3.4 设计约束 3 3.4.1 其他标准的约束 6 3.4.2 硬件的限制 3 3.5 属性 3 3.5.1 可用性 3 3.5.2 安全性 3 3.5.3 可维护性 7 3.5.4 可转移 \转换性 7 3.5.5 警告 3 3.6 其他需求 3 3.6.1 数据库 3 3.6.2
5、 操作 3 3.6.3 场合适应性需求 8 4 附录 3 1 引言 1.1 编写目的 本需求规格说明书是为了开发大学自动排课算法设计与实现而编写,主要面向系统分析员、程序员、测试员、实施员和最终用户。 本说明书是整个软件开发的依据,他对以后阶段的开发起指导作用。本文也是项目完成后系统验收的依据。同时本书还是《用户手册》和《测试计划》的编写依据。 1.2 范围 A. 待开发的软件系统为:大学自动排课算法设计与实现。 B. 该软件可以帮助学校负责排课的相关人士完成排课任务。 C. 开发本软件主要是为了帮助学校负责排课的相关人士解决“教师”、“教室”、“时间
6、等资源搜索的问题。通过计算机运算速度快的特点,在大数据量的情况下寻找资源的最优或近似最优的组合,以减少人的工作量。但特殊情况还需人为进行调节,不属于本系统所能处理的范围。 1.3 定义 无 1.4 参考资料 Java2实用教程(第三版) 作者:耿祥义、张跃平 出版社:清华大学出版社 出版日期:2006年8月 数据库系统概论(第四版) 作者:王珊、萨师煊 出版社:高等教育出版社 出版日期:2008年12月 数据结构 作者:严蔚敏、吴伟民 出版社:清华大学出版社 出版日期:2008年11月 2 项目概述 2.1 产品描述 高校排课是个既繁重又复杂的工作
7、有大量的数据需要处理。比如“教室容量”、“上课班级人数”、“教师”、“时间”、“距离”等因素需要考虑。去平衡上列各因素,找到一个最优的组合。从此要浪费大量的人力物力,为避免这一局面的发生,我们想开发一款简单的软件来解决这一问题。该软件通过计算机运算速度快的特点来帮助有关人士解决排课的问题。 本软件需要Sun公司提供的Java平台来运行。 2.2 产品功能 本系统可以为高校提供一种便捷的排课服务。操作人员只需录入上课的时间、教室的情况、教师情况等信息软件就可以给出一个最优组合供排课人员参考。 该系统主要有三个使用对象,分别是排课人员(管理员)、教师和学生(班级)。管理员负责排课和对排好
8、的课进行微调。教师和学生(班级)只能查询相应的课表,而管理员可以对教师、班级、排好的课表等信息进行修改和查询操作。 本系统只有管理员具有修改的权限,教师和学生(班级)只有阅读的权限。 2.3 用户特点 本软件的最终用户是有一定排课经验的管理人员,并非计算机专业人士,所以操作应尽量简洁明了。维护人员是有一定计算机操作及编程能力的专业人员。本软件的使用频度并不高,只是在每学期开学之前或学期末的时候对即将开始的学期进行课程的安排。 2.4 一般约束 A. 管理方针:小组成员明确分工,由组长统筹安排共同完成软件的开发。 B. 运行环境的限制: 必须装有Java运行平台的操作系统。 C.
9、与其他应用间的接口:排好内容可以直接保存。 D. 并行操作:需求调研与需求规格说明书的撰写同时进行。 E. 所需的高级语言:Java F. 安全:除操作员外其他人不能随便使用并篡改排课顺序。 2.5 假设和依据 本系统的应用需要Sun公司提供的Java运行平台支持,如果没有该平台在设计软件的时候需要将该平台集成到软件系统中。 数据库的调用需要根据不同的数据库系统进行改动,本系统默认调用微软公司的Access数据库。 3 具体需求 3.1 功能需求 3.1.1 原始信息的采集和录入 A. 引言 将采集到的数据录入到系统中。要排课必须录入教室的信息、上课班级信息和上课的时间等
10、信息。这部分是软件运行的前提条件。 B. 输入 1) 该系统需要录入的数据有教室的情况(多媒体教室和非多媒体教室)、班级数量、老师的时间(8:00~17:50)。 2) 当教师对时间或教室有特殊要求时需要操作员在输入时进行单独调整。 C. 加工 1) 对输入数据的有效性进行检查。 2) 最先执行该功能。 3) 当输入的数据有误(如:时间超过上课时间)给出错误提示。 4) 该操作直接写入数据库,数据库中的全部数据都将受该操作的影响。 5) 对输出数据的有效性进行检查。 3.1.2 排课约束条件信息的采集和处理 A. 引言 在排课的过程中不可能每个条件都能满足,会有一些特殊
11、情况。对此要进行约束条件信息的采集和处理。例如:当某位教师因为某种原因在某个时间段不能上课,应该给以相应的处理。 B. 输入 1) 教室有特殊用途不能提供使用时应提前输入系统。 2) 教师因为某些原因在某时间段不能排课或不能排在某个教室上课应提前输入系统。 3) 班级因为距离或课程安排而不能在某时段排在某个教室应提前输入系统。 C. 加工 1) 对输入数据的有效性进行检查。 2) 当输入的数据有误(如:时间超过上课时间)给出错误提示。 3) 对输出数据的有效性进行检查。 3.1.3 排课数据的处理 A. 引言 通过系统对所输入的信息按照编好的算法进行排列,特殊要求排好课表
12、后再进行小的改动。 B. 加工 1) 对输入数据的有效性进行检查。 2) 根据写好的算法对数据进行处理。 3) 当输入的数据有误(如:时间超过上课时间)给出错误提示。 4) 对输出数据的有效性进行检查。 3.1.4 各种课程安排表的查询 A. 引言 各种课程安排表的查询(班级课表、教师课表、教室课表)。将处理好的数据进行输出,不同权限的人员可以查询不同的课表。 B. 输出 1) 根据查询条件给出相应的课表。 2) 对输出数据的有效性进行检查。 本系统的用例图如下: 图1 大学自动排课算法设计与实现用例图 用例描述如下: 表1
13、 InputInformation用例描述表 用例编号 UC00 用例名称 录入信息 用例概述 录入排课需要的基本信息 主参与者 管理员 次要参与者 无 前置条件 管理员成功登陆 后置条件 显示出录入课程、教室、教师或班级信息的子菜单 基本事件流 1.管理员点击录入信息菜单项 2.录入信息菜单项显示录入课程信息、录入教室信息、录入教师信息和录入班级信息四个子菜单 扩展事件流 无 表2 ScheduleCourse用例描述表 用例编号 UC01 用例名称 排课 用例概述 根据数据库中基本信息,进行排课 主参与者 管理员、数据库 次要
14、参与者 无 前置条件 管理员成功登陆 后置条件 为每个教师、班级和教室各生成了一张课表 基本事件流 1.管理员点击排课菜单 2.显示排课界面 3.管理员点击确定按钮 4.进行排课并返回排课是否成功消息 扩展事件流 管理员点击取消按钮,将取消进行排课 表3 login用例描述表 用例编号 UC02 用例名称 用户登陆 用例概述 用户输入账号和密码登陆 主参与者 管理员、教师、学生 次要参与者 无 前置条件 用户打开应用程序 后置条件 登陆失败时显示登陆失败信息,成功时进入系统 基本事件流 1.用户输入用户信息 2.用户合法则进入系
15、统 扩展事件流 用户不合法时,则提示登陆失败消息 表4 SearchSchedule用例描述表 用例编号 UC03 用例名称 查询课表 用例概述 查询已排好的课表 主参与者 管理员、教师、学生 次要参与者 无 前置条件 用户成功登陆 后置条件 显示查询课表子菜单项 基本事件流 1.用户点击查询课表菜单。 2.查询菜单项显示查询教师课表、查询班级课表和查询教室课表三个子菜单项。 扩展事件流 无 表5 InputCourseInfo用例描述表 用例编号 UC000 用例名称 录入课程信息 用例概述 录入要排课的多项课
16、程的基本信息 主参与者 管理员 次要参与者 无 前置条件 管理员已成功登陆,并点击了录入信息菜单 后置条件 管理员输入的课程信息已存入数据库中 基本事件流 1.管理员点击录入课程信息子菜单 2.界面出现录入课程信息界面 3.管理员输入该课程信息 4.管理员点击确定按钮 5.该课程信息存入数据库并返回存储是否成功的消息 扩展事件流 管理员点击取消按钮时,录入课程信息输入文本框置空 表6 InputClassroomInfo用例描述表 用例编号 UC001 用例名称 录入教室信息 用例概述 录入教室的基本信息(是否为多媒体教室) 主参与者 管
17、理员 次要参与者 无 前置条件 管理员已成功登陆并点击录入信息菜单 后置条件 该教室信息存入数据库中 基本事件流 1.管理员点击录入教室信息菜单项 2.界面显示录入教室信息界面 3.管理员点击确定按钮 4.该教室信息存入数据库并返回存储是否成功消息 扩展事件流 管理员点击取消按钮时,所有输入文本框置空 表7 InputTeacherInfo用例描述表 用例编号 UC002 用例名称 录入教师信息 用例概述 录入教师基本信息 主参与者 管理员 次要参与者 无 前置条件 管理员已成功登陆,并点击了录入信息菜单 后置条件 该教师信息已存入
18、数据库中 基本事件流 1.管理员点击录入教室信息子菜单 2.界面出现录入教师信息界面 3.管理员输入该教师信息 4.管理员点击确定按钮 5.该教师信息存入数据库并返回存储是否成功的消息 扩展事件流 管理员点击取消按钮时,录入教师信息输入文本框置空 表8 InputClassInfo用例描述表 用例编号 UC003 用例名称 录入班级信息 用例概述 录入班级的基本信息 主参与者 管理员 次要参与者 无 前置条件 管理员已成功登陆,并点击了录入信息菜单 后置条件 该班级信息已存入数据库中 基本事件流 1.管理员点击录入班级信息子菜单 2.界
19、面出现录入班级信息界面 3.管理员输入该班级信息 4.管理员点击确定按钮 5.该班级信息存入数据库并返回存储是否成功的消息 扩展事件流 管理员点击取消按钮时,录入班级信息输入文本框置空 表9 SearchTeacherSchedule用例描述表 用例编号 UC030 用例名称 查询教师课表 用例概述 查询某位教师的课表 主参与者 管理员、教师、学生 次要参与者 无 前置条件 用户成功登陆并点击查询教师课表子菜单项 后置条件 显示相应教师的课表 基本事件流 1.用户点击查询教师课表子菜单项 2.用户输入该教师基本信息 3.显示该教师课表 扩
20、展事件流 用户点击取消按钮,将取消本次查询 表10 SearchStudentSchedule用例描述表 用例编号 UC031 用例名称 查询班级课表 用例概述 查询某个班级的课表 主参与者 管理员、教师、学生 次要参与者 无 前置条件 用户成功登陆并点击查询班级课表子菜单项 后置条件 显示相应班级的课表 基本事件流 1.用户点击查询班级课表子菜单项 2.用户输入该班级基本信息 3.显示该班级课表 扩展事件流 用户点击取消按钮,将取消本次查询 表11 SearchClassroomSchedule用例描述表 用例编号 UC032
21、用例名称 查询教室课表 用例概述 查询某个教室的课表 主参与者 管理员、教师、学生 次要参与者 无 前置条件 用户成功登陆并点击查询教室课表子菜单项 后置条件 显示相应教室的课表 基本事件流 1.用户点击查询教室课表子菜单项 2.用户输入该教室基本信息 3.显示该教室课表 扩展事件流 用户点击取消按钮,将取消本次查询 3.2 外部接口需求 3.2.1 用户接口 A. 显示器建议使用1024*768分辨率。 3.2.2 软件接口 数据管理系统 A. 名称:Access数据库。 B. 助记符:DB(Database)。 C. 版本号:Mic
22、rosoft Office Access 2003(11.8166.8221) sp3。 D. 来源:互联网。 Java运行平台 A. 名称:Java(TM)6Update17。 B. 助记符:Java C. 版本号:6.0.170 D. 来源:Sun公司免费提供(互联网) 3.2.3 通信借口 本系统无需通信借口。 3.3 性能需求 A. 静态数值需求包括: 1) 支持的终端数:1 2) 支持并行操作的用户数:1 3) 处理的文卷和记录数:根据上课的班级和所开设科目确定 4) 表和文卷的大小:不同情况大小不定 B. 动态数值需求包括: 因为学校
23、每个学期所开设的课程并不相同,所以本系统欲处理的事务和任务的数量不是一个定值,根据开设课程的不同有所变动。 3.4 设计约束 设计受学校的具体情况所影响。每个学校的时间安排和教室的情况有所不同,约束条件也会有所不同。 同一学校每个学期所开设的课程、时间的安排也会有所不同,约束条件也会相应的有所变化。 3.4.1 硬件的限制 A. 本系统对系统没有很高的要求,普通配置的计算机都能运行。 B. 根据数据量的不同对具体的内存要求不同。 3.5 属性 3.5.1 可用性 1) 当输入完所需的排课数据后进行保存,以防系统崩溃等因素造成数据的丢失。 2) 系统处理完数据(排完课表)自动
24、对数据进行储存,以防重复处理同一数据。 3.5.2 安全性 本系统所处理完的数据出操作员外其他人不能随意修改。只有操作员有修改的权限,其他人只有阅读的权限。在登录的时候已经对不同身份的人进行了识别,只要管理员在处理完数据之后退出程序就不会存在太大的安全问题。 3.5.3 可维护性 除开发人员外其他人不得擅自修改本系统,以确保程序具有可维护性。 3.5.4 可转移\转换性 本软件的运行不依赖于操作系统,而是依赖于Java的运行环境。所以不管移植到什么操作系统上,只要有Java的运行环境本软件就能运行。 3.5.5 警告 本系统只能提供排课功能,请不要恶意输入不正确数据! 3.6 其他需求 3.6.1 数据库 A. 数据库中要存储教室、教师、时间等信息。 B. 本系统对数据库的使用很频繁。 C. 本系统要求数据库具有很强的存储能力。 3.6.2 操作 A. 用户只需输入数据并运行软件。 B. 当运行软件后系统会给出相应的结果并显示。 C. 由于软件的开发有约束条件,所以本软件不能处理庞大的数据量。 4 附录 输出格式: 表1 班级课表 表2 教师课表






