• 1.39 MB
  • 2022-04-22 13:40:01 发布

民办高职院校教学管理信息系统分析设计.doc

  • 80页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'摘要民办高职院校教学管理信息系统分析设计摘要随着现代信息技术的迅猛发展,网络技术在教育系统中的应用日益广泛和深入,它为教学及教学管理工作提供了丰富的教学资源和更先进、更科学的管理方法,新的教学管理与运行模式,使基于网络的教学与教学管理真正成为现实。民办四川天一学院是高职高专院校,教学工作的开展以社会人力资源的需求为导向,以学生主动学习为主导,以教师为辅导,因此存在着教学工作多样性,学生层次多样性,师资队伍多样性和办学地点多校区等特点。教学管理是学校管理的核心工作,其复杂性、综合性客观上要求现代化管理手段。本论文以提高教学管理效率为目的,充分利用信息技术,构建基于网络的、统一数据平台的现代教学管理信息系统,本系统重点考虑了数据的流通,信息的集成和共享,面向工作流程及统筹考虑教学管理的各个环节,作者从四个方面论述所做的工作。首先分析了民办高职高专院校教学管理系统的现状、特点,提出了教学管理系统设计的总体方案和系统实现的目标、功能以及开发思路。第二,详细阐述了课程管理、教学计划管理、执行计划管理、师资管理、教务管理、成绩管理、教材管理及学生管理,完成了对开发教学管理系统全面的系统需求分析。第三,阐述了系统的总体设计原则、系统开发环境、研究方法、技术路线以及相关功能,网络数据库的设计与实施方案,各子系统的设计,人机界面的设计,完成了开发教学管理系统的总体设计,在设计中兼顾了简单明了和高效实用的原则。最后,介绍了本系统实现、测试和应用情况。本系统为院校教学管理工作的改革预留了进一步升级的空间,具有良好的可扩展性,同时对于其它职业教育教学管理系统和高校教学管理系统的开发具有重要的参考价值。I 摘要关键词:民办高职高专教育,教学管理系统,信息系统设计与实现I ABSTRACTABSTRACTWithquickdevelopmentofmoderninformationtechnology,applicationofNetworkTechnologyineducationismoreandmorewidelyanddeeply.Itprovidesrichteachingresources,moreadvancedandscientificmanagementmethods,newTeachingmanagementandoperationmoderealizesnetworkteachingandmanagement.SichuanTianyiPrivateSchoolisaVocationalCollege,theworkofteachingisorientedtothehumanresourcesneedsofthecommunity,dominatesbystudentsactivestudyandguidesbyteachers.Thereexistcharactersofdiversityofteachingwork,variouslevelsofstudent,teachersandschooldiversitymulti-campuslocationsandsoon.Mostimportantofall,teachingmanagementisthecoreworkofschoolmanagement,thecomplexandcomprehensiveofitcommandmodernmanagementmethods.Thispaperaimsatpromotiontheefficiencyofteachingmanagement.Makingfulluseofinformationtechnology,itconstructsamodernteachingmanagementsystemandfocusesontheflowofdata,informationintegrationandsharing,workflow-orientedandconsiderationallaspectsofthemanagementofteaching;theauthordescribeshisworkfromfouraspectsasfollows:Firstly,itanalyzesthestatusandcharacteristicsofPrivateCollegeintheeducationofteachingmanagementsystemandproposestheoverallprogrammedofteachingmanagementsystem,thegoals,functionsandthedevelopmentofideasofsystem.Secondly,itDetailsoncurriculummanagement,teachingprogrammemanagement,implementationofteachingplanmanagement,teachermanagement,academicmanagement,performancemanagement,materialsmanagement,studentmanagementandcompletesthedevelopmentofacomprehensivesystemofteachingmanagementsystemrequirementsanalysis.Thirdly,itexpatiatesonthesystemdesignprinciples,systemdevelopmentenvironment,researchmethods,aswellasrelatedtechnicallineandrelatedfunction;networkdatabasedesignandimplementationofprogrammes,subsystemdesign,human-computerinterfacedesign,italsocompletestheoveralldesignofteaching73 ABSTRACTmanagementsystemandbalancesthesimpleandefficientpracticalprinciplesinthesystemdesign.Intheend,itintroducestestandapplicationofthedevelopedteachingmanagementsystem.Thesystemreservesthefurtherescalationspaceforthereformofthecollegeteachingmanagementandhasagoodexpansion,atthesametime,itprovidesimportantreferencevalueforthedevelopmentofothervocationaleducationandhighereducationmanagementsystemandrelatedinformationmanagementsystem.Keywords:PrivateHigherVocationalEducation,Teachingmanagementsystems,Informationsystemsdesignandimplementation73目录73 目录73 第一章绪论第一章绪论1.1民办高职高专院校教学管理系统问题的提出及研究综述1.1.1问题的提出1.民办高职高专院校的学生来源渠道多,学生层次多样性,学生的差异性较大。民办四川天一学院的入学新生,虽然全部是统招生,但是从入学分数来分析,其跨度很大,有时达到300分左右,这就要求对学生进行分层次进行教学,同时,学生在各个高职学校之间,各院系之间,各专业之间的流动性很大,要依靠统一的数据平台的管理,才能达到数据的一致性,才能提高对学生的服务与管理水平。2.教学目标的市场导向性及以实际动手能力的培养等多种原因导致教学管理工作十分复杂。高职高专院校学生培养方案的市场导向性很强,民办四川天一学院的各系部与教学管理部门,根据国家发布的各年度人力资源需求状况,每六个月更新一次学生培养方案,更新每个学期的教学计划,并且所更改的教学计划要符合国家高职高专人才培养的相关文件,变更内容包括专业教学培养方案的设计、教学大纲、教学计划、开课计划、考试计划、考试大纲、课程表、课时统计、选修课、教材订购、学生、师资、教学保障系统等。同时,实践能力的比重在教学过程中占很大比重,根据国家人才培养的规定,高职高专院校在人才培养的教学计划中,实践性课程要达到总课程学分数的40%。如此频繁的数据变更,工作量大,并且要在专业人才培养方案的统一的框架内进行修订,将涉及教学中各个环节,须在统一的教学管理系统内才能够完成,来实现教学管理的统一协调管理。3.基于学分制的教学管理模式。民办四川天一学院自2003年起开始执行完全学分制教学管理。学分制作为一种教学管理模式,是为了适应经济发展对人才的需求应运而生的,“学分制是以学分计量学生学习量的单位,以取得最低学分为毕业标准的教学管理制度”,其特征是包含着一系列相关制度的执行,如自由选课制、目标管理制(绩点制)、导师制、弹性学分制、学分的预警机制等,学分制在客观上要求利用教学管理信息系统实现学分制的支撑平台。4.学生的主体地位日益突出,借助现代信息技术,为学生提供高质量的教学服务,提高教学管理效率,才能更加体现出学生的主体地位,借助现代信息技术,能够体现师生信息平等,学生信息即时反馈,拉近学生与学校、学生与教师的距离。73 第一章绪论因此,随着民办教育的发展和新教学模式与教学管理模式的变革,对教学管理信息系统的研究与应用进一步深入,教学管理信息系统的用户群体不断扩大,需求不断增加,教学管理信息系统功能也在不断地进行转变和扩展。1.1.2现状民办四川天一学院现有一个1999年使用的C/S模式的教学管理系统,随着学院办学规模的扩大,学生人数增多,校区由一个校区变为四个校区,学生层次多样性,原来的教学管理信息系统已不能满足目前学院的教学需求。同时,高等职业教育的教学管理具有自己的特点,办学规模扩大了,专业设置更灵活、教学模式多样化。高职高专教育倡导构建柔性的、指导性的专业人才培养方案,专业设置按照职业岗位群,以市场需求为导向灵活设置,教学计划的制定与实施和学生毕业后的职业环境紧密联系,重视实践教学环节,突出学生职业技能与素质,注重学生专业能力的培养。根据高职教育的定位与办学特色,进行网络条件下教学管理模式的探索与实践,实现教学管理工作的科学化、信息化、现代化,从根本上改变学院目前的工作模式,提高工作效率,突出学生的主体地位,有利于学院各种办学资源进行新的整合,有利于民办四川天一学院管理水平和教学质量的提高,为高职学院的可持续发展奠定基础。国内对这方面的研究也很多,解决方案也是各有特色,其中,岳辉,马映登对基于WEB方式的职业学校教学管理信息系统设计提出了很有特点的见解[3],文胜则提出了在基于Web的工作流技术在高校教学管理信息系统中的应用[6]。这些都为民办四川天一学院教学管理信息系统的研究与开发提供了可学习的宝贵经验。1.2高职高专院校教学管理系统实现的目标针对民办四川天一学院的特点与教学管理工作的工作流程,各部门使用的简单C/S(客户端/服务器)模式与简单的数据库技术己经不能满足目前教学管理工作的需要,客观上需要设计开发一个比较完善的、适合民办四川天一学院特点的教学管理系统。民办四川天一学院教学管理系统实现目标是:l实现学院教学管理工作系统化、网络化、自动化,减少手工管理工作,提高效率,达到各部门数据一致。l系统既要适应完全学分制教学管理需要,又要适应专业设置、课程设置灵活性的需要。73 第一章绪论l系统满足多校区、多办公地点的教学管理需要。l通过实行系统身份验证与数据库的访问权限管理来确保数据安全。l采用B/S(Browser/Server浏览器/服务器)体系结构设计,基于Web的教学管理系统,采用OO(ObjectOriented 面向对象)设计思想,系统功能容易操作,便于扩展,方便维护,容易推广。1.3高等职业院校教育教学管理系统简介2007年1月,民办四川天一学院组建了四川天一学院教学管理信息系统开发小组,于2007年3月正式启动工作,现正处于后期编码阶段,系统研发及实现情况介绍如下。1.3.1系统网络拓扑结构图民办四川天一学院教学管理信息系统运行在现有网络基础之上,校园内部用户通过校园网来访问系统服务器进入本系统,其它校区可以通过VPN(VirtualPrivateNtwork 虚拟私有网络)来访问系统服务器,校外用户通过Internet访问系统服务器。网络拓扑图如图1-1所示。图1-1 民办四川天一学院教学管理信息系统网络拓扑图1.3.2系统的体系结构73 第一章绪论1.民办四川天一学院教学管理信息系统的层次结构,本着重在实用,易于扩展的原则,系统框架基于J2EE模式,系统采用B/S(Browser/Server)模式三层结构,即分为表示层(Presentatioon)、功能层(BusinessLogic)、数据层(DataService)。此种结构逻辑清晰、易于开发与扩展。浏览器端是用户界面,用来与用户交互,进行数据的录入与结果的显示,中间层用来封装所有的业务逻辑,底层用于存储所有数据。2.系统开发平台为J2EE标准框架,利用了Java的跨平台特性。J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理等复杂问题的体系结构。J2EE技术的基础是核心Java2平台或Java平台的标准版。J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性,方便存取数据库的JDBCAPI,使用CORBA技术以及能够在Internet应用中保护数据的安全模式等,同时还提供了对EJB(EnterpriseJavaBeans),JavaServletsAPI,JSP(JavaServerPage)以及XML技术的全面支持,使用J2EE开发平台,可以达到:l保留并集成企业己有IT资产。在利用已有的企业信息系统的基础上开发新系统,而不是重新制定全盘方案。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATuxed。以及NetscapeApplicationServer都可以非常方便地集成到J2EE应用中。J2EE拥有广泛的业界支持和一些重要的企业计算领域供应商的参与,每一个供应商都对现有的客户提供了升级途径。由于J2EE平台的产品对软硬件的要求不高,因此它完全能内含到现有的操作系统和硬件环境中。l高效的开发。J2EE允许把一些通用的、很繁琐的服务交给中间件供应商来完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供的复杂中间件服务主要包括状态管理服务、持续性服务和分布式共享数据对象Cache服务等。l支持异构环境。J2EE拥有Java固有的跨平台特性,用J2EE开发的应用程序能够非常方便地部署在不同的硬件和操作系统中。此外由于不同的应用服务器开发商都遵循相同的J2EE规范开发他们的产品,所以同一个J2EE应用程序可以灵活的部署在不同的应用服务器中。另外,J2EE标准还允许客户订购与J2EE兼容的第三方的现成的组件,这些组件部署到异构环境中,从而节省完全由自己实现所需的费用。l73 第一章绪论具有可伸缩性。企业必须要选择一种服务端平台,这种平台应能够提供极佳的可伸缩性去满足那些在他们系统上进行运作的大批新客户。J2EE领域的供应商提供了广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器继承部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。l稳定的可用性。Internet的全球化要求服务器端平台必须能全天候运转,J2EE在被部署到可靠的操作环境中可以支持用户长期的使用,是实时性很强的商业系统理想的选择。3.系统规划、功能介绍以及取得效果。l系统划分:根据民办四川天一学院专业设置情况及其高等职业教育教学管理的特点,系统功能划分如图1-2所示:图1-2民办四川天一学院信息管理系统功能示意图l系统功能:本系统各功能模块之间相互独立,自成体系,具有独立的功能,同时数据的流动是单一性的,保证了数据的一致性。本系统的重点是将教学置于根本立足点,根据不同的培养目标开发出相应的课程,各专业教学计划根据不同的人才培养方案选择不同的课程,组成了各个专业的教学计划,并生成各个学期的执行计划,教师根据各专业的开课计划,选择相应的课程,配上相应的教材,就可以组织日常的教学活动,教学活动完成后,就可以得到学生的考试成绩。各系部的教学活动,都将在此系统中完成,这样可以提高工作效率,减少在工作中的错误与失误。1.3.3系统设计特点l符合J2EE应用模型,采用J2EE框架标准,技术、标准统一。目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。73 第一章绪论l采用三层体系结构,符合目前民办四川天一学院教学管理的技术要求,在四川天一学院的后继发展中,要有很强的扩展性,要适应四川天一学院的不断的发展和变化。l本教学管理信息系统符合民办四川天一学院的特点。民办四川天一学院教学管理信息系统由学院职工为四川天一学院进行分析与设计,由于开发者非常熟悉本单位的工作流程,了解各部门、岗位的工作职责,充分理解各教学管理岗位的在系统上的功能需求,因此本教学管理系统非常符合目前民办四川天一学院的需求与特点。l本教学管理信息系统的开发成本低。由于民办四川天一学院是民办院校,其资金有限,在本系统的开发过程中,全部使用了开源软件,开发平台使用了Eclipse+MyEclipse,对象持久化使用的是Hibernate,MVC模式的实现使用了Struts,并且数据库在开发过程中使用的是MySQL,全部为开源软件,系统运行后将数据库接口改为学院的Oracle数据库,因此,民办四川天一学院教学管理信息系统的成本非常低。1.3.4本人已完成的工作和本系统开发进度情况本人在民办四川天一学院教学管理信息系统的项目开发和实施过程中做了大量工作,主要完成如下五个方面:l负责系统的全面需求分析。l负责全面的系统设计。l参与系统的详细设计工作。l参与系统的编码工作。l参与系统的测试与试运行。本系统在民办高等职业教育教学管理方面,尤其在系统的先进性、信息化管理的深入程度以及对民办高等职业教育课程管理、教学计划管理、学生管理的适应性等方面有独到之处,目前工作进度处于系统的部署工作与应用阶段。73 第二章系统开发平台与关键技术第一章系统开发平台与关键技术随着对信息管理系统要求的提高,本地型数据库己经不能适应工作的需要。作为对传统网络集中共享式数据库的扩充,出现了客户机/服务器(Client/Server,简称C/S)结构。但此种结构也有不足,主要表现为客户端负担过大,难以集中控制,使用不方便,系统资源消耗严重。针对C/S两层结构的缺点,出现了一种新型的基于Web的三层结构-B/S结构。在三层结构中客户端负责用户和应用系统间的对话,应用程序的逻辑在中间层的应用服务器上,第三层数据库服务器负责数据的存取和维护等工作。用户请求由客户端传递到中间层,在经过中间层的逻辑分析后转换为数据库服务器能识别的指令,再传递给数据库服务器,而数据库服务器在执行指令后将执行结果返回给应用服务器,由应用服务器生成客户浏览器能识别的格式返回给客户端。由于三层B/S结构对客户端要求不高,系统的整体性能较高,维护方便等众多优点,目前己成为Web应用系统的主流框架模式。实现B/S模式的方案和工具很多,开源框架Sturts是其中比较优秀的框架之一。2.1MVC设计模式的实现――Struts2.1.1Struts简介Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC模式,能够很好地帮助Java开发者利用J2EE开发Web应用。和其他的Java架构一样,Struts也是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。Structs框架的核心是一个弹性的控制层,基于如JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及JakartaCommons的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及JSP标签库组成。基于Struts构架的Web应用程序基本上符合JSPModel2的设计标准,可以说是一个传统MVC设计模式的一种变化类型。Struts是构建基于Java的Web应用程序的项目框架,使用Struts可以开发使用JavaServlets和JavaServerPages73 第二章系统开发平台与关键技术的高性能、面向事务的Web应用程序,并可以解决很多相关复杂问题。Struts带来的不仅仅是编程的便利性,Struts还从根本上为Web编程人员构思和构建Web应用程序提供了一种新的方式[21]。Struts是一种开放资源,是ApacheSoftwareFoundation(ASF)的Jakarta项目。作为一种开放资源,Struts是完全免费的,只要遵守ASF许可条款,可以对Struts进行修改,而不用担心任何后果。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,如JDBC/EJB,以及其它第三方类库,如Hibernate/iBATIS,或者ObjectRelationalBridge(对象关系桥)。在视图层,Struts能够与JSP,包括JSTL与JSF,以及Velocity模板,XSLT与其它表示层技术结合。Struts为每个专业的Web应用程序做背后的支撑,帮助为你的应用创建一个扩展的开发环境。Struts的体系结构与工作原理逻辑清晰,MVC采用模型-视图-控制器(MVCModel-View-Controller)的设计模式,这是一种常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如图2-1所示:View(视图)Controller(控制)Model(模型)图2-1MVC的工作原理2.1.2Struts的体系结构Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的体系结构如图2-2所示:73 第二章系统开发平台与关键技术图2-2Struts体系结构从图2-2中我们可以知道,Struts的体系结构包括模型(Model),视图(View)和控制器(Controller)三部分。下面让我们从MVC角度来看看Struts的体系结构(Model2)与工作原理。l模型(Model)在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组ActinformBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能被内嵌在Action类,它是Struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。建议用户将事务逻辑与Action类所扮演的角色分开。l视图(View)视图主要由JSP建立,Struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。目前的标签库包括:BeanTags、HTMLtags、LogicTags、NestedTags以及TemplateTags等。l控制器(Controller)在Struts中,基本的控制器组件是ActionServlet类中的实例Servelt,实际使用的S73 第二章系统开发平台与关键技术ervlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。struts-config.xml文件配置控制器。ActionServlet(Controller)、Actionform(formState)和Action(ModelWrapper)之间的关系及Struts体系结构中所使用的组件如表2-1所示:表2-1Struts体系结构中的组件ActionServlet控制器ActionClass包含事务逻辑Actionform显示模块数据ActionMapping帮助控制器将请求映射到操作ActionForward用来指示操作转移的对象ActionError用来存储和回收错误StrutsTagLib可以减轻开发显示层次的工作struts-config.xmlStruts配置文件:Struts配置文件struts-config.xml,默认在目录WEB-INFstruts-config.xml找到这个文件。文件的配置包括全局转发、ActionMapping类、Actionformbean和JDBC数据源四个部分。l配置全局转发全局转发用来在JSP页之间创建逻辑名称映射。转发都可以通过对调用操作映射的实例来获得,全局转发的格式如下:<global-forwards><forwardname="bookCreated"path="/BookView.jsp"/></global-forwards>Name属性全局转发的名字,Path是与目标URL的相对路径。l配置ActionMappingActionMapping对象帮助进行框架内部的流程控制,它们可将请求URI映射到Action类,并且将Action类与Actionform73 第二章系统开发平台与关键技术bean相关联。ActionServlet在内部使用这些映射,并将控制转移到特定Action类的实例。所有Action类使用perform()方法实现特定应用程序代码,返回一个ActionForward对象,其中包括响应转发的目标资源名称。格式如下:<action-mappings><actionpath="/createBook"type="BookAction"name="bookform"scope="request"input="/CreateBook.jsp"></action><forwardname="failure"path="/CreateBook.jsp"/><forwardname="cancel"path="/index.jsp"/></action-mappings>l配置ActionformBeanActionServlet使用Actionform来保存请求的参数,这些bean的属性名称与HTTP请求参数中的名称相对应,控制器将请求参数传递到Actionformbean的实例,然后将这个实例传送到Action类。格式如下:<form-beans><form-beanname="bookform"type="Bookform"/></form-beans>l配置JDBC数据源用<data-sources>元素可以定义多个数据源。格式如下:<data-sources><data-sourceid="DS1"key="conPool"type="org.apache.struts.util.GenericDataSource"<set-propertyid="SP1"autoCommit="true"description="ExampleDataSourceConfiguration"driverClass="org.test.mm.mysql.Driver"maxCount="4"minCount="2"url="jdbc:mysql://localhost/test"user="struts"password="ghq123"/><data-source/></data-sources>2.2数据库数据的持久化技术的实现――Hibernate73 第二章系统开发平台与关键技术2.2.1Hibernate简介Hibernate是采用ORM模式实现数据持久层的一个优秀的Java组件,利用Hibernate,我们可以方便地将Java对象进行持久化操作,并可以使用Hibernate所提供的HOL泪ibernateOueryLanguage,Hibernate查询语言)完成Java对象和关系型数据库之I旬的转换和操作。Hibernate是连接Java应用程序和关系数据库的中间件;它对JDBC进行了封装,专门用来进行Java对象的持久化;因为Hibernate组件封装了所有数据访问细节,所以可以使程序员只专注于数据库操作的业务流程,而将数据库操作有关的连接管理、事务管理等功能交给Hibernate组件自动去完成。Hibernate作为持久层组件,可以为任何一个需要访问关系数据库的Java应用程序提供通用的服务,即做到了持久层与数据库之间的独立性,当数据库发生改变时不需要更改持久层。作为Hibernate的使用者,无需关心Hibernate到底是如何实现的,我们只需要知道如何访问它的接口就行了。Hibernate组件所具有的优点如下:l实体域对象与数据库二维关系之间的转换,Hibernate是一个便捷的ORM映射工具。l封装了数据访问细节,从而简化了数据访问操作,程序员不再过多地关注数据访问细节,而将精力放到业务逻辑的开发上。l采用缓存机制,提高数据库访问速度。l与具体的数据库无关,可以方便地操作任何数据库。目前,Hibernate已经成为最具影响力的ORM工具,已被广泛应用于各种高效的、简洁的系统的持久层中。2.2.2Hibernate的体系结构Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/RMapping)的工具,它对JDBC进行了轻量级的对象封装,使程序73 第二章系统开发平台与关键技术员可以使用对象编程思想来操作数据库。它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来操作数据库,使用Hibernate能大大的提高实现的效率。Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系。通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化[15],Hibernate体系结构如图2-3所示。图2-3 Hibernate体系结构73 第三章需求分析第一章需求分析系统需求分析是系统开发工作中的最重要环节之一,实事求是地全面调查是系统分析设计的基础。在系统分析阶段,通过对系统的综合研究,对问题域进行抽象,准确地理解系统需求和系统内部运行机制,有助于准确地掌握系统的需求,从而正确地定义问题域,确定软件开发的具体内容。系统分析的目的是将用户的需求及其解决方法确定下来,包括开发者关于现有组织管理状况的了解,用户对信息系统功能的需求,数据业务流程,管理功能和管理数据指标体系,新系统拟改动和新增的管理模型等。通过系统分析,要完成确定系统需求的内容、确定所有涉及到的要素、为当前需要解决的问题建立相应的模型等工作,做到充分理解用户对系统的需求。本阶段工作的重要成果是系统需求分析书[1]。系统需求分析书是系统分析阶段的重要文档,它是一个里程碑,标志着分析阶段工作的结束,它又是系统设计阶段工作的起点和依据,确定了系统开发下一个阶段的工作能否顺利进行,同时它还是一份合同,明确了系统开发者必须交付给用户怎样的新系统。系统分析是软件工程中的重要阶段,是后续所有开发工作的依据[2]。3.1统一建模语言UMLUML(UnifiedModelLanguage)是一种可视化的建模语言,是运用统一的、标准化的标记和定义来实现面向对象软件分析和设计的一种方法,是面向对象方法用来表述系统设计的图形表示法,用来表达、叙述、构建和记录复杂软件不同方面的语言。在UML中,从任何一个角度对系统所做的抽象都可能需要用几种模-型图来描述,而这些模-型图最终组成了系统的完整模型[24]。3.1.1UML的概念模型组成UML有三种基本的组成部分:事物(Things)、关系(Relationships),图(Diagrams)。事物是UML中重要的组成部分,关系把事物紧密联系在一起,图是很多有相互相关的事物的组。l73 第三章需求分析UML中的事物:事物分为结构事物(包括类、接口、协作、用例、主动类、构件和节点)、行为事物(包括交互、状态机)、分组事物(包)和注释事物(注解)。lUML中的关系:UML中有依赖、关联、泛化和实现关系。lUML中的图:UML中的图主要有类图、对象图、用例图、交互图、顺序图、协作图、状态图、活动图、构件图、部署图等。在系统分析中,主要使用类图、用例图和活动图等。3.1.2UML中的要素类图描述了系统中类的静态结构,不仅定义了系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图就是由一些类和类之间的关系所组成,它描述的是面向对象建模的重点,在系统的整个生命周期都是有效的,所对应的高层静态视图表明类之间的关系以及类的职责等。用例图展现了一组用例、参与者以及它们之间的关系,描述了系统的静态使用情况。在对系统行为组织和建模方面,用例图是相当重要的。活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序以及工作流(完成工作所要的步骤),这对于系统的功能建模特别重要,强调对象间的控制流程[25]。在本系统的分析设计工作中,充分利用了现代软件工程思想与技术,使用MicroSoftVisio和RationalRose进行UML设计建模,同时使用AtlanticSystemGuild(www.atlsysguild.com)公司所提供的Volere需求过程与软件需求规格说明书模板和Volere需求记录卡,对民办四川天一学院教学管理信息系统进行分析与设计。3.2课程管理课程是教学活动的基石,是教学活动的最小实体单位。根据民办高职高专人才培养方案和培养目标,开发出面向岗位且以操作为主要的课程,是教学工作中的重要的第一步。课程确定后,再制订出相应的课程大纲(理论教学大纲和实验教学大纲),教学进度表,教学配套资料(虚拟操作平台,多媒体课件,网络教学资料,推荐参考书等),则完成了一门课程的开发工作,将课程提交到数据库中,或将不适合要求的课程从数据库库中转入备份库中,实现课程的全过程的管理。73 第三章需求分析3.2.1课程管理事务分析1.向数据库中增加新开发的课程,同时向数据库中增加课程相应的课程大纲、教学进度表、教学配套资料,增加课程事务用例如表3-1所示。表3-1 “增加课程事务”用例规约用例1增加课程使用语境添加课程到课程数据库中,包括课程包含的课程大纲、教学进度表、教学配套资料范围增加课程数据库中的课程信息级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学计划生成人员可以选择此课程进入教学计划前置条件教学管理人员成功登录到系统,进入到课程管理界面后置条件返回到课程管理界面成功保证返回操作成功信息触发事件单击“添加课程”按钮描述步骤活动1单击“添加课程”按钮2输入课程信息3提交4系统成功处理此次增加的课程并成功保存扩展步骤分支动作2a输入的课程信息的格式不符合录入格式要求,提示出错信息,用户可以选择取消输入,也可以取消此次增加课程的动作技术和数据变化1课程数据库中增加一门新的课程相关信息无73 第三章需求分析2.修改数据库中课程信息,同时可以修改数据库中相对应的课程大纲、教学进度表、教学配套资料,修改课程事务用例如表3-2所示。表3-2 “修改课程事务”用例规约用例2修改课程使用语境修改课程数据库中的课程信息,包括课程对应的课程大纲、教学进度表、教学配套资料范围修改课程数据库中的课程信息级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学计划生成人员可以在教学计划中更新课程信息前置条件教学管理人员成功登录到系统,进入到课程管理界面后置条件返回到课程管理界面成功保证返回操作成功信息触发事件单击“修改课程”按钮描述步骤活动1单击“修改课程”按钮2修改课程信息3提交4系统成功处理此次修改的课程信息并成功保存扩展步骤分支动作2a输入的课程信息的格式不符合录入格式要求,提示出错信息,用户可以选择取消修改技术和数据变化1课程数据库中的一门课程信息更新了相关信息无3.删除数据库中的课程,同时删除对应的课程大纲、教学进度表、教学配套资料,删除课程事务用例如表3-3所示。73 第三章需求分析表3-3 “删除课程事务”用例规约用例3删除课程使用语境删除课程数据库中的课程,同时删除课程对应课程大纲、教学进度表、教学配套资料范围删除课程数据库中的课程信息级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学计划生成人员可以在教学计划中更新前置条件教学管理人员成功登录到系统,进入到课程管理界面后置条件返回到课程管理界面成功保证返回操作成功信息触发事件单击“删除课程”按钮描述步骤活动1单击“删除课程”按钮2删除课程信息3提交4系统成功处理此次删除课程操作并成功保存扩展步骤分支动作4a删除与此课程对应的授课大纲、教学进度表、配套资料技术和数据变化1课程数据库中的一门课程信息被删除相关信息课程数据库中减少了一门课程信息3.2.2课程管理功能1.向数据库中增加课程。在每学期的中期,以各系部为单位,开发出新的课程,并将课程加入到数据库中,同时教务处备案。2.在执行计划实施过程中,将出现的问题汇总,并提出解决方案,将课程库中相应的课程信息做出更新调整,同时向教务处备案。3.对于已经不再开设的课程及其相关资料,从课程库中将课程信息删除。73 第三章需求分析3.3教学计划管理教学计划是专业培养方案的具体表现,决定了在高职高专三年的教学过程中,为了达到暨定的教学目标,所要开设的课程及各课程在整个专业培养方案中的地位、作用、前导课及后续课。3.3.1教学计划管理事务分析1.制订教学计划,教学管理人员要从课程库中选择课程加入到教学计划中,从而生成学生三个学年的教学计划表,制订教学计划用例如表3-4所示。表3-4 “制订教学计划”用例规约用例4制订教学计划使用语境将课程数据库中的课程,添加到教学计划中范围给教学计划添加课程级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学执行计划生成人员可以生成教学执行计划前置条件教学管理人员成功登录到系统,进入到教学计划管理界面后置条件返回到教学计划管理界面成功保证返回操作成功信息触发事件单击“添加课程到教学计划”按钮描述步骤活动1单击“添加课程到教学计划课程”下拉列表2选择课程3提交4系统成功处理此次操作的并成功保存扩展步骤分支动作无无技术和数据变化1课程数据库中的一门课程被添加到教学计划中相关信息无73 第三章需求分析2.从教学计划中将不需要的课程删除,修改教学计划用例如表3-5所示。表3-5 “修改教学计划”用例规约用例5修改教学计划使用语境将教学计划表中不再开设的课程删除范围从教学计划中删除课程级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学执行计划生成人员可以更新教学执行计划前置条件教学管理人员成功登录到系统,进入到教学计划管理界面后置条件返回到教学计划管理界面成功保证返回操作成功信息触发事件单击“从教学计划中删除课程”按钮描述步骤活动1单击“从教学计划中删除课程”按钮2确定3系统成功处理此次操作的并成功保存扩展步骤分支动作无无技术和数据变化1教学计划中的一条课程信息被删除相关信息无3.统计各专业教学计划的学分、学时、实践性环节在全部学时中的比例,统计学分、学分、学时、实践性环节在全部学时中的比例的用例如表3-6所示。73 第三章需求分析表3-6 “统计学分、学分、学时、实践性环节在全部学时中的比例”规约用例6统计统计学分、学分、学时、实践性环节在全部学时中的比例使用语境统计教学计划表中各组成部分的学时比例范围统计专业教学计划中学分、学分、学时、实践性环节在全部学时中的比例,级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学执行计划生成人员可以在生成教学执行计划前置条件教学管理人员成功登录到系统,进入到教学计划管理界面后置条件返回到教学计划管理界面成功保证返回操作成功信息,并统计出结果触发事件单击“统计”按钮描述步骤活动1单击“统计”按钮2显示统计结果3系统成功处理此次操作并成功显示统计结果扩展步骤分支动作无无技术和数据变化1无相关信息无3.3.2教学计划管理功能1.在课程库中,各系部根据教学目标,选择需要的课程加入到教学计划中,在选择了课程后,能够生成一定格式的教学计划表。2.在实际的教学过程中,每个学期结束后,要对现有的教学计划进行更新,有些课程不再需要开设,则要从教学计划中删除去,以此更新教学计划。3.4执行计划管理73 第三章需求分析教学计划生成后,就可以生成每个学期的执行计划,在执行过程中,根据实际的外部情况的变化,需要临时增加课程,或临时取消课程,需要对执行计划进行修改或修改课程的课时、学分、教学内容等,要对执行计划进行管理。3.4.1执行计划管理事务分析1.根据各专业教学计划,生成各专业、班级的执行计划,生成执行计划的用例如表3-7所示。表3-7 “生成执行计划”用例规约用例7生成执行计划使用语境在教学计划的基础上生成执行计划范围选择年级专业班级后,根据教学计划来生成各个学期的执行计划级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益制订教师、教材需求人员可以生成教师、教材需求计划前置条件教学管理人员登录到系统,并选择要生成执行计划的专业班级后置条件返回到执行计划管理界面成功保证返回操作成功信息触发事件单击“生成”按钮描述步骤活动1单击“生成”按钮2返回执行计划结果3系统成功处理此次操作的并成功保存扩展步骤分支动作1a教学计划没有制订,则显示出错信息,提示取消操作技术和数据变化1生成各年级、专业、班级的执行计划并保存相关信息无73 第三章需求分析2.新增课程功能,即从课程库中向执行计划中增加新的课程,向执行计划中增加课程的用例如表3-8所示。表3-8 “增加执行计划中课程”用例规约用例8增加执行计划中的课程使用语境在教学计划的基础上生成执行计划,再增加新的课程范围执行计划级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益制订教师、教材需求人员可以生成教师、教材需求计划前置条件教学管理人员成功登录到系统,进入到执行计划管理界面,并选择要增加的课程后置条件返回到执行计划管理界面成功保证返回操作成功信息触发事件单击“增加”按钮描述步骤活动1单击“选择课程”按钮2选择课程3单击“增加”按钮4系统成功处理此次操作的并成功保存扩展步骤分支动作无无技术和数据变化1生成新的各年级、专业、班级的执行计划数据并保存相关信息无3.在执行计划中取消要开设的课程,将其从执行计划中删除,从执行计划中删除课程用例如表3-9所示。73 第三章需求分析表3-9 “从执行计划中删除课程”用例规约用例9删除执行计划中课程使用语境在执行计划中取消不再开设的课程范围在执行计划中级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益制订教师、教材需求人员可以更新生成教师、教材需求计划前置条件教学管理人员成功登录到系统,进入到执行计划管理界面,并选择要生成执行计划的年级专业班级后置条件返回到执行计划管理界面成功保证返回操作成功信息触发事件单击“从执行计划中删除课程”按钮描述步骤活动1单击“从执行计划中删除课程”按钮2返回删除成功的信息3系统成功处理此次操作的并成功保存数据扩展步骤分支动作无无技术和数据变化1生成新的各年级、专业、班级的执行计划数据并保存相关信息无3.4.2执行计划管理功能1.根据实际需要,从课程库中向执行计划中添加课程,生成执行计划。2.从执行计划中取消不再开设的课程,更新执行计划。3.对执行计划中需要修改的课程进行修改,更新执行计划。3.5教材管理73 第三章需求分析执行计划制订出来以后,各专业班的学期课程就制订了出来,根据教学计划的要求,由各教研室选择相关的教材,录入本系统,交学院教材科进行招标采购。3.5.1教材管理事务分析1.根据执行计划中开设的课程,为所开设的课程选择合适的教材,添加教材事务用例如表3-10所示。表3-10 “添加教材”用例规约用例10添加教材使用语境在执行计划中添加所开设课程所需要的教材信息范围增加教材库中的信息级别子功能主执行者教研室人员项目相关人员利益项目相关人员利益采购部门得到教材需求信息前置条件登录到执行计划管理界面后置条件返回到执行计划管理界面成功保证返回操作成功信息触发事件单击“添加”按钮描述步骤活动1录入教材信息2单击“添加”按钮3系统成功处理此次操作的并成功保存扩展步骤分支动作2a录入教材信息不符合要求,提示出错信息并可以取消技术和数据变化1教材库中增加了教材信息相关信息无73 第三章需求分析2.在执行计划中,对于选择的教材,如果不合适,可以将其删除,再重新选择教材,删除教材用例如表3-11所示。表3-11 “删除教材”用例规约用例2-11删除教材使用语境在执行计划中删除所开设课程对应的教材范围删除教材库中的信息级别子功能主执行者教研室人员项目相关人员利益项目相关人员利益采购部门得到教材需求信息前置条件登录到执行计划管理界面后置条件返回到执行计划管理界面成功保证返回操作成功信息触发事件单击“删除”按钮描述步骤活动1单击“删除”按钮2确认信息3系统成功处理此次操作的并成功保存扩展步骤分支动作无无技术和数据变化1教材库中删除了教材信息被删除相关信息无3.在执行计划中,对于选订的教材,可以修改教材相关信息,修改教材信息的用例如表3-12所示。73 第三章需求分析表3-12 “修改教材”用例规约用例12修改教材使用语境在执行计划中修改开设课程对应的教材信息范围修改教材库中教材的信息级别子功能主执行者教研室人员项目相关人员利益项目相关人员利益采购部门得到教材的更新信息前置条件登录到执行计划管理界面后置条件返回到执行计划管理界面成功保证返回操作成功信息触发事件单击“修改”按钮描述步骤活动1单击“修改”按钮2录入教材信息3系统成功处理此次操作的并成功保存扩展步骤分支动作2a录入教材信息不符合要求,提示出错信息并可以取消技术和数据变化1教材库中更新了教材信息相关信息无3.5.2教材管理功能1.为开设的课程选择教材,添加课程对应的教材信息。2.修改教材信息,更新教材需求信息。3.删除已选订的教材,并重新添加新教材相关信息。3.6教师管理民办四川天一学院实行注册教师制度,师资由四部分组成,专职专任教师、行政兼课教师、外聘兼课教师、外教组成,只有专职专任教师固定性最好,其它三种教师都流动性很大,因此对教师加强管理就显得很重要。73 第三章需求分析3.6.1教师管理事务分析1.增加教师事务,民办四川天一学院实行注册教师制度,所有教师都要进行注册,进入师资库后,才能作为民办四川天一学院的教师,进而才可以进行选课,安排教学任务,进行教学活动,增加教师用例如表3-13所示。表3-13 “增加教师”用例规约用例13增加教师使用语境在教师库中增加各院系所需要的授课教师范围增加教师库中的教师信息级别子功能主执行者教研室人员项目相关人员利益项目相关人员利益教学管理人员得到教师信息前置条件登录到教师管理界面后置条件返回到教师管理界面成功保证返回操作成功信息触发事件单击“增加”按钮描述步骤活动1单击“增加”按钮2录入教师信息3系统成功处理此次操作的并成功保存扩展步骤分支动作2a录入教师信息不符合要求,提示出错信息并可以取消技术和数据变化1教师库中更新了教师信息相关信息无2.修改教师信息事务。在民办四川天一学院师资库中的所有教师,其信息也在不断发生变化,如职称提高了,或因工作调动更改了所属部门等原因,其个人信息要即时进行修改,这样在其单位授课薪酬中就会有所反映,修改教师信息用例如表3-14。73 第三章需求分析表3-14 “修改教师信息”用例规约用例14修改教师信息使用语境在教师库中修改各院系所需要的授课教师信息范围修改教师库中的教师信息级别子功能主执行者教研室人员项目相关人员利益项目相关人员利益教学管理人员得到教师信息前置条件登录到教师管理界面后置条件返回到教师管理界面成功保证返回操作成功信息触发事件单击“修改”按钮描述步骤活动1单击“修改”按钮2录入教师更新的信息3系统成功处理此次操作并成功保存扩展步骤分支动作2a录入教师信息不符合要求,提示出错信息并可以取消技术和数据变化1教师库中更新了教师信息相关信息无3.统计事务。按类别统计出本学期授课教师的工作量、额定工作量、超额工作量,统计出每月所有授课教师的授课薪酬,统计用例功能使用数据库统计功能统计。3.6.2教师管理功能1.向师资库中分类增加教师。2.修改师资库中各类教师的个人信息。3.统计出各类教师人数、教师工作量、额定工作量、超额工作量、课时费等信息。73 第三章需求分析3.7成绩管理成绩是教学组织活动的最后反映,从这个侧面能够反映教学活动组织的质量、教师授课质量、学生学习质量。因此要加强成绩管理,成绩管理的要求是及时、准确。教师能够上传成绩,教务处学籍科审核后发布,学生能够查询到各科成绩。在日常教学活动中,学籍管理人员和学生能够查询每个学生的学分,在学生毕业前要及时进行学分预警,能够生成一张学生个人的毕业成绩单。3.7.1成绩管理事务分析1.授课教师课程结束后,考试阅卷工作完成,要及时提交学生成绩,提交学生成绩用例如表3-15所示。表3-15 “提交学生成绩”用例规约用例17提交学生成绩使用语境将学生成绩提交到学生成绩数据库范围授课教师提交所授课程的学生成绩级别子功能主执行者教师项目相关人员利益项目相关人员利益教学管理人员得到学生成绩信息前置条件登录到教师管理界面,并打开提交成绩界面后置条件返回到教师管理界面成功保证返回操作成功信息触发事件单击“提交”按钮描述步骤活动1录入学生成绩2单击“提交”按钮3系统成功处理此次操作的并成功显示学生成绩扩展步骤分支动作2a录入的学生成绩不符合格式要求,提示出错信息并进行修改技术和数据变化1更新了学生成绩数据库的数据相关信息无73 第三章需求分析2.成绩审核事务,教学管理人员审核授课教师提交的成绩无误,要及时发布成绩,审核成绩用例如表3-16所示。表3-16 “审核成绩”用例规约用例18审核成绩使用语境对授课教师提交到学生成绩数据库的成绩进行审核范围对授课教师提交的学生成绩进行审核,级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益学生得到学生成绩信息前置条件登录到教学管理界面,并打开审核成绩界面后置条件返回到教师管理界面成功保证返回审核通过信息触发事件单击“审核”按钮描述步骤活动1选择专业班级2单击“审核”按钮3系统成功处理此次操作扩展步骤分支动作无无技术和数据变化1更新了学生成绩数据库的数据相关信息无3.教学管理人员统计出每个毕业班学生的学分,对学分未达到要求的学生进行学分预警,统计学分用例如表3-17所示。73 第三章需求分析表3-17 “统计学分”用例规约用例19统计学分使用语境将学生得到的课程学分统计出来范围教学管理人员统计学分级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益学生管理人员得到学生学分信息前置条件登录到教学管理界面,并打开学分统计界面后置条件返回到教学管理界面成功保证返回操作成功信息触发事件单击“统计”按钮描述步骤活动1录入学生主键信息2单击“统计”按钮3系统成功处理此次操作的并成功显示学生总学分及未达到的学分扩展步骤分支动作无无技术和数据变化1无相关信息无4.教学管理人员为每个毕业班的学生制作成绩单,制作成绩单用例如表3-18所示。73 第三章需求分析表3-18 “制作成绩单”用例规约用例20制作成绩单使用语境将学生学习过的课程和学分统计出来,按固定格式打印出成绩单范围教学管理人员打印学生成绩单级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学管理人员得到学生成绩单前置条件登录到教学管理界面,并打开制作成绩单界面,录入学生学号后置条件返回到教学管理界面成功保证返回操作成功信息触发事件单击“打印”按钮描述步骤活动1录入学生主键信息2单击“打印”按钮3系统成功处理此次操作的并成功打印出学生所学课程及学分扩展步骤分支动作2a无满足条件记录,显示出错信息,并提示是否重新录入技术和数据变化1无相关信息无3.7.2成绩管理功能1.授课教师上传学生成绩。2.教务处教学管理人员审核并发布成绩。3.统计出每个学生的已取得学分和未达到毕业要求的学分。4.制作生成学期成绩单和在校成绩单。3.8选课管理73 第三章需求分析在民办四川天一学院执行的过程中,因教学资源紧张,未能达到理想化的学分制选课情况,选修课程分为限选课程和任选课程。限定于某个校区、某个系的学生才能选择的课程是限选课。3.8.1选课管理事务分析1.教务处教管理科发布选修课事务,在各系部的的教学执行计划中,统计出全部选修课程,由教务处教学管理科审核发布,发布选修课用例如表3-19所示。表3-19 “发布选修课”用例规约用例21发布选修课使用语境将各系部的执行计划中,统计显示出选修课,并发布选修课范围教学管理人员发布选修课级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益学生得到可以选修的课程前置条件登录到教学管理界面,并打开发布选修课界面后置条件返回到选修课界面成功保证返回操作成功信息触发事件单击“发布”按钮描述步骤活动1选择各系部执行计划中选修课信息2单击“发布”按钮3系统成功处理此次操作的并显示发布出来的选修课程扩展步骤分支动作1a无可选择的选修课,提示是否增加选修课程技术和数据变化1无相关信息无2.选课事务,学生成功进入系统后,可以选择相应课程来选修,选修课程用例如表3-20所示。73 第三章需求分析表3-20 “选修课程”用例规约用例22选修课程使用语境学生登录后,可以选择课程来选修范围学生选择课程级别子功能主执行者学生项目相关人员利益项目相关人员利益教学管理人员得到学生选修的课程前置条件登录到学生界面,并打开选修课界面后置条件返回到学生界面成功保证返回操作成功信息触发事件单击“确定”按钮描述步骤活动1选择各系部发布出的选修课信息2复选选修课程,完成后单击“确定”按钮3系统成功处理此次操作的并保存学生的选课信息扩展步骤分支动作无无技术和数据变化1数据库中增加了学生的选课信息相关信息无3.教务处教学管理科发布可开设的选修课事务。根据学生选课情况,对能够开设的课进行发布,对不能开设的课程说明原因,并让已选择未开设课程的学生进行二次选课。3.8.2选课管理功能1.教学管理人员发布学生可以进行选修的课程。2.教学管理人员统计出选修课程的选课情况,并根据相关规定,发布能够开设的选修课及学生名单73 第三章需求分析3.9学生管理本系统学生管理模块的功能只是面向教学的,可以在本系统中对学生进行添加、删除操作,学生进入本系统后可以查看教学信息,查看个人学习信息。3.9.1学生管理事务分析1.每年学生报到后,根据入学新生名单向学生库中添加学生,可以将学生名单从招生部门的新生数据库直接导入到本系统新生数据库中,报到后,再转入到在校生数据库中,此功能可以使用数据库管理工具直接导入来实现。2.学生个人信息发生变化后,及时修改学生个人注册信息,修改学生信息用例如表3-21所示。表3-21 “修改学生信息”用例规约用例23修改学生信息使用语境教学管理人员登录后,可以修改学生信息范围教学管理人员修改学生信息级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学管理人员得到学生更新的信息前置条件登录到学生管理界面,并打开修改学生信息界面后置条件返回到学生管理界面成功保证返回操作成功信息触发事件单击“确定”按钮描述步骤活动1选择要修改的学生信息2进行修改并保存3系统成功处理此次操作的并保存学生的更新信息扩展步骤分支动作无无技术和数据变化1数据库中修改了学生的信息相关信息无73 第三章需求分析3.因各种原因导致学生不是正常毕业,则从学生库中删除学生,在学生库中删除学生用例如表3-22所示。表3-22 “删除学生”用例规约用例24删除学生信息使用语境教学管理人员登录后,可以删除学生信息范围教学管理人员删除学生信息级别子功能主执行者教学管理人员项目相关人员利益项目相关人员利益教学管理人员得到学生更新的信息前置条件登录到学生管理界面,并打开删除学生信息界面后置条件返回到学生管理界面成功保证返回操作成功信息触发事件单击“删除”按钮描述步骤活动1选择要删除的学生信息2确认删除操作3系统成功处理此次操作的并保存学生的更新信息扩展步骤分支动作无无技术和数据变化1数据库中删除了学生的信息相关信息无4.学生毕业后,将学生从在校生库转入毕业生库,本功能可以使用数据库管理工具直接实现。3.9.2学生管理功能1.向学生库中添加学生,可以使用数据库管理工具直接从新生库中导入。2.学生在校的时间内,学生个人信息发生变化,可以修改学生信息。3.教学管理人员将已经不在校的学生其个人信息删除。4.学生毕业后,使用数据库管理工具将在校学生信息转入毕业生数据库。73 第三章需求分析3.10系统UML模型3.10.1系统用例图本系统包含八个子系统,将每个子系统的功能用一个用例来表示,图3-1表示本系统的粗粒度用例图。图3-1系统用例图3.10.2系统活动图本系统用户可以教学科、教材科、教研室、学籍科的身份登录到本系统,每个用户进入本系统后,即可进入相关界面,执行相关的功能,执行完相关功能后,就可以退出系统。系统的活动图如图3-2所示。73 第三章需求分析图3-2系统活动73 第四章系统总体设计第一章系统总体设计4.1系统划分、系统总体设计原则与设计目标民办四川天一学院教学管理信息系统按照管理要求分为几个子系统,各子系统既相互独立又相互关联,以达到数据一致、资源共享、职责明确的目的。子系统划分的总体原则是:子系统要有相对独立性,尽量减少各种不必要的数据调用和控制关系,子系统之间的依赖性尽量减少,接口简单、明确,以方便调试、维护和运行。4.1.1系统总体设计原则1.总体设计,系统功能由各子系统实现,子系统间松散藕合。在进行总体设计时,应着眼于全面实施计算机管理,提供一个全面实施计算机管理的解决方案,但在具体实施时,应分阶段分系统进行设计。子系统划分为:课程管理子系统、教学计划管理子系统、执行计划管理子系统、教材管理子系统、教师管理子系统、学生管理子系统、成绩管理子系统、选课管理子系统。2.侧重实用,提高效率,注重教学管理工作的工作流程的再造。在进行系统功能设计时,结合学分制特点,从民办四川天一学院的实际情况出发,解决教学管理中学分制的实际问题,注意实用,简化操作,减少工作人员的工作量,提高工作效率,提升服务质量。系统设计应使数据冗余较小,以提高编程工作和系统运行的效率。同时,在系统设计过程中要强调信息集成和流程再造。信息集成是将基于几种信息技术的资源及应用聚集成一个协同工作的整体。集成包括功能交互、信息共享及数据通讯二个方面的管理与控制,相互之间在功能上互相关联。实现信息集成,在教学管理信息系统设计中,首先要参照学校信息化建设总体规划,同时遵循教育部下发的《教育管理信息化标准》[30],站在学校整体高度,以全而和长远发展的观点来进行总体设计。信息技术的采用能够极大地提高组织的工作效率,同时也对组织提出了新的挑战,再造流程,进一步改变组织结构是发挥信息技术巨大作用的保证。作为信息技术应用体现的教学管理信息系统在设计时应而向工作流程,重点从考虑如何在信息技术的平台上对原有的教务管理工作流程进行再造,以提高工作效率。73 第四章系统总体设计3.着重解决当前问题,同时预留接口,为以后升级扩展做好基础。在进行系统设计时,首先应立足民办四川学院当前情况,但同时也应考虑到学院将来的发展,要求系统有一定的前瞻性。基于这一点,在构思系统的架构时,应采用模块化结构,便于系统将来的扩展。系统设计考虑今后的管理发展需要,既要满足当前需要.又要有较好的可扩展性和兼容性。按总体设计规划及《教育管理信息化标准》[30]中所规范的信息集成内容和实现集成的技术标准来规范系统设计。4.立足本校,易于推广。在进行系统设计时,以民办四川天一学院实际情况作为出发点,首先满足学院实际需要,然后,在此基础上,考虑系统通用性与民办学院的特殊性,便于在其它同层次的民办学院中进行推广。5.采用B/S模式操作界面,操作简单,数据安全可靠。系统界面风格设计指导思想是:实现功能,简单,友好。在保证实现系统整体功能的前提下,系统操作简单、方便,界面风格人性化,不需要复杂的操作说明书即可熟悉系统的操作。6.为保证系统安全,采取多种容错措施,包括:RAID容错、角色管理、数据有效性检查及内外网隔离等等[9]。4.1.2系统总体设计目标系统设计目标是开发出符合民办学院特点的教学管理信息系统,最终目的是利用现代计算机技术,在民办四川天一学院内部教学管理过程中,实现信息资源共享,解决学生来源多样性,教学多样性,多校区及学分制教学管理的实际问题,达到提高工作效率,降低教学成本,学生培养方式更加灵活多样的目的。具体实现目标如下:l实现全部教学课程管理的自动化,统一教学计划组成、统一课程名称与编码,统一学分制管理标准。l实现教师的统一管理,统一专职教师、行政兼职教师、外聘兼职教师和统一管理平台,实现教师管理的自动化。l实现学生选课、查询成绩、查询个人信息的自动化。l实现订购教材的统一管理与发放。4.1.3系统总体设计功能结构图民办四川天一学院教学管理信息系统总体功能如表4-1所示。73 第四章系统总体设计表4-1系统总体功能子系统编号英文名称中文名称业务职能安装地点1KC课程管理浏览、添加、删除、修改各类课程教务处信息中心2JXJH教学计划管理以课程为基础,制订教学计划教务处信息中心3ZXJH执行计划管理教学运行管理,对教学计划的执行过程进行管理教务处信息中心4JC教材管理根据执行计划浏览、添加、删除、修改教材教务处信息中心5XK选课管理学生可以选择、删除选修课程教务处信息中心6CJ成绩管理教师向系统中添加学生成绩,向学生发布成绩,教务处信息中心7XS学生管理浏览、浏览、添加、删除、修改学生教务处信息中心8JS教师管理管理教师相关教务处信息中心4.2系统开发环境的选择民办四川天一学院现有四个校区,管理人员较为分散,因此使用B/S模式,在开发中,应用了Struts的MVC三层结构,数据层使用了持久化技术,利用Hibernate来实现POJO,数据库部分应用了Oracle数据库。本系统的开发工具使用的是开源软件Eclipse+MyEclipse。Eclipse最初是IBM的一个软件产品,前期投入了4000万美金。2001年11月,IBM宣布将其捐给开放源码组织Eclipse.org。目前Eclipse的市场占有率已经超过了Borland公司的JBuilder,成为Java开发平台中的主流。Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到其核心上。Eclipse中三个最吸引人的地方:一是它创新性的图形API,即SWT/JFace,SWT/JFace大大改善了Java在图形界面方面的能力,二是它的插件机制,73 第四章系统总体设计三是利用它的插件机制开发的众多功能强大的插件。Eclipse平台体系结构Eclipse平台是一个具有一组强大服务的框架,这些服务支持插件,比如Java开发环境插件(JDT)、插件开发环境(PDE)和其他的第三方插件(Newtool)。它由几个主要的部分构成,包括平台运行库、工作区、工作台、团队支持和帮助。平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要任何插件时才加载该插件。除了内核外,其他每样东西都是作为插件来实现的。工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的文件,以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。工作台为Eclipse提供用户界面。它是使用标准窗口工具包(SWT)和一个更高级的API(JFace)来构建的;SWT是Java的Swing/AWTGUIAPI的非标准替代者,JFace则建立在SWT基础上,提供用户界面组件。SWT已被证明是Eclipse最具争议的部分。SWT比Swing或SWT更紧密地映射到底层操作系统的本机图形功能,这不仅使得SWT更快速,而且使得Java程序具有更像本机应用程序的外观和感觉。使用这个新的GUIAPI可能会限制Eclipse工作台的可移植性,不过针对大多数流行操作系统的SWT移植版本已经可用。Eclipse对SWT的使用只会影响Eclipse自身的可移植性——使用Eclipse构建的任何Java应用程序都不会受到影响,除非它们使用SWT而不是使用Swing/AWT。团队支持组件负责提供版本控制和配置管理支持。它根据需要添加视图,以允许用户与所使用的任何版本控制系统(如果有的话)交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。帮助组件具有与Eclipse平台本身相当的可扩展能力。与插件向Eclipse添加功能相同,帮助提供一个附加的导航结构,允许工具以HTML文件的形式添加文档[12][13]。本系统的数据库的持久化技术通过PO(PersistentObject)持久对象来实现。借助开源软件Hibernate来实现POJO(PlainOrdinaryJavaObject 简单JAVA对象)。就是仅仅有一些属性及其getter/setter方法的Java类,有时可以作为VO(ValueObject 值对象)来使用。在一些Object/RelationMapping(对象/关系映射)工具中,能够做到维护数据库表记录的PersistentObject完全是一个符合JavaBean规范的纯Java对象,没有增加别的属性和方法。例如:publicclassUser{73 第四章系统总体设计privatelongid;privateStringname;publicvoidsetId(longid){this.id=id;}publicvoidsetName(Stringname){this.name=name;}publiclonggetId(){returnid;}publicStringgetName(){returnname;}}持久对象实际上必须对应数据库中的entity,所以和POJO有所区别。比如说POJO是由new创建,由GC回收。但是持久对象是insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库Connection之中,Connection关闭以后,持久对象就不存在了,而POJO只要不被GC回收,总是存在的。由于存在诸多差别,因此持久对象PO(PersistentObject)在代码上肯定和POJO不同,起码PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要PO在使用上尽量和POJO一致,对于程序员来说,他们可以把PO当作POJO来用,而感觉不到PO的存在。而Hibernate是从PO实例中取values的,所以即使Session关闭,也一样可以get/set,可以进行跨Session的状态管理。在分多层的应用中,由于持久层和业务层和web层都是分开的,此时Hibernate的PO完全可以当作一个POJO来用,也就是当作一个VO,在各层间自由传递,而不用去管Session是开还是关。如果你把这个POJO序列化的话,甚至可以用在分布式环境中[16][17]。在数据库操作中,使用了数据访问对象DAO模式(DataAccessObject)。在目前数据库的使用环境中,根据数据源不同,数据访问也不同。根据存储的类型(关系数据库、面向对象数据库、文件等等)和供应商实现不同,持久性存储(73 第四章系统总体设计比如数据库)的访问差别也很大。许多J2EE应用程序需要在一定程度上使用持久性数据。对于许多应用程序,持久性存储是使用不同的机制实现的,并且用来访问这些不同的持久性存储机制的API也有很大的不同。应用程序使用实体bean(这里应该是指BMP的bean,CMP的bean已大大降低了与RDBMS的耦合)的分布式组件来表示持久性数据,或者使用JDBCAPI来访问驻留在某关系数据库管理系统(RDBMS)中的数据,这些组件中包含连接性和数据访问代码会引入这些组件与数据源实现之间的紧密耦合。组件中这类代码依赖性使应用程序从某种数据源迁移到其他种类的数据源将变得非常麻烦和困难。当数据源变化时,组件也需要改变,以便于能够处理新类型的数据源。因此,在数据库的使用中,诸如bean管理的实体bean、会话bean、Servlet等组件往往需要从持久性存储数据源中检索数据,以及进行数据存储等操作。根据产品供应商的不同,持久性存储API差别也很大,这些API和其能力同样根据存储的类型不同也有差别,这样存在以下缺点,即访问这些独立系统的API很不统一。组件需要透明于实际的持久性存储或者数据源实现,以便于提供到不同供应商产品、不同存储类型和不同数据源类型的更容易的移植性[18]。在使用DAO的模式中,使用数据访问对象(DAO)模式来抽象和封装所有对数据源的访问。DAO管理着与数据源的连接以便检索和存储数据。DAO实现了用来操作数据源的访问机制。数据源可以是DBMS,LDAP,File等。依赖于DAO的业务组件为其客户端使用DAO提供更简单的接口。DAO完全向客户端隐藏了数据源实现细节。由于当低层数据源实现变化时,DAO向客户端提供的接口不会变化,所有该模式允许DAO调整到不同的存储模式,而不会影响其客户端或者业务组件。重要的是,DAO充当组件和数据源之间的适配器,结构如图4-1所示DAO模式中各种关系的类图。图4-1 DAO模式中各种关系的类图73 第四章系统总体设计其中BusinessObject(业务对象)代表数据客户端,正是该对象需要访问数据源以获取和存储数据。DataAccessObject(数据访问对象)是该模式的主要对象。DataAccessObject抽取该BusinessObject的低层数据访问实现,以保证对数据源的透明访问。BusinessObject也可以把数据加载和存储操作委托给DataAccessObject。DataSource(数据源)代表数据源实现。数据源可以是各RDBMSR数据库,OOBMS,XML文件等等。ValueObject(值对象)代表用做数据携带着的值对象。DataAccessObject可以使用值对象来把数据返回给客户端DataAccessObject也许会接受来自于客户端的数据,这些用于更新数据源的数据在值对象中来传递。在使用DAO模式时,可以基于如下几种方式来使用[19]。第一种是自动DAO代码产生策略。因为每个BusinessObject对应于一个特殊的DAO,因此有可能建立BusinessObject,DAO和低层实现(比如RDBMS中的表)之间的关系(映射)。一点这些关系(映射)已经建立,我们就可以编写与应用程序有关的代码生成的简单工具了。其中的工具可以产生该应用程序需要的所有DAO代码。如果DAO需求很复杂,我们可以采用第三方工具,这些工具提供对象到RDBMS数据库的关系映射(这里指的是前面提到的ORM工具,全称是ObjectRelationMapping,目前成熟的ORM工具有很多,如Hibernate,OJB,Torque,TopLink等等)。这些工具通常包含GUI工具来把业务对象映射到持久性存储对象,并且因而定义中间DAO。一旦这些映射完成,这些工具会自动地生成代码,并且也许会提供其他增值功能,比如结果缓冲、查询缓冲、与应用程序集成,以及与其他第三方产品(比如分布式缓冲)地继承,等等。(增值服务:Torque提供了结果缓冲,Hibernate提供了对Oracle数据库SQL指令的优化,OJB提供JDOAPI、OMDBAPI)。第二种是数据访问对象的工厂策略。通过调整抽象工厂和工厂方法模式,DAO模式可以达到很高的灵活度。当低层存储不会随着实现变化而变化时,该策略可以使用工厂方法模式来实现该策略,以产生应用程序需要的大量DAO,如图4-2是工厂方法模式下的类图。73 第四章系统总体设计图4-2 工厂模式下的类图当低层存储随着实现变化而变化时,该策略可以使用抽象工厂方法模式而实现。如图4-3所示是抽象工厂方法模式的类图。图4-3 抽象工厂模式下的类图使用DAO模式的优点是:l启用透明性,业务对象可以是使用数据源,而无须了解该数据源实现的具体细节。访问是透明的,原因是实现被隐藏在DAO的内部。l启用更容易的迁移,73 第四章系统总体设计DAO层使应用程序更加容易地迁移到一个不同的数据库实现。业务对象不了解低层数据实现。因而,该迁移只涉及对DAO层的变化。更进一步说,如果使用工厂策略,则有可能为每一个低层存储实现提供一个具体工厂实现。在这种情况下,迁移到不同的迁移实现意味着给应用程序提供一个新的工厂实现。l减少业务对象中代码复杂度,由于DAO管理所有的数据访问复杂性,它可以简化业务对象和其他使用DAO的客户端中的代码。所有与实现有关的代码(比如sql语句)都被包含在DAO中,而不是包含在业务对象中。这样做提高了代码的可读性,已经代码生产效率。l把所有的数据访问集中到一个独立的层,因为所有的数据访问操作现在被委托给DAO,所有单独的数据访问层可以被看作把数据访问实现与应用程序中的其他代码相隔离的。这种集中化使应用程序更容易地维护和管理。l不适用于容器管理的持久性,由于EJB容器用容器管理的持久性(CMP)来管理实体bean,该容器会自动地服务所有的持久性存储访问。使用容器管理的实体bean的应用程序不需要DAO层,因为该应用程序服务器透明地提供该功能。然而,当需要组合使用CMP和BMP时,DAO仍旧有用处。l添加其他层,DAO会在数据客户端和数据源之间创建其他的对象层,其中该数据源需要被设计和实现以便于权衡该模式的好处。但是选择本方法也会带来额外的开销。l需要类层次设计,在使用工厂策略时,我们需要设计和实现具体工厂的层次,以及这些工厂产生的具体产品层次。如果能够确保这种灵活性,则有必要考虑这种额外的工作。这样做会增加设计的复杂性。然而,在实现该工厂策略时,你可以首先考虑工厂方法模式,然后再根据需要过渡到抽象工厂[20]。一个数据库是一个结构化的数据集合。它可以是从一个简单的销售表到一个美术馆、或者一个社团网络的庞大的信息集合。如果要添加、访问和处理存储在一个计算机数据库中的数据,你就需要一个稳定的数据库。民办四川天一学院现在已经实施完全学分制,学生的学籍管理年限最长为五年,每年招生人数3000人左右,在校生人数在8000人左右,在选课时同时在线人数为3000人次左右,为此,宜选用大型数据库Oracle管理系统。操作系统为WINDOWS通用操作系统,用户在远程登陆选课系统进行选课操作。选用Oracle数据库主要是其自身的特点以及高等职业教育学分制教学管理的现实要求所决定的:l73 第四章系统总体设计Oracle支持大数据库、多用户的事务处理。Oracle支持最大数据库,这样可以充分利用硬件设备,以便容纳跨年度的学生选课信息,Oracle支持大量用户同时在同一数据上执行各种数据应用,并使数据占用最小,保证数据一致性,系统维护的性能高。Oracle数据库每天24小时连续上作,正常的系统操作(如个别情况计算机系统出现故障)不会中断数据库的使用。lOracle具有网络信息管理的特点,Web开发和实施过程升级水平高,Oracle提供了一些新的功能,如高速缓存技术,大幅提高Web站点的性能。lOracle具有高移植性、可兼容性和连接性,Oracle软件自从问世以来,便可以在微机、小型机、中型机、大型机等许多不同的操作系统上运行,以致Oracle上所开发的应用移植到任何操作系统,只需很少修改或不需修改。Oracle软件与行业标准相兼容,包括许多上业标准的操作系统,所开发应用系统可在任何操作系统上运行,可连接性是指Oracle允许不同类型的计算机和操作系统通过网络可以共享信息。l学分制的选课制以及弹性学分制决定了教学管理的复杂性,数据量大、网络管理要求高以及跨多个年度的数据处理问题等,要求学分制数据管理必须使用大型网络数据库管理。强大的SQL语言功能以满足DBA数据管理员对学分制复杂数据的处理、维护以及远程教学管理的要求。l实用的用户程序,使得Oracle数据的导入与导出处理非常方便[20]。4.3研究方法本课题从民办高等职业教育特点出发,分析目前高等职业教育的特点,找出优缺点,从教学管理过程中对高等职业教育的实际情况入手,分析目前高等职业教育人才培养模式与社会发展的实际情况、民办高等职业教育管理方式方法与实际操作的现实情况,探讨高等职业教育学分制改革问题、高等职业教育学分制教学管理系统的系统设计与实现的问题。73 第四章系统总体设计本课题主要从分析民办四川天一学院学分制教学管理的第一手实践资料入手,结合查阅相关文献资料、调查国内相关民办高等职业学校相似情况,找出目前民办学院在教学管理过程中的特点和有关学分制研究中的不足,了解国外私立学院教学管理的情况以及我国民办高等职业技术学院学分制的试行情况,考查国内民办高等职业教育学分制实行较为典型的学校进行实际考察,学习它们在高等职业教育学分制的运行过程中达到的效果、经验,分析它们存在的问题、不足,结合民办四川天一学院的自己的实际情况,根据民办高等职业技术教育的发展形势,针对职业教育学生实施学分制的特点,作相关的定性和定量分析,总结出民办高等职业教育学分制教学管理规律,系统地、综合地开发出相应的管理软件,确定数据处理方法、处理流程和系统编码,提供相关软件设计方案、设计原则以及数据格式给用户使用。4.4技术路线及特点4.4.1技术路线1.采用J2EE的框架结构,易于移植,易于扩展,易于维护,适应民办四川天一学院未来发展的情况。2.采用三层体系结构,表示层(Presentation)、业务逻辑层(Business)、数据存储层(Database)。在数据库管理层(Ddatabase)和用户界面层(Presentation)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件概念,将系统应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,负责客户机与服务器、服务器与服务器间的连接和通信,实现应用与数据库的高效连接,提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。本系统具体实现为表示层(客户浏览器端Browser)/业务逻辑层(应用逻辑服务器ApplicationServer)/数据存储层(数据库服务器DatabaseServer)三层结构。结构如图4-4所示[8]。图4-4B/S三层结构73 第四章系统总体设计4.4.2技术特点1.使用浏览器端/服务器(Browser/Server)三层架构技术,逻辑清析,结构科学合理。2.遵循J2EE框架,借助成熟的第三方开源软件Struts和Hibernate来实现系统功能,成本低,技术先进。3.项目管理方法是RUP统一软件开发过程。RUP(RationalUnifiedProcess)是一个面向对象且基于网络的程序开发方法论。RUP软件开发生命周期是一个二维的软件开发模型。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。如图4-5所示:图4-5 RUP迭代开发模型4.5用户界面的设计原则4.5.1设计原则l简易性,即界面的简洁易用,是要让用户便于使用、便于理解、并能减少用户发生错误选择的可能性,用户提供的信息尽可能由用户来选择录入而少用直接录入方式。73 第四章系统总体设计l用户的语言,即界面中要使用能反应用户本身的语言,而不是设计者的语言。要用友好性、人性化的提示,言语要友好,减少用户的挫折感,语言是主动式而非被动式,富于提示和启发。l记忆负担最小化,在设计界面时必须要考虑人类大脑处理信息的限度,人类的短期记忆也是有限的。所以对用户来说,浏览信息要比记忆信息更容易。l一致性。一致性是每一个优秀界面都具备的特点。界面的结构必须清晰且所用的术语要保持一致,风格必须与内容相一致,界面的色调字体也要保持一致。l利用用户的熟悉程度。设计的界面要充分利用用户对大多数应用的熟悉程度,帮助用户通过已掌握的知识来使用界面。窗口的布局、色彩的搭配、字体风格等方面的设计应遵守业界的标准或惯例。l从用户的观点考虑。想他们所想,做他们所做。用户总是按照他们自己的方法理解和使用。在界面设计中采用以用户为中心的设计方法(UserCenteredDesign),让用户真正参与到界面设计当中来。在最终界面设计中体现用户的想法,是设计出让用户满意的用户界面的关键。l排列分组。一个有序整齐的排列分组界面能让用户轻松的使用。如果您非要把“复制”和“粘贴”功能放在“工具”菜单项里就不合适了(应该放在“编辑”菜单项里)。在实际设计中同样可让用户参与进来,利用可用性工程中卡片分类的方法了解用户所期待的信息结构。l安全性,用户能自由的对界面上的每一项做出选择,且所有选择都是可逆的。在用户做出危险的选择时有信息提示是减少用户错误的有效方法。l人性化。高效率和用户满意度是人性化的体现。应具备熟练用户和新手用户两种界面,即用户可依据自己的习惯定制界面,并能保存设置。最好能设计出类似于Windows操作系统的自适应菜单项。根据用户的操作来判断是熟练用户还是新手用户即而给出适合于用户的用户界面[7]。4.5.1用户人机界面设计l整体设计风格与民办四川天一学院网站的设计风格一致。l各模块功能放于同一WEB页面,各角色进入本系统后所有操作功能在本WEB页面内能够全部完成。l73 第四章系统总体设计数据输入时,数据的录入要少,大部分要用下拉列表来实现,这样可以减少录入错误。l涉及到学生的大量的数据时,采用数据导入与导出功能。4.5.2用户权限设计根据教学管理工作的实际需要,及学院管理多校区,模块化的管理特点,民办四川天一学院教学管理信息系统的用户权限设计为五种:l管理员的权限:具有所有权限,数据维护,账号设置、删除。l教务处管理人员和学院各系部教学管理人员权限:具有课程处理权限、教学大纲处理权限、教学计划处理权限、教师处理权限、教学处理权限、选课处理权限、教务处理权限、成绩处理权限、教材权限处理权限。l学院领导及学院各处室领导权限:信息查询、统计、浏览、打印、数据导出的权限。l教师权限:查询、修改教学计划、教学大纲、教学进度表,授权成绩输入、打印、查询教学情况,查询教学课时酬金。l学生权限:具有添加、修改特定个人信息以及查询成绩、打印成绩权限。73 第五章 数据库设计第一章数据库设计5.1数据库的设计数据库设计是民办四川天一学院教学管理信息系统的设计核心技术内容,是在特定的数据库模式下,建立数据库应用系统,使之能够有效地存储数据,满足用户的实际应用需求。数据库要满足学院四个校区的教学管理需求,数据结构和数据库应该充分考虑到学院教学管理的发展变化的状况,同时又充分满足四川天一学院组织机构的各级管理要求,使后续系统开发方便、快捷,系统开销小,易于管理和维护等特点。数据库中主要包括课程基本情况表、教学计划基本信息表、执行计划基本信息表、教材基本信息表、教师基本信息表、学生基本信息表、选课基本信息表、成绩基本信息表等数据管理。1.课程基本信息表:学院所开设的任何一门课程,在本表中有基本情况数据。2.教学计划基本信息表:各专业教学计划由课程组成,在本表中有学生在其三年的学习过程中所要学习的课程。3.执行计划基本信息表:各专业教学的执行计划中包含着教学执行情况的基本信息,包含课程、教材、教师、学生信息。4.选课基本信息表:记录学生选课信息。5.成绩基本信息表:记录学生成绩信息。6.教师基本信息表:记录专职教师、行政兼职教师、外聘兼职教师情况。7.学生基本信息表:记录学生基本情况信息。5.2数据库编码设计与方法5.2.1数据库编码设计73 第五章 数据库设计数据库代码设计的过程是根据需求分析中所做的对处理事务对象的代码化,以方便利用计算机进行信息处理,根据信息系统的使用要求和决定系统方案时所确定的代码化的对象,分别对各个对象做出的专门代码设计。设计过程中首先确定要进行编码的对象,再进行对象的特征分析,确定代码设计方案,最后形成对象代码[28]。5.2.2数据库编码设计原则与方法5.2.2.1代码设计原则在学院教学管理过程往往存在实物与编码不对应现象,也存在不同系统中编码方式与内容不一致的情况,或者存在着编码过长,使用不方便等情况。在设计编码时,首先要确定代码的使用范围和使用时期,分析代码的具体特征、内容和含义,根据各种代码类型的特点和用途,决定每个对象的编码,编码的原则应注意的要点是:l系统性:代码组织应该具有一定的系统性,便于分类和识别;l通用性:代码的结构要简单明了,位数要尽可能少;l实用性:代码要便于使用,容易记忆,与上级管理的相关环节相适应;l扩展性:代码要便于追加,追加后不引起系统的混乱;l效率性:代码系统应适宜于计算机处理,处理效率要高。5.2.2.2.代码设计方法根据代码设计的原则,综合教学管理各方面的条件,灵活地运用和设计,代码设计的方法使用数字码,数字编码的方法:l连续码:运用阿拉伯数字从数字0或1开始,按顺序编号表示学号等。这种码的特点是码位少,一项一个连续号。如果发生的数据是按照顺序的话,则追加编码非常方便,只需要在连续号的最后添上一个号码即可。连续码简单,利用价值高。但不适宜于分类,同时项目较多时,码的组织和体系性较差。l组群码:组群码是对特定号码开始至另一特定号码为止的一定项目群,使用连续数字编号来表示项目的代码。如01-99表示院系代码,01代表经济系,02代表管理系等。这种码的特点是能够表示项目的分类体系,而且码的位数少,不太适应计算管理,一般用于需要分组而又表示有限对象的代码。l综合码:综合码是多种代码的组合,是用各种不同编码组合方式来表示操作对象的代码。如班代码、开课对象代码等,可以将年度代码、院系代码、层次代码、专业代码以及顺序标识码综合在一起进行编码。l73 第五章 数据库设计文字缩写码:文字缩写码是采用中文或英语26个字母以及阿拉伯数字进行综合编码[29]。5.2.3本系统中各对象的编码设计方案1.院系代码设计使用两位代码来表示院系编号:XX,如信息工程系,代码为05。2.专业代码设计使用5位代码来表示专业编号:XXXXX专业代码使用《四川省高职高专教育专业设置指南》中标准代码,如计算机软件专业,专业代码为09008。3.课程代码使用10位代码来表示课程代码:XXXXXXXXXX其中前两位是院系代码,接下来的5位是专业代码,再接下来的一位代码表示课程性质:0:公共必修1:专业必修2:专业选修3:公共选修4:实践类课程最后两位是流水号,由各系部编制课程编号。如《计算机文化基础》课程,课程代码为0509008001,05表示信息工程系,09008表示计算机软件专业的课程,0表示公共必修,01表示本课程在信息工程系课程体系中的流水号。5.3数据库E-R图E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系。本系统根据设计规划出的实体有课程实体(courses),教学计划实体(teachingplans)等,建立本系统的E-R图,如图4-1所示。73 第五章 数据库设计图5-1 数据库E-R图5.4部分数据库表民办四川天一学院教学管理信息系统涉及数据库表较多,这里不全部列出,仅提供部分数据库表设计格式。表5-1课程表(course)数据库编号:3基表编号:3基表英文名称:course基表中文名称:课程表字段编号英文字段名中文字段名字段类型备注1courseid课程号(由2位院系+5位专业+1位课程性质+2位流水号)Varchar(10)Notnull2coursename课程名Varchar(45)Notnull3type课程性质Varchar(8)Notnull4credit学分Integer(2)Notnull5period学时Integer(4)Notnull73 第五章 数据库设计表5-2教师表(teacher)数据库编号:3基表编号:6基表英文名称:teacher基表中文名称:教师表字段编号英文字段名中文字段名字段类型备注1teacherid教师号Varchar(6)Notnull2teachername教师名Varchar(10)Notnull3title职称Varchar(10)Notnull4department所在单位Varchar(10)Notnull5fulltime专兼职布尔Notnull6password密码Varchar(10)Notnull表5-3授课表(lesson)数据库编号:3基表编号:7基表英文名称:lesson基表中文名称:授课表字段编号英文字段名中文字段名字段类型备注1id授课号Integer(10)Notnull2teacherid教师号Varchar(6)Notnull3courseid课程号Varchar(6)Notnull表5-4学生表(student)数据库编号:3基表编号:8基表英文名称:student基表中文名称:学生表字段编号英文字段名中文字段名字段类型备注1studentid学生号Varchar(12)Notnull2studentname学生名Varchar(10)Notnull73 第五章 数据库设计3departmentcode院系号Varchar(2)Notnull4specialitycode专业号Varchar(10)Notnull5classid班级号Varchar(10)Notnull6sex性别BooleanNotnull7telephone电话Varchar(11)8email电子邮箱Varchar(20)9password密码Varchar(10)Notnull表5-5教学计划表(teachingplan)数据库编号:3基表编号:4基表英文名称:teachingplan基表中文名称:教学计划表字段编号英文字段名中文字段名字段类型备注1teachingplanid教学计划代码Varchar(9)Notnull2grade年级Varchar(4)Notnull3speciality专业代码Varchar(2)Notnull4courseid课程号Varchar(6)Notnull表5-6成绩表(score)数据库编号:3基表编号:10基表英文名称:score基表中文名称:成绩表字段编号英文字段名中文字段名字段类型备注1id序号IntegerNotnull2studentid学生号Varchar(12)Notnull3sourseid课程号Varchar(10)Notnull4score成绩Varchar(3,2)73 第六章 系统实现与部署第一章系统实现与部署6.1系统的实现在Eclipse与MyEclipse搭建的开发平台上,借助Struts实现了B/S三层结构,利用Hibernate实现了数据的持久化,因此,能够较快捷地实现的系统的各子系统功能。6.1.1Struts在本系统中的应用及实现Struts包含大量的Java库,可以分为基本框架、JSP标签库、Tiles插件、Validator插件。基本框架提供了核心MVC功能,基本框架的基础部分为控制器Servlet:ActionServlet。基本框架的其余部分由应用程序要扩展的基类和若干实用程序类构成。基类中最重要的是Action和ActionForm类。Action类被ActionServlet用来处理特定请求,ActionForm类被用来捕获HTML表单中的数据,同时还用来将数据返回视图层以生成页面[22]。Struts中最重要的文件是它的配置文件,Struts配置文件基于XML,其格式由文档类型定义(DTD)控制,该文件指定了配置文件中配置标记如何排序、需要哪些设置等。本系统的Struts的配置文件如图6-1所示,图中显示出了JSP页面、ActionForm类、Action类及定义的模板页面。Struts配置文件Struts-config.xml代码定义格式如下所示,可视化配置文件如图6-1所示。73 第六章 系统实现与部署……图6-1 Struts配置文件在本系统中,为达到页面风格一致与统一,各个功能模块的主页面设计相同,每个页面被划分为四个区域,大标题域(Head),版权域(CopyRight),功能导航域(Navigator)及重要的内容显示域(Body)。首先利用Struts的Html标签库,设计了标题页面、导航页面、版权页面,如图6-2所示为标题页面。73 第六章 系统实现与部署图6-2用于所有功能模块页面的标题页面Struts附带有Tiles子框架[23],Sturts中的Tiles插件可以生成页面框架。Tiles是功能强大的JSP模板框架,它能够简化显示(HTML)代码的重复使用。使用Tiles,可以将JSP页面分解为单个“Tiles”或部分,然后可将各部分粘合在一起创建一个组合页面。与Struts框架的设计原理相似,Tiles也能很好地重复使用视图代码。在图6-1Struts配置文件中,所有以“-definition”结尾的文件都是Tiles的框架文件。如图6-3,6-4是使用Tiles框架生成的两个页面,两个页面的页头、页脚、左侧导航栏均是由模板创建的,主体部分才是新生成的。图6-3 教学管理人员添加教师页面73 第六章 系统实现与部署图6-4 教学管理人员添加课程页面Struts附带有多个JSP标签库,用于在JSP中编写视图逻辑。如图6-5所示,是使用JSP标签库生成的视图。图6-5 四川天一学院教学管理信息系统首页Struts附带有Validator子框架以执行数据验证。Validator提供了一个功能强大的可以在服务器端和客户端(浏览器)执行数据验证的框架。每次验证都在外部XML文件中配置,这样无需在应用程序中进行硬编码,就可以用此方式将验证添加到应用程序中[29]。73 第六章 系统实现与部署6.1.2Hibernate在本系统中的应用及实现在本系统的开发过程中,每个数据库表都对应着一个Java对象,利用POJO技术实现每个Java对象的持久化。使用Hibernate,要配置好Hibernate.cfg.xml文件,首先配置数据库连接,如图6-6所示数据库连接配置。图6-6 Hibernate.cfg.xml文件中数据库连接配置再将系统中Java对象依次配置进Hibernate.cfg.xml文件中。本系统所用Java对象如图6-7所示。图6-7 系统中的Java对象下面的代码是课程(course)对象的映射文件,将课程表中每个字段映射为Java对象(course.java)的属性域。73 第六章 系统实现与部署73 第六章 系统实现与部署将数据库中的表与系统中的Java对象一一映射起来,如图6-8所示为Java对象的映射文件。图6-8 系统中Java对象的映射文件73 第六章 系统实现与部署通过以上配置文件,就将数据库的表中字段对应于一个Java对象的属性域,将对此Java对象的数据库操作(更新、添加、删除、查找)封装起来,通过DAO方式,就可以实现Java对象的持久化操作,如图6-9所示为course对象所拥有的对数据库的操作函数。图6-9 course对象所拥有的对数据库表的操作函数6.2系统部署本系统开发完成后,在服务器上安装了ApacheTomcat5.x的WEB服务,并集成到开发环境中,如图6-10所示。73 第六章 系统实现与部署图6-10Exlipse开发环境中集成了ApacheTomcat5.xWEB服务运行ApacheTomcat5.x上的WEB服务,如图6-11所示。图6-11ApacheTomcat5.x上运行的WEB服务73 第六章 系统实现与部署WEB服务启动后,就可以发布将本系统发布到服务器上,如图6-12所示。图6-12发布系统73 总结总结民办四川天一学院教学管理信息系统采用三层结构设计,系统包含多子系统,各系统功能较为完善,实用性强,适合学院实际情况,本系统采用模块化设计,维护方便,扩展性强,易推广,对提升高职高专院校教学管理信息化水平,起到良好的促进作用。高职高专教育教学管理信息化己成为高等学校教育改革和发展的必然趋势。高职高专学教学管理有其特殊的复杂性,管理难度大,需要有比较完善的教学管理信息系统作支撑。本论文通过对高职高专教学管理信息系统的研究,设计出适合高职高专教学的管理信息系统。该系统采用B/S三层结构设计,将数据的表示、处理、存储分开,系统逻辑结构清晰,数据安全可靠。本系统中大部分技术的实现采用了开源软件,大大降低了开发成本与运行成本。本系统实现对课程管理、教学计划管理、执行计划管理、教材管理、教师管理、选课管理学生管理中的关键信息进行处理,能够确保在教学过程中,实现全部工作流程的信息化处理。本系统应用于日常教学管理,将信息融入日常的教学管理工作中,提高了管理效率。本系统的研究成果为准备实行教学管理信息化的学院提供了一套比较完整的、成本低的实现教学管理的办法、系统设计原则和技术实施方案,使得教学管理人员可以从日益繁重、重复的教学管理上作中解脱出来,从而更专注于教育质量的提高与教学方法的改进,同时也为高职高专教学管理的发展提供了技术保障。该系统的部分模块已在民办四川天一学院教学管理工作中正在测试运行,系统运行稳定,基本能满足现有教学管理工作需求。73 电子科技大学硕士学位论文致谢首先要感谢我的导师黄迪明教授,在论文的撰写过程中,黄老师自始至终给予了我各种悉心的指导和帮助,黄老师严谨的治学态度给让我在学习、工作中受益无穷。在此,对黄迪明老师表示我最诚挚的感谢。我还要感谢廖昌明老师,他希望我能够在工作和学习两者间形成一个很好的平衡,并为我的开发工作提供了大量的信息与技术指导,感谢他为我提供的指导和帮助。感谢民办四川天一学院的各位领导和学院的各位老师,给予我在工作、学业和项目开发上的各种帮助与支持,并感谢民办四川天一学院提供了硬件条件进行测试和开发,从而使我能顺利的完成论文的撰写工作。感谢师长们的关心,也感谢同事和朋友们给予我的帮助。还要向百忙中挤出宝贵时间为我评审论文的老师表示衷心的感谢!我特别要感谢我亲爱的妻子无私的奉献和对我的工作、学习的支持。最后,我感谢所有给予我关心和帮助的老师、家人、同事和朋友。73 电子科技大学硕士学位论文参考文献[1]孙瑛,刘继洲.高校日常教学管理信息系统的功能结构设计.内江科技,2006,27(3):21-21[2]刘霓,钱晓群,何虎.高校教学管理信息系统的设计原则与开发组织.西南交通大学学报(社会科学版),2005,6(5):59-62[3]岳辉,马映登.基于WEB方式的职业学校教学管理信息系统设计.现代教育技术,2005,23(2):38-39[4]刘三星.基于校园网的教学管理信息系统的设计与实现.科学技术与工程,2005,5(22):175-178[5]霍文杰,王鑫.开放实验教学管理信息系统的研究与实践.沈阳航空工业学院学报,2005,22(4):54-56[6]文胜.基于WEB的工作流技术在高校教学管理信息中的应用.电脑知识与技术,2005,15(23):69-71[7]熊霞.基于J2EE的网络教学管理系统的开发研究.浙江万里学报,2006,19(22):37-40[8]项洁,夏卓群.基于Rose和J2EE的网络教学管理系统.长沙电力学院学报(自然科学版),2005,20(4):60-63[9]吴斌.开发基于J2EE的教务管理信息系统.上海应用技术学院学报,2004,4(3):228-231[10]吴秀娟,曹庆华.教学管理系统中身份认证的设计与实现.沿海企业与科技,2006,73(3):160-162[11]Barry,D,Stanienda,T.SolvingtheJavaobjectstorage.Computer.1998,31(11):33-40[12]Vinoski,S.JavaBusinessIntegration.InternetComputing,2005,9(4):89-91[13]HuweiGuan;Ip,H.H.S;YanchunZhang;.Java-basedapproachesforaccessingdatabasesontheInternetandaJDBC-ODBCimplementation.Computing&ControlEngineering1998,9(2):71-78[14]Sakowicz,B;Murlewski,J;Labus,A;Napieralski,A.JWay-Model-DrivenJ2EEApplicationFramework..MixedDesignofIntegratedCircuitsandSystems,2007,9(3):21-23[15]Johnson,R.J2EEdevelopmentframeworks.Computer.2005,38(1):107-11073 电子科技大学硕士学位论文[16]中国计算机学会调职高专教育学组.高职高专教育2005版.北京:电子工业出版社,2005,1-67[17]陈华军.J2EE构建企业级应用解决方案(一).北京:人民邮电出版社,2002,56-76[18]陈华军.J2EE构建企业级应用解决方案(二).北京:人民邮电出版社,2002,174-196[19]Hall,Brown.Servlet与JSP核心编程,赵学良译.北京:清华大学出版社,105-110[20]刘洋.精通Hibernate.北京:电子工业出版社,2005,175-193[21](美)巴里希,林琪,英宇.J2EEWeb应用高级编程.北京:清华大学出版社,2004,205-310[22]PaulJ.Perrone,etal.J2EE构建企业系统-专家级解决方案.北京:清华大学出版社,2005,310-376[23]蔡剑.Java网络程序设计:J2EE(含1.4新功能).北京:清华大学出版社,2005,435-467[24](美)GregoryNyberg,RobertPatrickPaulB.精通BEAWebLogicServer——构建与部署J2EE应用的最佳策略.北京:水利电力出版社,2006,243-294[25](美)PeterKoletzkePaul,DorseyAvromFad.Oracle9iJDeveloper开发手册:构建J2EE应用程序.北京:清华大学出版社,2006,315-360[26](美)坎瓦思(Cavaness,C),孙江宏,杨继萍.JakartaStruts编程.北京:清华大学出版社,2006,329-433[27]闻涛.Struts网络编程例学与实践.北京:清华大学出版社,2006,311-358[28](美)PaulDorseyJosephR.Hudicka.Oracle8UML对象建模设计.北京:机械工业出版社,2006,145-187[29](美)凯里(Carey,J),卡尔森(Carlson,B).框架过程模式.北京:人民邮电出版社,2006,176-280[30](美)波利斯(Pollice,G.).小型团队软件开发:以RUP为中心的方法.北京:中国电力出版社,2006,334-398[31]WellsAprilJ.EverydayOracleDBA.OMG.2005,174-196[32]KimmelPaul.UMLDemystified.McGraw-HillOsborneMedia.2005,208-296[33]BorlandJbuilder.GettingStartedwithJava.Kingbook.2005,143-175[34]MarcoPistoia,DuaneF.Relle.Java2network.rtf.kingbook.2006,253-285[35]WilliamStanek.Java2.Kingbook.2006,231-268[36]樊晨晨.高等学校管理基本信息集.北京:北京大学出版社,1995,347-348[37]陈康.基于J2EE的远程教学管理系统的研究:[硕士学位论文73 电子科技大学硕士学位论文],南京:南京信息工程大学,2005,4-12[38]张彭良.成都农业科技职业学院教学管理系统设计:[硕士学位论文],成都:电子科技大学,2005,1-6[39]教育部发展规划司,教育部教育管理信息中心.教育管理信息化标准.北京:人民邮电出版社,2002,347-34873'