版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.摘要随着科学技术和社会信息技术的不断提高,计算机科学的日渐成熟,其强大的功能已为人们深刻认识,它在人类社会的各个领域发挥着越来越重要的作用,给人们的生活带来了极大的便利,成为推动社会发展的首要技术动力。排课是学校教学管理中十分重要、又相当复杂的工作之一。解决好教学工作中的排课问题对整个教学计划的进行,有着十分重要的意义。首先对排课的已有算法作了相关的调查研究,决定采用遗传算法。通过设计实现基于遗传算法的自动排课系统,研究了遗传算法在排课系统中的应用。关键词:遗传算法、自动排课、Java。. v.AbstractAlong with science technical and communit
2、y information technical increases continuously, calculator science is gradually mature, its mighty function has behaved deep cognition, and it has entered the human social each realm erupts to flick the more and more important function, bringing our life biggest of convenience. Curriculum arrangemen
3、t is an important and complicated working in school,so solving the problem is of great importance for teaching programming.Investigated and studied the algorithm existed, determine that adoptgenetic algorithm. ThroughDesign Implementation theAuto CourseArrangementManagement System Base onGenetic Alg
4、orithm, researched the application of genetic algorithmin theCourseArrangementManagement System.Keywords: Genetic Algorithm Auto Course Arrangement ManagementJava. v.第一章 绪论1.1排课系统研究背景排课是学校教学管理中十分重要、又相当复杂的管理工作之一,其实质就是为学校所设置的课程安排时间和地点,从而使整个教学能够有计划有秩序的进行。迄今为止,对课程表的研究工作已经进行了长达四十多年之久,取得了丰硕的成果。但是,仍然存在许多不足
5、之处,例如规模大、约束(条件)复杂以及规律不断变化等,因此课程表问题至今仍未完全解决。课程表的编排是一个涉及多种因素的组合规划问题,它要保证在课程安排中教师、学生、教室不能产生冲突(所谓冲突,就是将需上不同课程的两个或多个班安排在了同一时间、同一教室,或为同一教师在同一时间段安排了多门课程等情况),并且要满足教师的要求和资源限制等约束条件。目前,国内的大部分学校仍然采用手工排课的方法。手工排课工作的主要手段是“摆牌”,就是在一个画有空课表的版面上将有课名的小牌摆在适当的位置上,边摆边观察,边调整,凭借经验将各门课摆在合理的位置上,最后形成一个有效的课程表。这种办法没有一定的规律,没有理论指导,
6、更没有数据模型,具有很大的盲目性。所以,要为上千名学生和上百名教师安排出合理的课程表,往往需要花费教务处人员很多的时间,工作量大,排出的课程表不宜调整。随着中国教育体制改革的不断深入,学生人数的不断上升,课程设置不断向深度和广度发展,手工排课的缺点就越来越突出。由于计算机具有运算速度快、处理能力强等特点,很自然地就进入到这一应用领域中。用计算机进行排课能够快速地得到满足约束条件的可行结果,具有排课时间短、省人力和质量高的优点,不但能使教务人员从繁杂的排课任务中解脱出来,而且对于推动教学的发展也起到非常重要的作用。每个学期开学时,教务管理工作中的课程表安排问题,都是教务处面临的一项艰巨任务。排课
7、问题是一个非常棘手却又亟待解决的问题,通常都是使用传统的人工手动排课方法。手工排课不仅劳动强度大,而且排课效率低,很难排出一个让人满意的课程表。时间,教师,教室,班级,课程等限制问题更是难以解决,使用计算机进行自动排课已经成为近年来的热点话题。教学管理的信息化需要计算机辅助排课,而排课理论的研究和软件技术的成熟己为我们提供了计算机自动排课的重要手段,研究一种准确、高效、实用、自动化程度高的排课系统己经成为可能。1.2排课系统国内外现状排课问题是NP完全问题,许多学者分别在理论、启发式搜索技术应用求解、专家系统应用求解和遗传算法应用求解上作了很多研究。国外从20世纪50年代末就对排课问题展开了研
8、究。1963年Gotlieb在他的文章中提出了排课问题的数学模型2,它标志着排课问题的研究正式跨越了科学的殿堂。之后,人们对排课问题的算法做了许多探索,但由于排课问题是NP完全问题,并且易受实际问题边界的影响,大多数求解结果都不够理想。Ferland3等人和吴金荣4把排课问题化成整数规划来解决,但计算量很大,其仅仅适用于规模很小的课表编排,对于大规模复杂的排课情况,至今没有一个切实可行的算法;何永太5和胡顺仁6等人试图用图论中的染色问题来求解排课问题,可惜图的染色问题本身也是NP完全问题。由于问题的复杂,许多文章利用启发式函数来解决排课问题,大多数启发方法都是模拟手工排课的过程来实现的。由于实
9、际的排课问题存在各种各样的限制条件与特殊要求,对这些因素处理的好坏就显得尤为重要。进入20世纪90年代,国外对排课问题的研究仍然非常活跃。如印度Vastapur大学管理学院的Arabinda Tripathy、加拿大Montreal大学的Jean Aubin和JacqueSA Ferland以及Charles Fleutent等。Arabinda Tripathy的工作是针对以“人”为单位进行课表编排的。他运用拉格朗日松弛法和分支定界技术求解,这种方法的缺点是为了减少变量的个数,人为造成科目间的冲突。A.Tripathy还研究了研究生课表编排问题,他采用多重课组的方法来处理冲突(即根据学生选课
10、的矛盾情况,将人数多的课程在一星期内开多次)。JacQuesA.Ferland等人则把排课问题分成两个子问题:时间表问题和分组问题。在时间表问题中,根据学生注册情况、教师和教室的可利用情况形成一个主时间表。对于选课人数较多的大课,一个星期要分成几个时间段来上,分组问题就是将学生分给各时间段。两个问题相关联,通过惩罚因子来构造启发函数。他们研制的SAPHIR课程调度决策支持系统分为数据处理、自动优化、交互优化等几个模块。该系统解决矛盾的主要方法也是采用多重课组。在国内,对于排课系统的研发,林漳希和林尧瑞1984年发表了该课题上的实验性研究成果。成形的系统有大连理工大学1998年推出的教学调度系统
11、版本3.00和由清华大学计算机与信息管理中心开发的综合教务管理系统TISER。这些应用界面很友好的排课软件己经可以帮助排课人员大大提高工作效率。这些系统大多数都是模拟手工排课,以“班”为单位,只能在排课过程中辅助工作人员进行排课,并没有一套完善有效的自动排课算法。当人工输入的条件达到一定的限制程度时,软件运行就有可能出现死锁现象,使得系统的实际应用非常困难19。后期人工调整的工作量并不比重新排课的工作量小很多。一旦出现了这种现象,就要把所有的数据作废或者打乱重排,之前做的工作都付诸东流。高校的课程、教室、教师等因素都十分复杂,排课所需数据量也十分庞大,所以造成的时间、人力损失也非常巨大。课程表
12、问题又称时间表问题,是一个多因素的优化决策问题,也是组合规划中的典型问题,是NP完全的1。对于排课问题的解决,研究人员己经使用了各种不同的算法,但由于该问题的复杂性,所求解也只能是较为合理、较为满意的解。随着人工智能的发展,特别是在计算智能领域的拓展,借鉴于生物界进化思想和遗传算法,由于其超强的并行搜索能力,以及在解决优化问题中表现出来的高度鲁棒性,它已经被广泛应用于各个领域。目前,很多研究人员已使用遗传算法来求解排课问题,如文献20使用遗传算法优化教室的合理利用,文献21的用自适应的遗传算法求解大学课表安排问题,文献22的基于遗传算法排课系统的设计与实现等等。这些应用说明,使用遗传算法来解决
13、排课问题,其结果还是令人较为满意的。教学排课问题是学校每个排课人员最头痛的问题。短时间内没有一个方法来达到学校教师满意的结果。其最大的困难是硬件资源的限制。排课人员在硬件资源兼顾的条件下难于短时间内排出教师满意的课表。“穷举法”可将所有的方式列出然后找出最佳解,但成本太高,时间太长。如一个星期有n个时段可排课,有m位教师需要参与排课平均每位教师一个星期要上i堂课。其排课的组合数有nm*i次。可见穷举法的复杂度有多高。遗传算法是一种通过模拟自然进化过程搜索最优解的方法。本文试图以遗传算法来实现排课问题的最佳解。本课题研究的目的就是实现基于遗传算法的排课系统,并在VB下具体实现,满足日常需求。1.
14、3排课常用算法比较1.3.1贪心算法贪心法(greedy method)是一种改进了的分级处理方法,逐步构造最优解。它从问题的某一个初始解出发,在一定的标准下做出一系列的贪心选择(选择一旦做出,就不可再更改),即当前状态下看上去最优的选择逐步逼近给定的目标以尽可能快的速度求得更好的解当达到算法中的某一步不能再继续前进时则停止。贪心算法的核心是在所选择的策略中,选一个权值最优的策略作为当前策略。因此贪心算法的好坏主要决定于权值的确定。在排课系统中,贪心算法是从排课问题的某一初始状态出发依据给出的贪心策略朝最终排好全部课程这个目标前进一步,判断是否可以求出可行解的一个解元素如果可以则继续依据贪心策
15、略向给定目标前进求出下一个解元素。直到前进不能再继续时停止。最后由所有得到的解元素组成问题的一个可行解。此时算法结束。贪心算法的缺点在于解的效果比较差而最大优势在于极低的时间复杂度。能做到某种意义上的局部最优。它具有不可后撤性,可以有后效性一般情况下不满足最优化原理。并且不适用于解决可行性问题仅适用于较容易得到可行解的最优性问题。为了尽量减小贪心算法带来的副作用。使得最后得到的解更接近最优解。可以在算法尽可能多的地方使用有效的最优化算法(如动态规划)。贪心算法还可以为搜索算法提供较优的初始界值。1.3.2回溯算法回溯算法也叫试探法它是一种系统地搜索问题的解的方法,可以被认为是一个有过剪枝的DF
16、S(深度优先搜索)过程。它按优先条件向前搜索,以达到目标,但当搜索到某一步时发现原先的选择并不优或达不到目标。就退回一步重新选择。而满足回溯条件的某个状态点称之为回溯点。具体到计算机智能排课系统中,选优条件即为排课数学模型中的约束条件群(需求集中的元素特征与资源集中的元素特征相互作用形成的数学关系)若不满足约束条件群,该选择即为不优或达不到目标当遍历该步骤的所有可能仍未满足约束条件群则该状态满足了回溯条件,该状态点即为回溯点。回溯算法解决排课问题时首先要描述解的形式,定义一个解空间它包含问题的所有解:其次构造状态空间树,这棵树的每条完整路径都代表了一种解的可能:再次是构造约束函数,通过描述合法
17、解的一般特征用于去除不合法的解,从而避免继续搜索出这个不合法解的剩余部分:然后通过深度优先搜索完成回溯。设置初始化的方案(给变量赋初值,读入已知数据等);变换方式去试探。若全部试完则转;判断此法是否成功(通过约束函数),不成功则转;试探成功则前进一步再试探;正确方案还未找到则转;已找到一种方案则记录并打印;退回一步(回溯),若未退到根则转;已退到根节点则排课结束或打印无排课结果。回溯法适用于解的组合数相当大但仍然有限的那一类问题。它的一个有重要的特性是在搜索执行的同时产生解空问。在搜索期间的任何时刻仅保留从开始节点到当前节点的路径。因此回溯算法的空间需求为一个常数,即从开始节点起最长路径的长度
18、。这个特性非常重要因为解空间的大小通常是最长路径长度的指数或阶乘。所以如果要存储全部解空间的话。再多的空间也不够用。其缺点是时间复杂度较大因此在采用时还需要谨慎。最好是和其它的算法结合使用。1.3.3遗传算法遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它是有美国Michigan大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著Adaptation in Natural and Artificial Systems,GA这个名称才逐渐为人所知,J.Hilland教授所提出的GA通常为简单遗传算法(SGA)。
19、遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生
20、出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小挑选(selection)个体,并借助于自然遗传学的遗传算子(geneticoperators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。遗传算法是一类可用于复杂系统优化的具有鲁棒性的搜索算法,与传统的优化算法相比,主要有以下特点:1、遗传算法以决策变量的编码作为运算对象。传统的优化算法往往直接决策变量的实际植本身,而遗传算法处理决策变
21、量的某种编码形式,使得我们可以借鉴生物学中的染色体和基因的概念,可以模仿自然界生物的遗传和进化机理,也使得我们能够方便的应用遗传操作算子。2、遗传算法直接以适应度作为搜索信息,无需导数等其它辅助信息。3、 遗传算法使用多个点的搜索信息,具有隐含并行性。4、遗传算法使用概率搜索技术,而非确定性规则。根据其算法特点,遗传算法非常适合于应用到排课处理中。具体应用方式将在后面设计部分详细说明。1.4遗传算法国内外现状进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能
22、力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑均给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。随着应用领域的扩展,遗传算法的研究出现了几个引人注目的新动向:一是基于遗传算法的机器学习,这一新的研究课题把遗传算法从历来离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新的机器学习算法。这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。二是遗传算法正日益和神经网络、模糊推理以及混沌理论等其它智能计算方法相互渗透和结合,这对开拓21世纪中新
23、的智能计算技术将具有重要的意义。三是并行处理的遗传算法的研究十分活跃。这一研究不仅对遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。四是遗传算法和另一个称为人工生命的崭新研究领域正不断渗透。所谓人工生命即是用计算机模拟自然界丰富多彩的生命现象,其中生物的自适应、进化和免疫等现象是人工生命的重要研究对象,而遗传算法在这方面将会发挥一定的作用,五是遗传算法和进化规划(Evolution Programming,EP)以及进化策略(Evolution Strategy,ES)等进化计算理论日益结合。EP和ES几乎是和遗传算法同时独立发展起来的,同遗传算法一样,它们也是模拟自
24、然界生物进化机制的智能计算方法,即同遗传算法具有相同之处,也有各自的特点。目前,这三者之间的比较研究和彼此结合的探讨正形成热点。1991年D.Whitey在他的论文中提出了基于领域交叉的交叉算子(Adjacency based crossover),这个算子是特别针对用序号表示基因的个体的交叉,并将其应用到了TSP问题中,通过实验对其进行了验证。D.H.Ackley等提出了随即迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH)采用了一种复杂的概率选举机制,此机制中由m个“投票者”来共同决定新个体的值(m表示群体的大小)。实验结果表明,
25、SIGH与单点交叉、均匀交叉的神经遗传算法相比,所测试的六个函数中有四个表现出更好的性能,而且总体来讲,SIGH比现存的许多算法在求解速度方面更有竞争力。H.Bersini和G.Seront将遗传算法与单一方法(simplex method)结合起来,形成了一种叫单一操作的多亲交叉算子(simplex crossover),该算子在根据两个母体以及一个额外的个体产生新个体,事实上他的交叉结果与对三个个体用选举交叉产生的结果一致。同时,文献还将三者交叉算子与点交叉、均匀交叉做了比较,结果表明,三者交叉算子比其余两个有更好的性能。国内也有不少的专家和学者对遗传算法的交叉算子进行改进。2002年,戴
26、晓明等应用多种群遗传并行进化的思想,对不同种群基于不同的遗传策略,如变异概率,不同的变异算子等来搜索变量空间,并利用种群间迁移算子来进行遗传信息交流,以解决经典遗传算法的收敛到局部最优值问题。2004年,赵宏立等针对简单遗传算法在较大规模组合优化问题上搜索效率不高的现象,提出了一种用基因块编码的并行遗传算法(Building-block Coded Parallel GA,BCPGA)。该方法以粗粒度并行遗传算法为基本框架,在染色体群体中识别出可能的基因块,然后用基因块作为新的基因单位对染色体重新编码,产生长度较短的染色体,在用重新编码的染色体群体作为下一轮以相同方式演化的初始群体。2005年
27、,江雷等针对并行遗传算法求解TSP问题,探讨了使用弹性策略来维持群体的多样性,使得算法跨过局部收敛的障碍,向全局最优解方向进化。1.5研究目标及内容1.5.1研究目标对遗传算法进行研究,进而将其应用到排课系统中,利用计算机来模拟手工排课工作,可以抽象问题中的各个要素,数学表达各种约束条件,并根据课表的组织形式和普遍存在的规律,缩减了问题空间的搜索范围,有效组织了排课知识,使其在一定程度上呈现智能化。1.5.2研究内容学校排课问题本质上是时间表问题的一类典型应用实例,是为了解决课程安排对时间和空间资源的有效利用并避免相互冲突。在排课过程中需要考虑课程教学效果、满足教师特殊要求等多项优化指标,将各
28、门课程安排到相应的时间和教室。1)排课问题具体研究的内容如下:(1)遗传算法的理论(2)排课问题的建模(3)遗传算法在自动排课中的应用方法(4)排课算法的实现2)排课问题具体研究的重点和难点如下:(1)深入理解遗传算法理论。(2)排课问题的建模,包括排课问题的要素以及排课过程的约束条件等。(3)遗传算法在排课问题中的应用方法,包括基因编码、初始种群的产生、适应度函数、控制参数的设定等。(4)排课问题本身的求解规模过于庞大,各要素之间的关联层出不穷,以及人们对多个课表优劣评定的准则存在差异,在求解排课问题的过程中,会面对难以穷尽的组合和多个模糊目标的优化问题,实际解决时会受到一些制约。3)排课问
29、题具体研究方法如下:采用循序渐进的方法进行研究,首先必须要学习遗传算法,在学习的基础上进行深入研究,对现行的遗传算法进行一些改进,然后对排课问题进行建模,分析排课问题的要素和约束条件。最后将遗传算法应用到排课系统中,提出一种具体的应用方法并实现排课算法。研究过程中要借助于大量的文献资料,必须要先学习理论,在理论的基础上再进行实践。4)排课问题具体研究步骤如下:(1)大量阅读关于遗传算法的相关文献,理解算法原理。(2)研究排课问题,对排课问题进行建模。(3)对遗传算法进行一些改进。(4)提出遗传算法在自动排课中的应用方法。(5)进行系统的概要设计和详细设计。(6)编码实现排课算法。(7)对系统进
30、行测试和运行。(8)对系统进行回归测试和功能完善。5)排课问题研究用到的工具与框架如下:(1)MyEclipse6.0;(2)开发的环境:JDK1.5;(3)UML建模工具:PowerDesigner12.5;(4)MS SQL Server 2000;1.5.3研究意义排课系统是教学管理系统中的一项重要内容,排课结果的优劣直接影响到学校的正常教学秩序,甚至影响教学质量。排课管理的主要任务是把全校各年级所开设的课程进行汇总,然后根据教学计划和教学资源制订全校各班级的课程表,优化配置各种教学资源,使教学工作科学、高效顺利的进行。研究的意义就在于设计一个好的智能排课系统,从而减轻了教学管理工作者的
31、劳动强度,提高了工作效率,规范了教学管理工作流程。. v.第二章 相关技术基础本章介绍开发中用到的相关技术。2.1MyEclipse Enterprise Workbench 介绍MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, JavaScript, SQL,
32、 Hibernate。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞
33、大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。2.2.1 Eclipse开发
34、环境Eclipse开发环境被称为Workbench,它主要由三个部分组成:透视图(Perspective)、编辑窗口(Editor)和视图(View)15。所有文件的显示和编辑都包含在编辑窗口里。默认情况下打开的多个文件是以标签(Tag)方式在同一个窗口中排列的。视图是配合编辑窗口并提供了多种相关信息和浏览方式。视图是任何IDE开发环境的核心,用好视图也就是用好工DE开发环境。透视图可以自定义每个视图中包含的视图种类,也可自定义一个新透视图。一个透视图包括一个或多个编辑窗口和视图。2.2.2Eclipse的主要特点Eclipse的主要特点有以下几方面:(l)开放的可扩展的IDEEclipse平
35、台是一个开放的可扩展的功E。Eclipse平台是建造模块和构造并运行集成软件开发工具的基础。Eclipse平台允许工具建造者独立开发与其它工具无缝集成的工具,用户甚至无须去分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。(2)成功的底层图形界面从Java诞生至今,己经在太多的领域取得成功,然而它却很少在图形接口程序上崭露头角。究其原因,Java语言缺省的图形接口开发包AWT和SWING实在是难辞其咎,无论速度和外观,它们都难以让人接受。如今,E。 1ipse组织编写的SWT开发包,为Java程序员提供了AWT和SWING之外的一个更好的选择。SWT本身仅仅是Eclipse组织为了开发E
36、clipse集成开发环境所编写的一组底层图形接口API。或许是无心插柳,又或是有意为之。至今为止,SWT无论是在性能和外观上,都超越了Sun公司提供的AWT和SWING。目前, EclipseIDE版本已经开发到了3.2版本,SWT已经十分稳定。这里稳定包含两层意思:指性能上的稳定,其中的关键是源于SWT的设计理念。SWT最大化了操作系统的图形构API,就是说,只要操作系统提供了相应图形的构件,SWT才自己去做一个模拟的实现。可以看出S盯性能上的稳定大多时候取决于相应操作系统图形构件的稳定性。指 SWTAPI包中的类,方法的名称和结构已经少有改变,程序员不用担心由于Eclipse组织开发进度过
37、快(EclipseIDE每天都会发布一个Nightly版本),而导致自己的程序代码变化过大。从一个版本的SWT更新至另一个版本,通常只是需要简单将SWT包换掉就可以了。(3)强大的插件加载功能可以通过不断地加载插件来实现同其它产品的合作。整个E。 1ipse体系结构就像一个大拼图,可以不断地向上加插件,同时,现有插件上还可以再加插件,进而实现功能的扩展。目前,Eclipse已经开始提供C语言开发的功能插件。更难能可贵的是,Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。也就是说,只要有人需要,就会有建立在Eclipse。之上的CO
38、BOL、Perl、Python等语言的开发插件出现。同时可以通过开发新的插件扩展现有插件的功能,例如在现有的Java开发环境中加入Tomcat服务器插件。Ec11spe插件可以无限扩展,而且有着统一的外观、操作和系统资源管理,这也是Ec11pse的潜力所在。(4)可以通过导入一些CVS相关的插件来实现版本管理控制的便宜性Eclipse平台提供了对于直接从工作区进行团队开发操作的支持。这种支持允许开发人员并发地与几个独立的资源库以及不同版本的代码或项目进行交互。工作区中的资源允许团队支持组件处理版本和配置管理问题。当然,单个工作区也可以同时访问不同类型的资源库。Eclipse平台并没有提供它自己
39、的代码管理解决方案,它总是依靠外部系统。E1ipse平台只对一个源代码管理系统提供内置支持一一并发版本控制系统CVS。(5)充分的帮助文档值得提出的还有,在下载了Eclipse的多国语言翻译包之后,所有的菜单和联机帮助文档都己经翻译成了中文,使用起来比较方便。2.2 SQL Server 2005Microsoft SQL Server 2005是软件开发中使用非常广泛的数据库管理系统,它是由美利坚合众国的微软公司开发并推出的数据库开发、管理系统。它是由一系列的图形工具整合在一起构成的,这些图形工具主要有服务器管理、企业管理器和查询分析器。服务器管理的主要功能是启动和关闭数据库服务。企业管理器
40、的主要功能是创建、修改和备份数据库。查询分析器的主要功能是交互执行标准T-SQL语句、SQL函数和存储过程,而且具有图形化的查询分析功能。SQL Server 2005作为一款数据库开发与分析的软件,能够方便快捷的为可伸缩性的电子商务、企业ERP和数据仓库等创建出优秀的解决方案。在SQL SERVER的2005版出现时,Internet网络已兴起,所以它为网络应用程序的开发和设计做了很多工作,能很好的适应网路应用程序的数据管理和数据分析。在开发电子商务、数据仓库应用时,如果采用由SQL SERVER 2005作为核心组件之一的Windows DNA(Distributed Internet A
41、rchitecture)架构,能够使得整个应用的开发周期大大缩短。另外,SQL SERVER 2005全方位支持HTTP和XML(Extensible Markup Language)扩展标示语言。SQL Server 2005具有着性能高和企业级可伸缩性的特点。SQL Server 2005安装部署与Windows NT操作系统之上,与操作系统一起提供了对多处理器、大内存和64位硬件平台的支持。而且SQL Server 2005还支持WindowsNT的多路群集,为较大规模的应用提供了良好的支持。在可管理性和易用性方面,SQL Server的上一个版本7.0在行业内就处于领先地位,而升级版的
42、2005不仅在可管理性和易用性方面做了大量改进,而且在性能、扩展性和安全性方面也做了许多改进。SQL Server 2005能为具有商务活动的网络站点提供优异的性能,具有商务活动的网络站点对性能、可管理性、易用性都有较高的要求,而SQL Server 2005能够很好的做到这些。SQL Server 2005的特点归纳后如下:1SQL Server 2005的数据分析性能是非常高效的SQL Server 2005具有高效的数据操作机制。SQL Server 2005在处理查询时,能够智能优化SQL语句,对Where条件中的多个条件进行分析,找出最佳的过滤及交叉顺序,并且可以将优化好的SQL语句
43、缓存起来,下次再有同样的SQL查询时将直接使用缓存的优化过的SQL语句。2SQL Server 2005的业务扩展性是灵活的数据仓库技术直接回答的是业务问题,其实现方式也是以解决一个个业务需求的形式组织的。随着新业务的出 业务需求建设新的模型,这种堆叠形式的建设方式为整个系统随业务的发展而平稳发展提供了良好的条件。3 SQL Server 2005的安全性是与操作系统集成在一起的Microsoft SQL Server 2005的安全性是与操作系统集成在一起的,从而可以利用windows的强大功能,为数据库用户实现更高的安全性。操作系统提供了OLAP管理器,通过OLAP管理器强大而专业的管理功
44、能,实现对用户权限的更为细致和专业的划分和控制。Microsoft SQL Server 2005具有细致而全面的安全设置选项。数据库用户具有不同的级别划分,数据库管理员可以根据实际情况,对数据库用户进行细致的级别划分,使得数据系统的安全性更有保障。由高到低的级别依次为服务器级、数据库级、多维数据集挖掘模型级、维度成员级和单元级。4SQL Server 2005的易用性SQL Server 2005的企业管理器是图形化工具,界面显示与操作方式都与Windows操作系统的类似,在当前Windows普及的背景下,开发人员可以很快上手并熟悉,基本不用化太多时间专门的学习SQL Server 2005
45、软件的使用。SQL Server 2005可以对工作负载进行动态优化,根据最优的参数设置进行智能调节,从而尽可能减轻数据维护管理人员的工作量。SQL Server 2005还为开发人员提供了各种常用操作的向导程序及功能强大的图形化编辑器。向导程序可以让开发人员能够在图形化界面下,按向导的操作提示逐步完成相关操作,极大的方便了开发人员的使用。图形化编辑器更是使得开发人员可以通过几次选择操作,就能完成本来需要手敲的脚本,大大提高了开发人员的开发效率,而且降低了出错率。SQL Server 2005还提供了将数据导入导出向导,可以方便的将数据库中导出到Excel、txt等格式文件中,也可以这些格式文
46、件中导入数据。. v.第三章 系统分析与初步设计系统分析与初步设计是软件开发中的一个重要阶段,是建立系统初步模型的。3.1系统分析的工作步骤 问题提出可行性分析下达初步设计任务书组织队伍,明确分工 制定初步设计大纲下达各子系统设计任务书需求调查与分析确定系统功能目标设计系统总体结构功能模型设计 信息分类编码设计 初步建立信息模型 界面划分及内外接口要求 确定系统配置 实施进度计划 组织机构设计 经费预算 经济效益分析编写分析阶段文档资料 修改 评审图 3-1 系统分析的工作步骤首先,是问题提出,即需求的提出,要解决做什么的问题。我们遇到了什么问题,我们的需求是什么。为完成我们的需求,我们需要做
47、的系统都需要什么功能。系统分析的核心是目标分析与需求分析。目标分析是进行组织系统的目标分析和计算机系统目标分析;需求分析是对功能需求和信息需求进行分析。这个阶段的主要目标是针对要开发的开发项目,明确系统开发的目标和用户的信息需求,提出系统的逻辑方案。这个阶段的成果是系统方案说明书或称总体方案, 系统方案说明书是整个系统分析阶段的工作总结,是系统分析人员和用户交流的主要手段,是系统设计阶段工作的重要依据。3.2问题提出即需求提出排课是学校教学管理中十分重要、又相当复杂的管理工作之一,其实质就是为学校所设置的课程安排时间和地点,从而使整个教学能够有计划有秩序的进行。迄今为止,对课程表的研究工作已经
48、进行了长达四十多年之久,取得了丰硕的成果。但是,仍然存在许多不足之处,例如规模大、约束(条件)复杂以及规律不断变化等,因此课程表问题至今仍未完全解决。课程表的编排是一个涉及多种因素的组合规划问题,它要保证在课程安排中教师、学生、教室不能产生冲突(所谓冲突,就是将需上不同课程的两个或多个班安排在了同一时间、同一教室,或为同一教师在同一时间段安排了多门课程等情况),并且要满足教师的要求和资源限制等约束条件。考虑到排课的特殊性和复杂性,我们决定采用基于遗传算法进行排课。所以简单说,实现基于遗传算法的排课系统,就是用户提出的需求。因为是毕业设计,用户假定为某高校。3.3系统的可行性分析l 经济可行性经
49、济可行性研究的目的是使新系统能达到以最小的开发成本取得最佳的经济效益。需要作投资估算,对开发中所需人员、硬软件支持以及其它费用进行估算,并对系统投入使用后带来的经济效益进行估计。由于该学校硬件基础设施较好,具备开发的基本条件,资金到位,而且开发是从大处着眼,从小处实施,开发费用相对比较透明,易与控制,系统开发完成后将给学校带来的经济效益是明显的。因此在经济上是可行的。l 技术可行性技术可行性研究就是弄清现有技术条件能否顺利完成开发工作,硬软件配置能否满足开发的需要,开发的风险等。l 社会可行性该系统使用人员学历相对较高、经验丰富、素质较高,因此在管理上,人员素质上都是可行的。可行性分析的最后成
50、果是写出可行性分析报告。可行性分析报告包括下列内容:1) 学校的战略目标,新系统的总体目标及主要功能;2) 拟定新系统的总体方案;3) 从技术、经济、社会等方面论证技术方案的可行性;4) 制定投资规划和开发计划在系统初步调查的基础上,明确了存在的主要问题和建立新系统的初步设想,进一步对系统目标、范围等因素进行分析研究。3.4系统功能目标基于遗传算法的排课系统,在充分调查高校教学排课管理后,经过分析,得出以下功能目标:l 基础信息管理1) 特殊教室管理:搜索、查看、添加、修改和删除特殊教室信息。2) 教师信息管理:搜索、查看、添加、修改和删除教师信息。3) 课程信息管理:搜索、查看、添加、修改和
51、删除课程信息。4) 班级信息管理:搜索、查看、添加、修改和删除班级信息。l 排课设置管理1) 学期课程计划管理:实现对专业课程计划的设置和维护。2) 班级课程及任课教师管理:实现对班级课程的设置和维护,及班级课程的任课教师的设置和维护l 排课管理1) 自动排课:按照选定的学期时间,根据基础信息和排课设置的数据进行基于遗传算法的自动排课。2) 手工排课及课表调整:能够手工排课,可对自动排课的结果进行手动修改,保存时系统检测报告冲突。3) 教师及班级课表打印:按老师打印、按班级打印课表。3.5系统总体结构设计通过中学排课特点的研究,针对需求,将整个排课系统分为基础信息管理、排课设置管理和排课管理三
52、部分。如图3-2所示。基于遗传算法的排课系统基础信息管理排课设置管理排课管理特殊教室管理课程信息管理学期课程计划管理教师信息管理自动排课班级信息管理班级课程及任课教师设置手工排课及课表调整班级课表打印教师课表打印图3-2 系统结构图. v.第四章 数据库设计数据库设计是应用程序开发的重要部分。本章将详细介绍本系统的数据库设计。4.1数据库设计原则进行数据库设计时,需要保证数据独立性和数据完整性,还需要遵守3NF范式标准,这些都是基本要求。根据露天煤矿设备管理系统开发的实际情况,还有以下几点需要注意:(l) 数据库对象命名的规范化。在给数据库对象起名时,为了易于识别和记忆,应该尽可能的采用有意义
53、的单词和缩写字符及下划线构成,这样做可以使代码可读性更好有利于维护。名字的长度一般不要大于30字符,起名的风格要尽可能的使用统一的风格。(2)适当的使用数据冗余。并不是严格遵守3NF的数据库设计就是好的,适当的使用数据冗余,可以提升数据库的运行效率。数据冗余过多的数据库设计,很容易产生“脏数据”,但冗余对查询的效率是有提升效果的,冗余减少了不同表之间的联合操作。所以在有些情况下,可以适当的使用数据冗余,虽然这使得数据库满足的范式有所降低,但在能保证不出现“脏数据”的情况下,这样做可以提高效率。(3)在数据库的设计和程序开发过程中,尽量采用对数据库性能有利的方式。比如存储过程的合理使用就可以提升
54、数据库的运行速度。存储过程可以将一系列的数据库操作组合在一起一次性完成,减少了程序与数据库之间交互的次数,而且也减少了对数据库连接资源的占用。又比如索引的使用也可以提升数据库的访问效率。当然索引也不是越多越好,索引的使用要根据实际,创建适合需求的索引,从而达到提升系统的运行效率的目的。 (4)不采用或少采用表间关联。强制性的表间关联能够保证数据的完整性和一致性。如果严格按照规范来进行数据库设计,表间关联通常都会比较多。在对有关联关系的表进行操作时,数据回去检查关联约束,这会占用系统的资源。因此在本系统的数据库中一般都不添加主外键约束,而通过系统的业务规则处理来实现约束。设计一个良好的数据库,对
55、程序开发及实施后的运行和维护都是非常重要的。所以设计数据库一定要下足功夫,不能马虎行事。4.2数据库E-R图采用ER图(实体关系图)的方法进行数据结构分析. ER图设计方法是一种通过ER图来描述现实世界信息结构的DB设计方法, ER图由实体、属性、联系三部分组成。(实体名)(属性名)(联系名)实体联系属性图4-1 ER图基本图素本系统主要ER图如图4-2,图中实体的属性只画出重要的部分。课程班级教室类型学期课程计划m1班级课程及任课教师nmn课程名学期(时间)对应关系教师11学期(年级)每周课时每周课时班级人数课程表关系特殊教室教室类型容量关系10-1图4-2 主要ER图4.3数据库物理结构设计数据库设计原则:a.尽可能减少数据冗余和重复在满足需要的前提下,应尽量按照关系数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版家畜养殖保险产品定制及销售合同3篇
- 2025年度智能门禁系统与消防报警系统联动合同4篇
- 二零二五版跨境电商运营服务战略合作协议3篇
- 2025年度新型门窗及栏杆研发与生产合作协议4篇
- 2025年高端个人财富管理代客理财协议3篇
- 2025年度个人经营性贷款担保保证合同3篇
- 2025版绿色建筑地坪材料供应合同3篇
- 2025年度共享经济门面房租赁与平台建设合同3篇
- 个人汽车购买资助合同2024年模板版B版
- XX市重点蓄水池施工合作合同版
- 2025水利云播五大员考试题库(含答案)
- 中药饮片验收培训
- DB34T 1831-2013 油菜收获与秸秆粉碎机械化联合作业技术规范
- 创伤处理理论知识考核试题及答案
- 税前工资反算表模板
- 2019级水电站动力设备专业三年制人才培养方案
- 肝素诱导的血小板减少症培训课件
- 抖音认证承诺函
- 高等数学(第二版)
- 四合一体系基础知识培训课件
- ICD-9-CM-3手术与操作国家临床版亚目表
评论
0/150
提交评论