基于JAVA EE的毕业设计管理系统的设计研究

时间:2022-09-02 02:15:24

基于JAVA EE的毕业设计管理系统的设计研究

摘要:毕业设计是高等学校人才培养过程中不可或缺的重要环节,为了解决毕业设计环节中存在的不足,减少时间、空间上的限制,减轻教务管理人员、指导老师以及学生的负担,本研究以学院的毕业设计教学管理工作为依据,设计并实现了基于SSH框架的毕业设计管理系统。系统采用MVC设计模式,将表示层,业务逻辑层和控制逻辑层清晰地分离出来,各层次之间接口清晰,耦合度低,易于扩展。使用Struts框架、Spring框架和Hibernate框架方便地构建Web应用,提高系统设计与实现的效率。

关键词: 面向对象;SSH;MVC;毕业设计管理

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)19-4420-09

国外高校一般具有较大规模的稳定的技术队伍来提供服务与技术支持。国内高校信息化建设相对起步较晚。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内高校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。

随着Java EE的快速发展以及它拥有庞大的客户群的支持,Spring + Hibernate +Struts2架构已经逐渐成为企业级应用程序的首选技术。一个典型的Java EE应用,至少包括以下三部分:表现层、业务逻辑层和数据持久层。为了更容易地创建程序,必须要选择一种架构将上述的几个层次很好地连接在一起。目前在业界有不少比较成熟的架构,但Spring+Hibernate+Struts2架构方案既做到各层之间的无缝集成,又使各层技术高度隔离,它的可复用性高、灵活性强,技术更改容易,维护修改方便, 它凭借其在技术上的巨大优势成为业界的事实标准。

本研究主要为系统地、全面地学习软件开发过程以及各阶段组织的方法,通过应用合适的软件工具,从而达到高效、快速的目的;同时也为丰富系统开发设计思路,使用良好的系统架构模式,从而能进一步学习框架中各种设计模式的运用,研究框架组合给系统开发带来的优势。

1 系统需求分析

1.1 系统概述

基于Java EE的毕业设计管理系统是为高等院校的学生、教师、教辅工作人员提供教学管理的一个信息化综合平台。整个系统主要包括学生服务子系统、教师服务子系统、管理员服务子系统三大部分。

1.2 系统设计目标

1)为学生提供个人信息管理、课程管理、毕业设计选题管理、留言管理、申请管理等功能。

2)为教师提供个人信息管理、选题综合管理、毕业设计管理、审核管理、留言管理等功能。

3)为管理员提供个人信息管理、学生管理、教师管理、管理员管理、审核管理、系统设置等功能。

1.3 系统功能结构图及详细描述

1)总体功能模块

本系统主要包括三大模块,如图1所示:

图1 总体框架图

2)学生服务系统

学生服务子系统主要包括四大模块,如图2所示:

图2 学生子系统总体框架图

3)教师服务系统

教师服务子系统主要包括五大模块,如图3所示:

图3 教师子系统总体框架图

4)管理员服务系统

管理员服务子系统主要包括五大模块,如图4所示:

图4 管理员子系统总体框架图

2 系统总体设计

2.1 主要功能模块建模图

用户登陆:用户打开登陆界面,输入有效的用户名与密码,选择相应的身份,即可进入相应的子系统。如图5所示:

学生选课:学生登陆学生服务子系统后,选择“学生选课”菜单项,进入学生选课界面,如果不是选课时间,学生将不能选课;如果教师没有添加课程,学生也将不能选课。

学生毕业设计选题:学生登陆学生服务子系统后,选择“毕业设计选题”菜单项,进入学生选题界面,如果不是选题时间,学生将不能选题;如果教师没有添加选题信息,学生也将不能选题。如图6所示:

毕业设计流程管理:1) 管理员登陆系统开放教师与学生的权限。2) 教师登陆系统进行选题与选题资料的添加。3) 学生登陆系统进行选题与毕业设计作品上传。4) 教师登陆系统下载学生作品进行查看与打分。如图7所示:

教师管理用例图:是顶层用例图,其中包括个人信息维护、毕业设计管理、课程管理、留言管理等第二层用例。如图8所示:

毕业设计管理用例图:是第二层用例图,其中包括选题文件管理、选题学生信息查询、选题学生文件查询等第三层用例图。如图9所示:

主要用例描述:

用例编号(Number) :UC_01_01

用例名称(Name):添加毕业设计选题

简要说明 (Brief Description):主要是添加相应的选题信息到数据库中,供学生选择

执行者(Actors): 教师

前置条件(Pre-Condition):教师已登陆且现在是毕业设计选题添加时间

后置条件(Post-Condition):学生毕业设计选题启动

用例场景 (Use-Case Scenario):添加成功,给出上传成功的提示;添加失败,给出上传失败的提示。

事件流 (Flow of Event): 登陆教师服务子系统;打开添加毕业设计选题界面;填写名称、可选人数、难度等基本信息;选择要上传的选题说明文件;单击“添加”按钮,完成上传

用例编号(Number) :UC_01_02

用例名称(Name):审核学生自拟选题

简要说明 (Brief Description):主要是对学生自拟的毕业设计选题进行审核

执行者(Actors):教师

前置条件(Pre-Condition):教师已登陆且学生已提交自拟选题

后置条件(Post-Condition):学生现有毕业状态发生改变

用例场景 (Use-Case Scenario):审核通过,自拟选题将自动成为所属学生毕业选题,该学生将不能再选题;审核不通过,提示学生不通过原因,该学生还可以再提交自拟选题或选择现有毕业设计选题

事件流 (Flow of Event):登陆教师服务子系统;打开审核学生自拟选题界面;选择相应学生的申请记录,查看详细信息;填写审核意见;单击”通过”或"不通过“按钮完成审核

2.2 数据库设计

关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到第几范式来评价模式规范化的程度。范式有1NF、2NF、3NF、BCNF、4NF和5NF,其中1NF级别最低。 5NF级别最高。我们知道产生冗余和异常的两个重要原因是部分依赖和传递依赖。因为3NF模式中不存在非主属性对码的部分函数依赖和传递函数依赖,所以具有较好的性能。对于非3NF的1NF、2NF,其性能弱,一般不宜作为数据库模式,通常要将它们变成为3NF或更高级别的范式,所以我们在进行数据库设计的时候,至少要让关系模式达到3NF或更高级别。

1)物理模型图

我们通过PowerDesigner从Oracle数据库中导出了我们系统的数据库表的物理模型图。如图10所示。

2)数据库核心表

学生信息表:主要包括学生的一些基本信息,如学号、姓名、性别、身份证号码等。其中学号idNum是该表的主键,也是学生登陆系统的帐号。password是学生登陆系统的密码,不能为空字段。字段专业profession是专业表外键,非空字段。如表1所示:

教师信息表:主要包括教师的一些基本信息,如编号、姓名、身份证号码、家庭住址等。字段idNum是教师表里面的主键,同时也是教师登录系统的帐号,不能为空。字段password是教师登录系统的密码,不能为空。字段profession是教师表的外键,即老师所负责的专业,该字段不能为空。如表2所示:

管理员信息表:主要包括管理员的一些基本信息,如编号、姓名、性别、身份证号码、家庭住址等。字段idNum是管理员表的主键,同时是管理员登录系统进行管理的帐号,该字段不能为空。字段password是管理员登录系统的密码,该字段也是不能为空。如表3所示:

表3 ems_ manager管理员表

申请修改信息表:主要记录学生或教师提交的个人信息修改记录。字段idNum是申请修改信息表的主键,该字段自动增长,不能为空。字段applyUserId是提交申请修改信息的用户的编号。如表4所示:

系统设置项目信息表:主要是设置学生或教师的操作权限。字段IdNum是系统设置项目表的主键,自动增长,不能为空。字段syssentname是课程类型名称。如表5所示:

留言信息表:主要是记录学生与教师的在线交流对话。字段idNum是留言信息表的主键。字段sidnum是该表的学生编号外键,以找出该留言是哪个学生的留言。字段tidnum是该表的教师编号外键,以显示是具体哪个老师查看了此留言和回复留言。字段title表示的是留言的标题。字段content表示的留言里面的内容,字段status表示的是留言是否有被回复,表示回复状态。字段rcontent表示的是回复的内容。如表6所示:

课程类型信息表:主要是记录所有课程的类型,如专业必修课,校公选课等。字段idNum表示的是该表的主键。字段classtypename表示的是课程类型名称,例如专业必修课和校公选课。如表7所示:

专业类型信息表:主要是记录所有的专业类型,如计算机科学与技术,电子信息工程等。字段pro_name表示的是专业名称。字段remarks里面存储了开课学期以及授课老师等信息。如表8所示:

课程信息表:主要是记录课程的一些基本信息,如课程编号、课程名称、开课学期、授课教师等。字段classId表示的是课程编号,是该表的主键,不能为空。字段classname表示的是课程名称,不能为空。字段classType表示的是课程类型,是该表的外键,不能为空,对应的是课程类型表。字段teacherId表示的是教师编号,是该表的外键,对应的是教师信息表。也不能为空,表示该课程是属于哪个老师。字段professionId表示的是所属专业的编号,是该表的字段,不能为空。如表9所示:

学生选课记录表:主要是记录学生的选课记录。字段IdNum表示的是该表的主键,自动增长,不能为空。字段studentId表示的是学生的编号,是该表的外键,对in个的是学生信息表。字段classId表示的是课程编号,是学生选课记录表的外键,对应的是课程表。如表10所示:

毕业设计信息表:主要是记录毕业设计选题的基本信息,如选题名称、可选人数、剩于人数、难易程度、指导教师等。字段IdNum是该表的主键,自动增长,不能为空。字段Gname是毕业设计的名称,名称被限制在字数五十个字以内。字段teacherId表示的是该题目出自于哪个老师以及是哪个老师所负责的,该字段为该表的外键,对应的是教师信息表。字段Gcount表示的是该毕业设计可以选的人数,字段Rcount表示的是该毕业设计剩余可选人数。字段Glevel表示的是该毕业设计题目的难易程度,分为容易、一般、困难三个难度。该表为个的主要核心表。如表11所示:

3) 数据库表关系

本系统的数据库共有12个表,其中起到关键作用的表有学生表、教师表、管理员表、留言表、课程类型表、课程表、专业类型表、毕业设计表、毕业设计选择记录表。

其中学生表与专业类型表形成一对一映射关系,一名学生只能选择一个专业。学生表与留言表形成一对多映射关系,一名学生可以有多条留言。学生表与毕业设计选择记录表形成一对一映射关系,一名学生只能选择一个毕业设计题目。

教师表与专业表形成一对一映射关系,一个教师只能属于一个专业类别。教师表与留言表形成一对多关系,一名老师可以回复多条留言,也可以接受多个学生的留言。教师表与课程表形成多对多关系,一名老师可以对应多个不同的课程,一个课程可以由多个老师负责。教师表与毕业设计表形成一对多关系,一名教师可以出多个毕业设计题目,一个毕业设计题目只能由一个老师所出。

具体的关系如图10所示。

3 功能简要设计

通过对系统业务的调查分析,将系统需要实现的各模块功能简要说明如下:

1)管理员系统:查看个人信息、学生管理、教师管理、管理员管理、系统设置等。

2)教师系统:查看个人信息、修改密码、申请修改教师信息、查看当前授课、添加课程、上传毕业设计、下载学生作品、统计成绩查询等。

3)学生系统:查看个人信息、修改密码、申请修改学生信息、学生选课、毕业设计选题、毕业设计自拟题目、 查询已选课程、成绩查询、 设计作品上传等。

基于Java EE的毕业设计管理系统的设计涉及多方面的理论、方法和技术,本系统还有许多新的问题与功能需要解决,需要在实际应用中不断积累和完善。

上一篇:认识海产品 下一篇:《网页制作》实验教学中学生能力的培养