自动排课系统的设计与实现.docx
- 文档编号:7896748
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:69
- 大小:1,012.63KB
自动排课系统的设计与实现.docx
《自动排课系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《自动排课系统的设计与实现.docx(69页珍藏版)》请在冰豆网上搜索。
自动排课系统的设计与实现
摘要
随着高职院校招生人数的持续增加,教师规模的不断扩大,手工排课的缺点就越来越突出。
而采用计算机排课,教学中的信息可以一目了然,对于优化学生的学习进程,评估每位教师对教学的贡献,领导合理决策等都具有重要的意义。
本论文所研究设计的主要内容是使用计算机实现课表的编排、基础数据的处理、课表的查询和报表的输出等多种功能,运用计算机排课代替传统的手工排课,提高排课效率,使教务管理人员的从繁重的排课工作中解脱出来,提高教务人员的工作效率,同时也对教学管理的规范化也起到积极的作用。
排课问题从数学上讲,是一个在时间、教师、学生和教室四维空间,以教学计划和各种特殊要求为约束条件的组合规划问题,其实质就是解决各因素之间的冲突。
我们分析了国内外对排课问题的研究,根据高职院校的教学体制的特点,采用了化整为零的思想及优先级算法。
该算法通过划分等价类、计算优先级等方法降低了课程调度的算法复杂性,从而可以以较快的速度获得较为满意的排课结果。
本文采用Rational统一过程(RUP)为软件开发方法,以统一建模语言(UML)为分析设计描述语言,以淄博职业学院的排课业务为对象进行需求分析,对计算机排课系统进行了系统设计,具体分析设计了用户管理、自动排课、课程管理、课表查询、课表输出等功能模块。
本文介绍了系统开发的背景和国内外排课问题的发展现状,简要描述了系统需要解决的主要问题和系统的开发模式,对系统的需求分析和架构设计进行了详细描述,对系统部分功能的实现进行了介绍,并对教学计划和排课算法两个关键问题进行描述。
关键词:
Rational统一过程RUP、统一建模语言UML、计算机自动排课、等价类、优先级、时间模式
ABSTRACT
Thenumbercontinuingforincreasesbywiththefactthattalldutyuniversitiesandcollegesenrollsnewstudents,teacherscaleceaselessnessexpands,theshortcomingarrangingclassbyhandismoreandmoreoutstanding.Butadoptacomputertoarrangeclass,informationinteachingcanbeclearataglance,studyacoursetooptimizingastudent's,thecontributionappraisingeveryplaceteachertoteaching,leadstherationaldecision-makingtowaittohaveimportantsignificance.
Variousfunctionssuchastreatment,theschooltimetableinquiryandtheformforreportoutputstudiedthemaincontentdesigningthatistouseacomputertorealizetheschooltimetablearrangement,thebasisdatabythesis,thattheclasswieldingthecomputerrowreplacethetraditionbyhandtoarrangeclass,improvesrowclassefficiency,makescomplyingwithofeducationaladministrationhandlingcrewextricateselfinstrenuousrowclassjob,improveavailabilityofeducationaladministrationpersonnel,alsoatthesametimealsoplayarriveatactiveroletoadministrativestandardizationofteaching.
Rowofclassproblemtalksonsecondarymathematics,isthatacombinationtakingteachingprogrammeandvariouspeculiarrequestasconstraintconditionintime,teacher,studentandclassroomfour-dimensionalspace,plansaproblem,whoseessenceistoresolvetheconflictbetweeneveryfactor.
Wehaveanalysedthelargeamountofhomeandabroadresearchtorowclassproblemaccordingtoteachingoftalldutyuniversitiesandcollegessystemcharacteristic.Whendesigninganalgorithm,havemanagedalgorithmiccomplexityforreducingacourse,hasadoptthethoughtbreakingupthewholeintopartsandthepreferentialstepalgorithm.Beanalgorithm'sturntobeabletogaincomparativelysatisfiedrowclassresultwithquickerspeedtherebybythefactthatmethodsuchasdividingtheequivalencekind,calculatingpreferentialstephasreducedthealgorithmcomplexitythatthecoursemanagesgreatly.Atthesametime,payattentiontowhoseconflictsolvingalsoverymuchindesigningalgorithmicprocess.
Andthethesishassetforththeconsumerneedwhoadoptacomputertoarrangeclass,accordingtogooddutyuniversitiesandcollegesteachingprogramme,theautomationhasbeenorderedfromthecomputereveryschooltermcoursedesignplan,describesthattoteachingprogrammethegeneratedalgorithmhavebeeninprogress.Andhaveintroducedthealgorithmicrowclassdesigndesignwithrealization,thedatabaseandhavecometruedetailedly.Aspectsuchasdividing,reducingalgorithmcomplexityresemblingintimechoiceflexibility,preferentialstepcalculation,equivalencehascarriedoutdetailedanalysis.Applybegearedtotheneedsofmarriagepartnertechnologytorowclasssystem,thealgorithmanalysishavingdiscussedthatrowclassrealizesprocessandkey,thecausethatconflictproduces,hasgivenoutaproblemresolvingascheme.
Keywords:
Automaticcoursescheduling,Algorithm,Priority,Equivalent,Timemode
第1章绪论
1.1系统开发背景
2002年7月,经山东省政府批准,教育部备案,由原淄博商业学校、淄博市化工学校、淄博市城建中专和淄博市工贸中专四所学校合并组建淄博职业学院。
在学院的教学管理工作中,排课是教学管理中最基本、最重要、同时也是最复杂的管理工作之一。
目前,我院的排课主要采用手工编排方法。
一般是由经验丰富的教务人员在学期末依据人才培养方案、教学计划等资料集中时间、精力进行编排,协调出现的各种矛盾,在这个基础上再由排课专家反复检查合理性,修正课表,直至符合要求为止。
近几年,随着我院招生人数的持续增加,教师规模的不断扩大,手工排课的缺点就越来越突出。
排课实际过程中涉及数十个院系和部门、数千教师,上万学生、教师跨系上课和班级合班上课等复杂情况,排出合理的课表需要耗费大量的时间,且排出的课表调整起来困难。
同时因为人的思维的随意性,排课表时非常灵活,没有严格的工作步骤,所以人工排出的课表随意性大。
计算机由于具有运算速度快、处理能力强等特点,在教学工作中得到了普及应用。
用计算机来代替劳动强度大、工作效率低的手工排课势在必行。
为了解决手工排课的问题,我院决定通过信息化手段来提高教务管理水平,用计算机排课来代替传统的手工排课。
1.2国内外的研究现状
计算机排课,它是把排课问题化为计算领域的有约束的时空组合优化问题进行求解的。
它对课表上的时间进行了分片和编号处理,使分成的每个时间片和每个教室空间组合,构建了一个个大小不等的时空组合块,并根据求解规则,对每个教学计划进行时空组合块分配,并且分配的组合,必须在目标空间中表现出良好的人为满意度。
国外研究人员从20世纪50年代就开始对课表编排问题的数学模型、解的存在性以及计算机求解算法等问题进行了研究。
1962年Gotlieb提出了课表编排问题的数学模型,使之成为数学家和计算机应用专家共同研究的课题。
由于实际中遇到种种难题,并未能取得满意成果。
1976年Bondy提出了一个简单的排课表问题,将问题归结为一个图的边染色问题,并且对提出的简单排课表问题给出了一个算法。
但实际教学活动中提出的排课表问题远非如此简单,且由于它必须满足各种复杂约束条件而使这种算法实际上是无能为力的。
1976年Even等人证明了课表问题属于NP完全类问题,把人们对计算机编排课表的复杂性的认识提高到了理论的高度。
进入20世界90年代以后,国外对课表问题的研究仍然十分活跃,比较有代表性的有印度的Vastapur大学管理学院的ArabindaTripathy、加拿大Montreal大学的JeanAubin和JacquesFerland等。
目前,国外解决课表问题的方法主要有:
模拟手工排课法、图论方法、拉格朗日松弛法、二次分配型法等。
在国内,对排课问题的研究始于20世纪80年代初期。
例如,西南交通大学在分析高校课表编排所遵循的基本原则和模糊性原则的基础上,定义了课元之间,关于教师的相关关系和关于自然班的相关关系,提出以课元相关运算和课元的候选时空片计算为核心的计算机排课算法;延边大学根据高校课程表的制作特点,设计了计算机自动排课的数据结构与算法;沈阳电力高等专科学校研制了基于Client/Server的开放式智能排课系统;山西大学在总结排课工作经验的基础上,提出了一种解决问题的形式化描述,在这种想法上实现了基于知识推理的排课系统;大连理工大学的智能教学组织管理与课程调度系统,清华大学的TISER系统等等,所有这些系统都是模拟手工排课过程,以“班”为单位,运用启发式函数来进行编排的。
但是这些课表编排系统往往比较依赖于各个学校的教学体制,不宜于进行广泛推广。
高职教育在培养目标和办学模式、教学方式等方面都有别于传统学科式教育。
遵循理论“必需”,“够用”为度,理论为实践服务的原则,着重培养学生的实践能力,培养面向生产、建设、管理及服务一线的高等技术应用型人才。
由于培养目标和培养方式的特点,决定了高职教育的教务工作面临许多新的困难,其中在排课、调课、检查教学进度、质量、沟通教学双方信息等常规性工作中的问题尤为突出。
如何利用有限的师资力量和有限的教室资源,排出一个合理的课表,对维护高职院校正常的教学秩序和提高教学效果有重要的作用。
1.3系统解决的主要问题
随着我院办学规模的不断扩大,办学层次的不断提高,课表的编排管理工作也显得越来越重要。
我院在日常的手工排课过程中主要存在以下几个方面的问题:
1、需要大量的有经验的教务人员进行排课;
2、手工排课需要大量的时间,周期长;
3、课表编排完毕后很难进行调整;
4、容易出现教师冲突和教室冲突的现象;
5、排课没有严格的步骤,排出的课表随意性大;
6、课表信息共享程度低。
1.4本文的主要工作
本文通过对淄博职业学院教务管理中排课业务的需求分析,借鉴RUP模式,从架构设计开始,完成了学院计算机排课系统的需求分析和系统设计。
采用VisualBasic为开发工具,完成了系统功能的开发。
本系统开发过程总体上采用RUP模式,由于计算机排课系统开发的生命周期较短,因此,我们在使用RUP进行软件开发时,对RUP过程进行了适当的裁减,保留了RUP的特点,即仍然是一个用例驱动、以架构为中心、迭代的开发过程。
对裁减后的RUP,我们取消了原来RUP四个阶段的定义,只给出了一些工作流程和一些原则,并且结合了UML建模机制,合理的选择了UML中的各种建模元素。
1.5本文的组织结构
全文共分为六章。
第一章是绪论,主要介绍了系统的开发背景,以及国内计算机排课的研究现状,说明了系统需要解决的主要问题和本文的组织结构。
第二章是需求分析,主要通过对淄博职业学院排课业务的描述,说明了排课系统的目标和解决的主要问题,并介绍了系统的开发模式,对系统的功能性需求和非功能性需求进行了详细的描述。
第三章系统构架技术,主要介绍了系统构架设计的目标和约束,分别对系统的总体框架、功能构架、技术构架和安全构架等进行详细描述。
第四章是计算机排课系统的详细设计,主要通过排课管理实体关系图和自动排课的序列图来介绍了系统的详细设计,并对数据库的构建进行了描述。
第五章是计算机排课系统的实现过程,简要介绍了排课系统的几个功能模块的实现过程,同时对教学计划和排课算法两个关键问题进行描述,说明了排课系统设计的理论依据。
第六章总结与展望部分,对本文进行了总结,并对下一步的工作进行了展望。
第2章需求分析
2.1系统概述
2.1.1总体业务描述
淄博职业学院管理体系实行系部的二级管理体制,在全院有13个系部和1000多名教师。
学院排课管理系统的应用范围包括教务处、系部和教师三级单位。
教务处和系部作为课表的设计者和管理者,重点在于对课程的安排和统计数据的分析;教师作为教学计划的执行者,是信息的源头。
在排课管理中,教务处以教学计划为依据,安排出一学期各个班级所开的课程,教师根据自己的专业选择自己能上的课程,各系部负责协调安排每门课程的具体上课的教师。
总体来看,淄博职业学院排课业务流程如图2-1所示:
图2-1排课业务流程图
2.1.2系统的目标和解决的问题
根据淄博职业学院信息化建设的总体要求,淄博职业学院计算机自动排课系统的目标是:
运用计算机排课代替传统的手工排课,提高排课效率,使教务管理人员的从繁重的排课工作中解脱出来,提高教务人员的工作效率,加强对学院基本信息的管理,同时实现教学管理规范化的目标。
本系统的主要内容就是使用计算机实现课表的编排、基础数据的处理、课表的查询和报表的输出等多种功能,作为一个完整的排课系统,主要解决以下问题:
1、基础数据的处理
排课过程中涉及到许多基础数据,这些基础数据包括院系、教师、学生、教室、课程等信息,对于这些基础信息要能够根据实际情况灵活进行增加、删除、修改等处理。
2、排课处理
课程的编排不是任意的,它是一个时间、教师、学生、教室四者的组合规划问题,为了达到最好的教学效果应遵循一定的要求。
这些要求主要有:
(1)要尽量为所排课程安排上该类课程效果最好的时间;
(2)课程在一周上多次时要有一定的时间间隔;
(3)公共课等涉及面广、学时多的课程应优先处理;
(4)对同一教师,同一上课对象应尽量选择相对固定的几个教室;
(5)对于教师、学生、课程等提出特殊要求的情况,要根据具体情况予以处理。
另外,对于计算机初排的结果还应可以通过人工交互进行少量的修改等。
3、排课结果的处理
计算机编排完课程后,对这个结果进行各种条件的查询,并可以根据情况输出各种形式的表格,以便于教务人员进行处理。
例如:
可查询某班的课程安排、某位教师的课程安排、以及某个教室的使用情况。
4、充分利用网络优势
充分利用网络优势,实行计算机分布式排课。
计算机排课需要计算机在全校范田内对各种时间是否发生冲突进行检查,因此早期的计算机排课系统大多实行集中式排课,一般由教务处负责完成。
但目前各校均在扩招,从而造成学生多、班级多,排课时所需要输入的基础数据多排课任务都由一个部门来完成是很不现实的。
实行计算机排课的唯一出路就是将排课任务分解,化整为零,实行分布式计算机排课。
现在各高校大多建立了校园网络,这使得实行分布式计算机排课成为可能。
课程、教师、学生班级、教室等基本信息既可临时录入,又可从其它教学管理系统或校园网中获取,以减少数据录入工作量。
2.1.3系统的开发模式
RUP是一个将用户需求转化为软件系统所需要的活动的集合,即软件开发过程。
RUP不是一个简单的过程,而是一个通用的过程框架,可用于各种不同类型的软件系统、各种不同的应用领域、各种不同类型的组织、各种不同的功能级别以及各种不同的项目规模。
RUP可以用二维坐标来描述。
横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期、阶段、迭代和里程碑;纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动、产物、工作者和工作流,如图2-2所示。
图2-2RUP二维开发模型
RUP是一个以用例为驱动、以架构为中心、迭代和增量式开发过程。
RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:
初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。
本系统开发过程总体上采用RUP模式,由于计算机排课系统开发的生命周期较短,因此,我们在使用RUP进行软件开发时,对RUP过程进行了适当的裁减,保留了RUP的特点,即仍然是一个用例驱动、以架构为中心、迭代的开发过程。
对裁减后的RUP,我们取消了原来RUP四个阶段的定义,只给出了一些工作流程和一些原则,并且结合了UML建模机制,合理的选择了UML中的各种建模元素。
裁减后RUP流程是一个不断迭代的开发流程,每一个迭代过程都需要经过下列步骤:
第一步:
找出系统的功能需求和非功能性需求,功能需求使用用例表示,非功能性需求,可以使用规定格式的文档表示;项目开始时,找出一些主要的关键的用例即可,其他次要的用例可在以后的迭代中补充,对这些主要用例的描述应该保持尽量简单,对用例的描述可以使用文档来表示,也可以使用UML中的建模元素来表示,本文在模型中,选择了UML中的活动图来表示。
对这些用例要标明其重要程度,对那些影响系统架构的用例要标以很高的重要程度。
第二步:
为这些用例建立简单的系统初始模型(可多个),可以使用用例图来表示。
从系统整个初始模型可以看出一个用例是否得当;也可以根据初始模型来确定团队的开发进度;并且根据系统原型能够得到系统潜在的一些系统架构;能够这些系统架构中考虑选择一个最恰当的系统架构。
第三步:
找出待开发系统领域的类,第一次可以找主要的类;并定义个各类的主要职责和各类之间的关系,创建UML中的类图来表示;将类分为边界类、控制类和实体类这三种类,并为实体类之间的关系创建一个类图,以便为以后的数据库设计打下基础。
第四步:
编写整个项目全部迭代计划(只此一次),每个迭代周期为1周~2周,迭代周期必应该过长。
选择要进行迭代开发的用例,这些用例的开发周期不能超过迭代周期。
迭代应该注意:
迭代计划内容应该包括迭代目标、人员安排、迭代时间表、存在的风险、可交付的迭代结果;每个迭代期间按照需求,分析,设计,实现和测试来进行管理。
第五步:
将要开发用例所应有的功能和类结合起来,即用类的对象来表示用力所具有的功能;创建UML中的序列图或者协作图来表示;通过讨论验证修改序列图/协作图。
第六步:
如果某个类的对象,具有一些非常重要的状态,则为该类创建状态图,状态图中的事件,动作和行为最后会转化成相应类的操作。
第七步:
在设计的层次上加强上面两个步骤中确定的序列图/协作图和状态图,讨论是否还有别的操作和类所需访问的数据,定义实体类的属性,并开始进行数据库的设计。
第八步:
根据上面的工作,对类图进行细化与更新,在实体类不断精化的基础上,完成数据库的设计。
第九步:
对当前迭代的用例进行编码。
根据所确定的UML模型,将设计阶段所确定的类图和定义的类,转换成实际开发工具中所支持的类,并编写代码完成各个类的函数实现,在编写代码的过程中,可以对设计模型中的缺陷与不足进行相应的修改;创建系统的实现模型,可以使用组件图和配之图来表示。
如果有条件,在编码的时候,进行成对编程,提高代码的质量。
第十步:
对当前的迭代进行测试,看系统是否完成了用例所描述的所有功能。
2.2系统需求问题描述
2.2.1功能性需求
按照RUP的要求,系统的功能性需求描述工具主要是用例(UseCase),即将系统的功能性需求分解到每一个系统用例。
RUP模式的最大优点是按照角色(Actor)识别用例(UseCase)的方法,该方法可以较为直观地建立起系统的架构,通过反复识别,避免需求中的漏项。
为了清晰地描述系统用例的层次结构,可以采用将系统用例分为不同的包,每一个包表示一组相关的系统用例。
为了清晰起见,本系统引入了包图来将不同的功能用例进行分类,每个包图作一个子系统,如图2-3所示。
从功能上看,淄博职业学院排课系统可以分为五个子系统:
用户管理、数据录入、自动排课、查询课表、报表输出。
图2-3系统功能包图
在每个包中,通过用例图来描述系统的参与者(Actor)和系统的用例(UseCase),每一个用例通过用例活动图进行详细的描述。
在项目开始阶段,需求不是非常全面,但是,其需求的中心内容仍然是上面几点,在通过对需求的分析,我们确立了如下几个非常重要的用例:
用户管理、基础数据录入、自动排课、课表调整、课表输出等。
根据这些主要用例,在项目的初始阶段,为排课管理系统确定了初始用例模型,描述了排课管理系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 系统 设计 实现