基于SSH框架的高校学生信息管理系统的设计 以宁波大红鹰学院为例 陈叶青 (宁波大红鹰学院教务处,浙江宁波315175) 摘要:随着高校招生规模的不断扩大,在校生数量迅猛增长,为解决传统学生信息管理模式不适应当前工作 的问题,基于各种技术的信息管理系统不断出现。深入分析了当前高校学生信息管理工作的特点,立足学生信息管 理工作的实际需要。结合信息管理系统技术的最新发展,以软件工程学为指导思想,设计并实现了一个基于SSH框 架的高校学生信息管理系统。 关键词:学生信息管理:SSH:信息管理系统 中图分类号:C,434 文献标识码:A 文章编号:1672—78O0(2Ol1)l1—0o85—03 基于上述原因,构建一个符合高校实际工作需要的学生信 1问题的提出 息管理系统,已是当务之急。这对高校全面实现信息化,提高管 理水平和工作效率具有重要的现实意义。 随着高校招生规模的不断扩大,应届和往届学生的数量急 剧增加,有关学生的各种信息也成倍增长。以宁波大红鹰学院 2系统需求分析 为例,2011年本专科招生人数总共6 800余人,截至2011年 l0月31日,学校共有在校生17 000余人,学生数的快速增长 系统的总体目标是实现学生信息管理工作的无纸化、网络 必将带来庞大的学生信息量。面对如此庞大的信息量,传统的 化和系统化,实现部门间的数据共享,提高工作效率和信息利 学生信息管理手段已经越来越不适应学校发展的需要,主要 用率.系统总体需求如下: 表现在以下几个方面: (1)系统设计成一个Web信息平台,校园网内的用户,通 (1)以手工操作为主的学生信息管理工作方式,存在诸多 过分配的权限账户。都可以访问这个系统。 弊端。该学院在每年的招生录取工作流程中,前期工作采用全 (2)对收录的各种学生信息作集中存储管理,收录信息要 国高校招生远程录取系统,招生录取的准确性和工作效率都 覆盖日常学生管理工作中所需的全部信息,如个人基本信息、 有保障;但在后期工作中,对于录取数据的处理、新生报到和学 学籍信息、课程成绩信息等。 生学籍数据处理等一系列工作环节。仍是依靠手工操作来完 (3)提供学生信息的统计分析功能,为学校管理者和决策 成。事实证明,以手工操作为主的学生信息管理方式,存在以下 者提供多层面的统计信息。这些信息包括:学生基本信息的分 弊端:工作效率低;各部门数据难以协调;数据质量不高,数据 类统计,如不同年龄段的人数和比例:学生各f-j功课成绩的分 准确性没保障。 类统计,如某科成绩的分布统计;其他如学生的选修课信息、专 (2)现有系统相互独立,缺乏信息共享。高校学生信息管理 业信息等,也列入分析统计功能之中。 工作,涉及众多部门。当前各部门使用的学生信息管理软件,彼 (4)提供学生档案管理功能,提高学生档案的管理水平和 此相互独立,导致部门不能高效地进行信息共享和协同工作, 效率。 造成信息孤岛现象。 (5)合理分配各部门问的权限,保证各部门协同工作的同 (3)学校的信息化进程,迫切要求建设功能统一的学生信 时,要确保信息数据的安全性和保密性。 息管理系统。近年来,随着高校校园网基础设施的逐步完善,学 (6)系统具有较好的可扩展性、可移植性和可维护性。 校信息化进程进入了一个较快的普及阶段,这要求在学生信 总之,能够通过该学生信息管理系统,对学生信息进行实 息管理工作中,采用功能完善统一的信息管理系统。 时跟踪,做到信息准确采集,科学统计和快速查询,提高学生信 收稿日期:201 1-09—30 作者简介:陈叶青(1981一),女,浙江建德人,宁波大红鹰学院教务处研究实习员,研究方向为教学管理。 2011年第11期c下半月)软件导刊.教育技术s51 息管理工作的效率。 JDBC API进行了轻量级封装,负责Java对象的持久化工作,在 MVC模式中位于持久化层,封装了数据访问的细节,使业务逻 3用户分析 宁波大红鹰学院涉及学生管理工作的部门主要有学生处、 辑层可专注于实现业务逻辑。它不仅负责Java对象到数据库 表的映射,还提供数据查询与检索的能力,可大大减少在SQL 与JDBC手工数据处理上的开发时间。 另外,Hibernate拥有一个功能强大的查询语言(HQL,Hi. 教务处、各系部和财务处,以及后勤处。在学生管理工作上,学 校要求在各部门部署统一的学生信息管理系统,要达到这一要 求,如何合理划分用户角色及其权限是一个难题。根据上述情 况,本系统采用基于角色的访问控制(Role—Based Access Con. trol,RBAC)机制 ’2],引入角色概念,来解决用户(动作主体)与 权限(对对象的操作)之间的关系(如图1所示),按照RBAC, bernate Query Language),使用HQL可以避免使用JDBC时的 一些弊端。首先,这种语言是面向对象的,查询的是持久化对象 而不是数据库表中的记录,支持继承、多态、关联等关系,不需 要再编写繁琐的SQL语句。其次,查询结果直接存放到List 所有权限授予角色而不直接授予用户。 角色.等级 图1 l AC模型中3种成员之间的关系 4 SSH框架简介 4.1 Struts简介 Struts是Apache软件基金会组织开源项目Jakarta的一个 子项目,旨在改进和提高JSP、Servlet、标签库以及面向对象的 技术水平,为开发人员提供一个开发MVC模式的应用框架 。 4.2 Spring简介 Spring是一个轻量级的loC和AOP容器框架,是为简化企 业级系统开发而诞生的。Spring可以用简单的JavaBean来实现 那些以前只有EJB才能实现的功能。不仅是服务端开发能从 中受益,任何Java系统开发都能从Spring的简单、可测试和松 耦合特征中得到好处。Spring具有以下特点 ]: (1)从大小和系统处理开支上说Spring都算是轻量级的, Spring是非侵入性的(即基于Spring开发的系统中的对象一般 不依赖于Spring的类),并且独立于各种应用服务器,并不需要 有EJB容器支持的重量级应用服务器。 (2)Spring提倡使用反转控制(IoC)来实现松耦合。 (3)Spring对面向切面编程提供了强大支持,系统对象只 做业务逻辑,不用关心其他系统问题(如日志和事务支持)。 (4)Spring是一个容器,可以通过配置来设定Bean是单一 实例、还是每次请求产生一个实例,并且设定它们之间的关联 关系。 (5)Spring实现了使用简单的组件配置组合成一个负责的 系统。在Spring中,系统中的对象是通过Xml文件配置组合起 来的:并且Spring提供了很多基础功能(事务管理、持久层集成 等),这使开发人员能够专注于开发应用逻辑。 4.3 Hibernate简介 Hibernate是一个非常优秀的、成熟的0RM开源框架,对 lab 2011年第11期{下半月)软件导刊.教育技术 中,无需再次封装。再次,HQL独立于数据库.对不同数据库根 据方言dialect属性的配置自动生成相应数据库的SQL语句 开发人员掌握一种HQL即可,无需掌握不同数据库SQL语句 的差别。 5系统功能模块划分 依据系统需求分析的结果,结合实际开发条件,将系统划 分为两大部分:学生信息系统平台和各业务子模块。系统平台 承载各类业务子模块,为子模块提供统一的用户模型、站内通 知、和查询接口等功能。系统平台具有开放性.可以动态加载或 删除各业务模块。系统平台功能模块划分如图2所示。 学生信息管理系统首页 信 新 基 成 学 奖 用 系 息 生 太 绩 籍 惩 户 统 发 报 信 管 管 管 管 管 布 到 息 理 理 理 理 理 子 子 管 子 子 子 系 系 理 系 系 系 统 统 子 统 统 统 系 统 图2系统功能模块 6系统流程分析 本系统提供的主要功能有新生报到、学生基本信息管理、 学生考试成绩管理、学籍管理和奖惩管理,各功能模块的管理 员为相关部门工作人员;系统会为各级管理员创建相应的角 色,并分配权限,系统几个主要功能模块中的新生报到和学生 信息员操作流程如图3、图4所示。 7数据库分析和设计 根据宁波大红鹰学院各学生信息管理部门在实际工作中 所处理的学生信息,及其处理过程,得出数据流程如下: 7.1信息发布数据流程 信息发布的数据流向为:信息发布员提交信息发布申请 单,内容包括要发布的信息说明、发布日期;然后进入信息编辑 页,调用信息模板库中的模板,编辑出要发布的信息网页;申请 单和信息页一起提交,进入信息审核阶段,由信息审核员对内 图3新生报到流程 图4学生信息管理员操作流程 容进行审核,若审核通过,该信息就在网站上公布,否则退回申 请。信息审核员的操作会被系统记录到日志库中。 7.2新生报到数据流程 新生报到的数据流程为:新生持信息卡(一卡通)刷卡报 到,系统查询各院系信息库和新生信息库来核实学生信息,若 学生与信息库中信息一致,则修改新生库中的标志位,激活学 生状态:接下来学生的信息可进入缴费、绿色通道和宿舍分配 的处理流程,每个流程分别修改学生信息中的对应信息。所有 操作结束后,新生报到流程结束。 7.3学生基本信息数据流程 学生基本信息数据流程为:学生信息管理员,添加学生基 本信息到学生库,该操作会被记录到系统日志中;添加成功后, 查询添加的新生信息;若信息不符,则做信息操作修改,修改操 作会被记录到系统日志中。 通过对宁波大红鹰学院学生信息管理系统的数据库需求 进行综合、归纳与抽象,定义出15个主要实体: (1)学生(学号、姓名、曾用名、照片、性别、出生年月、身份证 号、健康状况、民族、籍贯、入学时间、报到时间、院系、学制、专 业、班级、学籍状态、校园卡、宿舍号、宿舍电话、手机、Email、考 生号、入学总分、生源所在地、原毕业学校、血型、身心障碍、特 长、家庭信息编号、备注)。 (2)家庭(编号、学号、住址、通信地址、邮政编码、联系电话)。 (3)家庭成员(编号、姓名、民族、政治面貌、关系、单位名 称、联系电话、Email、居住地、备注)。 (4)学籍变动(编号、变动类型、变动日期、变动来源、变动 取向、变动原因、变动说明)。 (5)入学报到表(登记号、学号、学费、住宿费、学杂费、绿色 通道、手续完毕)。 (6)学费(编号、年级、专业、学费、住宿费、学杂费、银行账 号)。 (7)成绩(学号、课程编号、成绩、学期、考试日期、是否补 考)。 (8)课程(课程编号、院系编号、专业编号、任课教师编号、 开课学期、课时、学分、课程属性、开课时间)。 (9)院系(院系编号、院系名称、院系级别、成立时间、院系 简介)。 (1o)专业(专业编号、专业名称、创立时间、专业性质、专业 简介)。 (11)宿舍(宿舍号、楼号、人数、实际住宿人数、入住生学号 序列、电话、IP列表、设备列表、设施列表)。 (12)权限(权限名、是否启动)。 (13)角色(角色编号、角色名、权限列表、是否有效)。 (14)用户(工作证号、姓名、类型、角色列表、所属部门、业 务描述)。 (15)新闻通告(新闻编号、标题、类型、内容、日期、发布部 门、发布人、审核通过、回收站)。 8系统体系架构 本系统涉及功能模块多,并且对可扩展性、可移植性和可 维护性也有较高要求,通过前文介绍的SSH框架原理可知, Strus、Spring、Hibernate的组合框架可以满足上述要求。因此,整 个系统体系分为4层:视图表示层、控制层、业务逻辑层和数据 持久层。其中Struts框架用来实现表示层和控制层,做到MVC 的分离,降低功能耦合;Spring框架用来实现业务逻辑层,并负 责系统整体架构的整合;Hibernate用来实现数据库持久层。 按照面向对象的软件设计流程.在系统设计实现环节,视 图部分的开发工具使用了Dreamweaver。ifrework,lfash以及 photoshop等软件。实现技术主要是CSS,HTML,Sturts标签等。 通过在2011年秋季学期开学初学生报到期间的使用,该系统 结构合理,功能较完备,基本满足了学生信息管理的各种需要。 参考文献 『1] CHOU SHIH—CHEN.An RBAC—based access control model for object-oirented systems offering dynamic aspect features[J].IEICE Transactions on Information and Systems,2005(9). [2]CRAMPTON J,LOIZOU G.Administ rative scope:a foundation for role—based administ rative models[J].Transactions on Information System Security(TISSEC),2003(2). [3]戎伟,张双.精通Struts—Java流行服务器、框架、工具及整合应用 (第一版)[M].北京:人民邮电出版社,2006. [4] 张桂元,贾燕枫.Sturts开发入门与项目实践(第一版)[M].北京: 人民邮电出版社.20o5. [5] 陈天河,等.Struts,hibernate,spring集成开发宝殿(第一版)[M]. 北京:电子工业出版社,2007. (责任编辑:邬江华) 2011年第11期(下半月)软件导刊.教育技术871