下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于组件的程序复用的设计与实现
教育行政部门是大学教育的重要组成部分,是学校管理的核心和基础。随着计算机网络与信息技术的飞速发展和高等教育体制改革的不断深入,人们对高校教学管理工作提出了更高、更新的要求。近年来,学校的招生规模不断扩大,使得基于人工方式的学分制教学管理改革面临着巨大的压力。学分制的核心是学生选课制,选课制打通了各层次各科类的学习,使得教学信息量成几十倍的增加,大大增加了教学管理人员的工作量和劳动强度。因此,选课方式、流程与数据处理手段的优劣将直接影响到整个学分制教学管理改革的成败。随着Internet的发展,国内高校都普遍搭建了校园网,并在此基础上不同程度地实现了管理信息的数字化和网络化。这些为我们构建高速、有效的具备网上选课、流程监控、数据处理、成绩录入、信息查询与报表打印功能的选课管理系统提供了必要的技术准备和环境支持。1.工具软件的开发由重复编码导致的低效率开发现象是现代管理软件开发所面临的一大难题,因此,以实现代码复用为目标的面向组件的软件开发方法正逐渐被广大开发人员所接受。软件组件是被封装成独立的二进制单元并用于构造应用系统的可复用的软件模块,它具有特定的功能和自主能力。组件可以单独地开发和测试,各个组件之间通过接口来进行交互,实现信息的传递和互操作。传统的组件平台主要有:Microsoft的COM/DCOM/COM+、OMG的CORBA以及Sun的EJB等3种。.NET框架是一种新的计算平台,作为微软的下一代组件技术,.NET框架从多种角度简化了开发过程,并提供交互性的编程语言。从形式上看.NET组件是一个用任何.NET语言以插件形式开发的可互换的软件部件,它可以与其他应用程序实现互操作。在.NET平台的组件层中,组件是以Assemblies的形式创建的,在其概念模式下,软件系统可以被视为相互协同工作的对象集合,其中每个对象会提供特定的服务,发出特定的消息,以便其他对象调用。基于组件的软件开发可分为系统需求分析、功能分解、组件规划、组件设计、组件实现与测试、组件装配、系统测试等6个过程(如图1所示)。其中,功能分解是分析系统的功能模型,为规划系统所需的组件提供基础;组件设计是根据系统的功能模型提取规划实现系统功能所需的组件,建立系统的组件库模型,然后设计后台数据库、设计组件的功能与接口;组件实现是根据规划好的系统组件功能与接口,采用具体的组件技术实现组件功能与接口,并完成该组件的测试工作;组件装配是根据系统的需求分析,结合已实现的组件库模型,通过包容、聚合等机制组装并实现系统的功能。2tmis子系统选课管理子系统属于综合教务管理信息系统(TMIS:TeachingManagementInformationSystem)的重要组成部分。该子系统所涉及到的大部分业务组件在TMIS的其他部分都存在复用情况,所以在组件的设计过程中,其属性和方法的提取不完全依赖于该子系统的需求。本文只就选课管理子系统的功能分析从整体上阐述其基本的设计思路。2.1学班客户端的设计选课管理系统主要涉及到公选素质课程网上申报、学生网上选课、课表查询、教学班学生名册查询打印以及成绩的网上录入和查询、选课数据处理与统计等基本操作,面向的用户类型包括学生、教师和各级教务管理人员,客户端应用环境非常复杂,范围广泛,比较适合采用B/S模式的体系结构,其具体的设计如图2所示。2.2“三自”模式的选课管理模式虽然学分制教学改革已在国内各高校逐步推行,但真正实行完全学分制的并不多,相当一部分采取的是学年学分制。基于这样一种现实,我们在选课管理系统中将学生所修的课程划分为:专业主干必修课程、专业方向选修课程、公共必修课程、人文素质课程等4大类。其中专业主干必修课程按专业班级统一排课(不需选课);专业方向选修课程面向特定专业学生供其自由选修(属于条件性选课,学生选修时只限学分,不限课程);公共必修课程面向所有专业学生按照规定课程选教学班方案进行选课(如“大学体育”);人文素质课程则供所有学生自由选课(属于非条件性选课,学生只限学分,不限课程)。从而形成了3种不同的选课模式。充分考虑到选课管理的需要,我们在该系统内设计了以下6方面主要功能:①公选素质课程网上申报:所有待开设的人文素质课程由具备开课条件的教师自己登录该系统按照给定的申报程序自愿从网上申报,教务管理人员负责对已申报人文素质课程信息的审核和教师开课资质认定,并决定是否批准该课程的开设。②选课数据处理:包含选课数据预处理、正选后处理、补选后处理、选课结果统计,其中预处理主要根据课表、学生、教学计划及初始化参数组信息生成供选课用的一系列数据表,并在相关的表中完成条件码的设定,同时将专业主干必修课的信息直接写入学生选课结果数据表;正、补选后处理的主要区别就在于正选采用兼顾公平性算法进行处理。③学生网上选课:分别提供以上3种不同模式的选课操作平台,并具备对与学生当前课表冲突的课程或教学班进行自动过滤的功能,主动解决学生课表的冲突问题。同时允许学生在选课过程中自由查询可选课程或任课教师的简介信息,系统能根据事先设定的可选学分或课程门数上限值限定学生此次可选课程的总学分或门数。④学生课表查询:选课数据处理后,学生可以直接在网上查询自己的课表,包括本学期所有的必修、选修课程的教学班、上课时间、周次、上课地点、教师等信息,并提供学生课表的网上打印功能。⑤学生名册查询:选课数据处理后,教务管理人员及任课教师可以直接从网上查询并打印各课程及教学班的实际选课学生的名册信息,并提供考勤登记表的网上打印功能。⑥成绩录入与查询:任课教师在课程考试结束后可直接对自己的教学班学生进行成绩评定并直接在网上输入、保存并提交。保存后还允许再次修改,教师一旦提交成绩就取消其对该成绩的修改权限,交由成绩管理人员处理。2.3课程名称码码选课管理子系统与教学计划及排课等有着紧密的联系,涉及到的数据表比较多。此处只就系统设计中相对重要的数据表给出具体的描述。①选课学生信息表(学号,专业特征码,条件码组,选课次数);②供选课程信息表(课程号,课程名称,学分,课程类型,专业特征码组,简介);③供选教学班信息(教学班号,课程号,教师号,条件码组,限选人数,实选人数);④教学班课表(教学班号,时间名称,时间码,周次名称,周次码,教室号,);⑤教师信息课表(教师号,姓名,学历码,学位码,职称码,教师简介);⑥选课结果信息表(学号,选课类型,课程号,教学班号,志愿号,确定标记);⑦成绩表(学号,课程号,教学班号,成绩,提交标记)。2.4系统内组件划分通过系统功能需求分析可以发现系统内的数据交互渗透于各功能应用之间,因此,系统组件的设计只需对各应用之间共享或交换的数据进行建模,并给出组件对外的接口描述,而不关心各应用内部数据的组织和表示。依据选课管理系统的功能需求和各功能应用之间的数据交互关系,将系统内组件划分为以下12个,①用户登录组件。②学生课表组件。③教学班课表组件。④教师简介组件。⑤课程简介组件。⑥供选课程组件。⑦供选课程教学班组件。⑧学生已选课程教学班组件。⑨教学班学生名册组件。(10)成绩录入组件。(11)学生成绩查询组件。(12)选课组件。3一些重要的问题的解决3.1从时间单元进行排课本系统内学生在每一种类型的选课过程中,可选课程可能有一到多门,每一门课程又可能存在多个可选的教学班。因此,学生课表出现的冲突主要有以下两种情况,一种就是选取了两门相同的课程(实际表现为同一门课程的两个不同的教学班),另一种就是选取的不同的教学班的上课时间相同且周次存在交集情况。前一种冲突我们是通过对选课流程(如图3)的控制来杜绝的。我们知道,上课时间是由节次和周次共同决定的,两个教学班虽然上课节次相同,但是如果周次的交集为空,则二者在上课时间上并不冲突。若只以节次作为判别冲突的依据将无形中减少组合选课的方案数,增加选课的难度。目前,国内高校普遍采用按2节课为一时间单元进行排课的方法,一天可安排4或5个时间单元,一周内最多可安排28或35个时间单元。为方便处理,我们在设计时将一周内的时间单元按照时间的先后次序分别编号为1到28或35,简称“时间码”,例如“周一1-2节”所对应的时间码就是6。同时,一个学期内的教学周数一般不会超过22,常规的上课周次表示使用的字符集普遍为{数字符号,-,.},例如“1-12.14.16-18”表示从1到12周、14单周及16到18周上课。这种表示方法不便于周次冲突的检验,为此我们使用一个32b的Integer数来表示一个周次,从低位0到高位31中的每一位分别表示从第1周到第32周(实际只需要22周即可)是否上课,若上课则对应位置取1,否则取0,比如周次“1-12.14.16-18”就可以使用整数241663来表示,我们称之为“周次码”。这样就可以使用一个包含28或35个Integer数据的数组来表示一个学生的整个课表了,我们称之为“二进制课表”。当学生选定某一课程时,系统自动从数据库内获取该课程所有的教学班课表,并将每一个教学班的课表(可能存在1个以上节次)的所有节次的“周次码”与学生的“二进制课表”中的以“时间码”为下标位置处的数组元素进行二进制的与运算(VB.NET中使用AND运算符,下同),若结果大于0则表示冲突,否则不冲突。如果该教学班所有节次都不冲突,则将其列为可选教学班。当选取某一教学班后,可以直接使用该教学班所有节次的“周次码”与“二进制课表”对应位置的“周次码”执行二进制的或运算(使用OR运算符),即可完成对“二进制课表”的刷新;相反,若撤消某一教学班,则只需要将该教学班所有节次的“周次码”值取反(使用NOT运算符)后再与“二进制课表”对应位置的“周次码”执行二进制的与运算即可。通过这种方法可以实现在选课过程中主动避免第二种冲突的出现。3.2上限、综合对比、热选传统的选课系统大多采用先来先服务(FCFS)算法,选课结果即选即定、选满即止。我们将选课划分为正选、补选两个阶段,正选阶段允许学生在规定的供选课程范围内按“限选门数上限”(=1.5×规定的限选门数上限)的量选取课程教学班,并给每一个教学班设置一个从1开始的依次递增的志愿号,且选课时不受教学班已选人数限制。正选结束后,再依据“按志愿分级处理”算法对正选结果进行处理。之后进入补选阶段。在补选阶段,正选时确定的选课结果不再允许撤消,因处理后实际选课门数未达到“规定的限选门数上限”的学生可以进行补选(允许放弃补选机会),但此时按照(FCFS)算法进行选课,即选即定且受教学班已选人数限制(当已选人数>=限选人数时,该教学班不再可选),且总门数不超过规定的限选门数上限。3.3条件码组中的作用条件性选课主要有两种情况,其一是专业选修课程,它们只限于供某些专业学生选修,其他专业不可选;其二就是有些教学班对选课的学生设置了其他条件,例如体育课要求按照男、女生分别开班授课,此时,一部分教学班只限于男生选取,另一部分则限于女生。对于前者,我们在设计中引入了“专业特征码”和“专业特征码组”概念,每一专业定义一个唯一的特征码,并将其赋予该专业的学生,若某一课程可供多个专业选修,则将这些专业的“专业特征码”组合起来形成“专业特征码组”。对于学生来说,若其“专业特征码”包含于某课程的“专业特征码组”则表示该课程对于此学生可选。对于第二种情况,我们引入了“条件码”和“条件码组”概念,每一个“条件码”和“条件码组”都使用一个32b的Integer数表示,从条件0到条件31共32种不同的条件,其值分别为20、21......231。例如:若使用20表示“男”、21表示“女”、22表示统招、23表示成教,则某统招男生的“条件码组”的值等于5(20+22)。同样,对于某一教学班来说,也可以设置0到多项条件,从而得到该教学班的“条件码组”,在验证某学生是否可选该教学班时,我们只需要检验该教学班所要求的条件此学生是否都具备。换句话说,就是检验此学生不具备的条件中是否包含该教学班要求的条件,若包含,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论