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