1、本科毕业设计文档管理系统设计摘要目前OA办公系统技术已经十分成熟,但是本院毕业设计文档管理还是用的传统的纸质文档管理,由于毕业生在做毕业设计及论文的时候文档繁多,管理复杂且容易出错,所以笔者开始着手设计开发该文档管理系统。将全院本科毕业设计文档有效的管理起来,让这些文档的管理可以通过不同的人在有网络的地方进行管理。不用再使用纸质的文档,这样可以大大加强管理的方便性和快捷性。文中详细介绍了该系统的设计方案及已实现的系统功能。主要研究内容如下:第一,介绍了本系统用到的基础理论知识,分析实现该系统框架,并且根据本文中系统的需求最终确定系统开发所采用的框架。第二,分析J2EE企业级系统开发J2EE框架
2、的运行原理。分析J2EE的Struts 与Hibernate框架的实现原理。Struts 是Apache软件基金会(ASF)赞助的一个开源项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用;Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。第三,分析数据库设计原理。关键字: OA办公系统 Struts Hibernate SQLServer2005 Undergraduate Course Graduation Design Document Manageme
3、nt System DesignAbstractOA office system technology is already very mature, but the school graduation design document management or use of the traditional paper-based document management, due to graduate when doing the graduation design and thesis document is various, management complex and error pr
4、one, so set out to design and develop such a document management system. Will the school undergraduate course graduation design document and effective management, can let the document management through different people where there is network management. Dont use paper document, so can greatly stren
5、gthen the management of the convenience and fast speed. This paper introduces in detail the system design scheme and the implemented system function. The main research content is as follows: first, introduced this system using the basic theory of knowledge, analysis the realization of the system fra
6、mework, and finally determined according to the requirements of this article system adopted by the system development framework. Second, the analysis of the J2EE enterprise operation principle of system development, J2EE framework. Analysis of J2EE implementation principle of Struts and Hibernate fr
7、amework. Struts is Apache software foundation (ASF) sponsored an open source project, it USES the MVC pattern, can effectively help Java developers use the J2EE Web application; Hibernate is an open source object-relational mapping framework, it is very lightweight for JDBC object encapsulation, mak
8、e the use of Java programmers can follow ones inclinations to manipulate the database object programming thinking. Third, the analysis principle of database design.Key words: OA office system、 Struts、 Hibernate、 SQLServer2005 目录1 引言11.1课题研究的背景11.2课题研究成果应用的实际意义12 相关技术简介32.1 STRUTS技术32.2 HIBERNATE技术3
9、2.3 Ajax架构32.4 JSON技术42.5 dwr技术42.6 ext技术43 需求分析53.1系统实现目标53.2 系统开发环境53.3 功能性需求描述64 系统设计94.1 发布毕业设计项目功能94.2 学生选题功能114.3 项目调整功能124.4 毕业设计项目公布功能134.5 数据库设计135系统实现185.1 登陆界面185.2系统主页195.3后台管理功能19(1)教师管理19(2)学生管理205.4定义毕业设计功能215.5项目管理功能225.6选题公布功能235.7其他后续功能246 结论257 致谢26参考文献271 引言1.1课题研究的背景随着管理软件应用的逐渐成
10、熟,企业管理软件完成一轮的“应用洗牌”后渐淘汰掉一批零散型的应用系统,形成了以行业核心业务系统(如ERP,CTAX,HIS等)和OA二分天下的局面。办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,自1985年国内召开第一次办公自动化规划会议以来,OA在应用内容的深度与广度、IT技术运用等方面都有了新的变化和发展,并成为组织不可缺的核心应用系统。OA系统是实现办公自动化的工具,是通过采用Internet技术,基于工作流的概念,以信息技术为中心,采用一系列现代化的办公设备和先进的通信技术,广泛、全面、迅速地对信息进行收集、整理、加工、存储和使用的办公系统。经过笔者
11、研究发现,全院毕业设计文档管理还是用的传统的纸质文档管理,由于毕业生在做毕业设计及论文的时候文档繁多,管理复杂且容易出错。还存在消息不容易发布,有问题反馈不及时等问题。本项目在充分了解毕业设计文档管理的流程和方法之后,分析出能够形成OA系统的需求,然后通过系统概要设计、详细设计、数据库设计、开发形成了一个本科毕业设计文档OA系统。让这些文档的管理可以通过不同的人在有网络的地方进行管理。不用再使用纸质的文档,这样可以大大加强文档管理的简洁性、方便性和信息交流的快捷性。1.2课题研究成果应用的实际意义在传统的毕业设计文档管理模式下,信息交流往往是老师和学生沟通、管理的瓶颈,教师没有一个同意的毕业设
12、计信息发布平台,学生也没有一个可以查看与咨询的平台。历届的毕业设计从选题、开题、项目任务书编写一直到最后的材料汇总,进十份的不同材料都需要学生打印纸质文档交付给教师,教师往往要保留很多学生的纸质文档,久而久之,纸质文档的丢失、遗漏以及保存的不便等弊端体现出来,而通过OA系统可以灵活地实现点对点交流,点对面交流,信息交流可以在鼠标点击的一个瞬间完成,这种师生间方便快捷的信息交流将为毕业设计文档管理带来质的飞跃。同时,OA系统为学校提供的流程固化与流程优化平台,使得毕业生做毕业设计的各项流程运转更加高效和可控,已然成为建立现在学校管理制度的必备管理平台。OA系统还能够实现信息化的统一更新和发布,当
13、然,OA系统还能把众多的纸质文档信息化,实现无纸化办公,大大方便文档的保存。针对全院的毕业设计文档管理现状,产生了开发一款方便快捷毕业设计文档OA管理系统的想法,本系统的用户定位是全院本科毕业生和老师。也就是说,为全院的毕业生及相关教师提供了一个信息交流平台,他们可以使用该系统所提供的平台交流信息与文档收集。使教师在开展毕业设计的整个活动的各项工作更加规范化,组织各项活动更加方便快捷。图1。0 毕业设计管理系统用到的技术框架2 相关技术简介2.1 STRUTS技术Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,还有其他成功的开源产品,包括Tomcat, An
14、t 和Velocity。2000 年Craig R. McClanahan 先生贡献了他编写的JSP Model 2 架构的Application Framework 原始程序代码给Apache 基金会,成为Apache Jakarta 计划Struts Framework 前身。Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。Structs 框架的核心是一个
15、弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts由一组相互协作的类(组件)、Servlet以及jsp、tag、lib组成。基于struts构架的web应用程序可以说是一个传统 MVC设计模式的一种变化类型。2.2 HIBERNATE技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客
16、户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。2.3 Ajax架构AJAX即“Asynchronous Javascript + XML1”(异步JavaScript和XML 1),是指一种创建交互式网页应用的网页开发技术。AJAX = 异步JavaScript和XML(标准通用标记语言的子集)。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传
17、统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页面。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。使用Javascript向服务器提出请求并处理响应而不阻塞用户!核心对象XMLHTTPRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与Web服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更小、更快,更友好。AJAX 是一种独立于 Web 服务器软件的浏览器技术。AJAX 基于下
18、列 Web 标准:JavaScriptXMLHTMLCSS在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。通过 AJAX,因特网应用程序可以变得更完善,更友好。2.4 JSON技术JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - Decem
19、ber 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C+, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且 JSON 可以表示比“名称 / 值对”更复杂的结构。
20、例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。2.5 DWR技术DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.2.6 EXT技术Ext是一个强大的js类库,以前是基于雅
21、虎UI,现在已经完全独立了。主要包括data、widget、form、grid、dd、menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好。可以自己写扩展,自己定义命名空间。主要包括三个大的文件:ext-all.css,ext-base.js,ext-all.js(包括所有的类库,您可以根据需要进行删减。官方网站提供这一接口),在引用ext类库的时候,这三个文件必不可少。它提供了丰富的,非常漂亮的外观体验,成为众多界面层开发人员的追捧!其核心的组件基本覆盖了我们构建client的常用的组件。3 需求分析需求分析是软件开发流程中重要的一环,需求分析的基本任
22、务是根据用户的需求,准确定义要完成的系统的目标,回答系统必须“做什么”的问题。它的主要用途是明确系统需求,是用户和开发人员之间进行讨论的基础,并作为系统设计和实现的依据。3.1系统实现目标系统是一个OA办公系统,为了能达到这一点,从功能上必须达到以下目标:(1)院系班级、教师、学生等基本信息可以录入、修改、删除。(2)可以发布消息和查看消息实现信息交流。(3)学生与教师之间可以协同完成毕业设计活动开展的工作。(4)功能全面的界面,使用户不需要培训就能够很好的使用本系统。3.2 系统开发环境3.2.1操作系统本系统是建立在Java基础上开发的,而Java又是与平台无关的,因此,对开发环境的操作系
23、统没有特别需求,在此,本系统选择了微软Windows 7(X86)。3.2.2软件环境开发中所使用到的软件环境如下所列,可能还有些相关支持组件没有全部列出。(1)Java Development Kit (JDK) 6.0 Update 14;(2)MyEclipse 8.5;(3)Apache Tomcat 6.0.20;(4)Hibernate 3.3;(5)Struts 2.1;(6)JSON 2.2.2;(7)DWR 3.0;(8)EXT 5.0;(9)SQL SERVER2005;3.3 功能性需求分析3.3.1. 发布毕业设计项目3.3.1.1 功能描述功能需求: 引言:该功能是为
24、了提供毕业设计项目(以下简称为项目)的题目供学生选择,由提供项目的老师填写项目的题目和内容。提出项目的老师可以修改或删除已有项目。由系主任审核项目,最后公布给学生。输入:由老师输入设计题目和内容,并允许老师修改其内容。加工:记录项目的题目和内容。审核,并公布给学生。输出:输出本科毕业设计项目. 添加新项目老师 修改项目 删除项目系主任 公布毕业设计项目3.3.1.2 业务建模 图3.1 发布毕业设计3.3.2. 学生选题3.3.2.1 功能描述 功能需求: 引言:该功能是学生选择项目和老师。学生可以修改或删除已选项目和老师。输入:可选设计题目和内容。加工:学生选择项目和老师,记录学生选择项目和
25、老师。输出:输出学生选择的项目和老师。 查看选择设计项目学生修改选择的项目和老师删除选择的项目和老师3.3.2.2业务建模 图3.2 图3.2 学生选题3.3.3. 毕业设计项目调整3.3.3.1 功能描述功能需求: 引言:该功能是指导老师为每个设计项目选择学生。最后由系主任调整所有学生与毕业设计项目的关系,把学生平均分配到每个项目上。输入:所有的设计题目、学生、指导老师和学生选择的项目和老师情况输入:老师为每个设计项目选择学生,系主任调整所有学生的毕业设计。输出:输出每个学生最后确定下来的毕业设计项目和指导老师3.3.2.2业务建模查看选择设计项目和指定该项目设计的学生修改对应项目的指定学生
26、指导老师删除对应项目的指定学生查看所有项目及指定的学生修改项目及指定的学生系主任删除项目里指定的学生 图3.3 毕业设计项目调整3.3.4. 毕业设计项目公布3.3.4.1 功能描述功能需求: 引言:该功能是由系主任将已分配好的毕业设计与对应学生公布出来,然后学生可以查看公布情况。输入:每个学生最后确定下来的毕业设计项目和指导老师输入:系主任确认所有学生的毕业设计是否正确。输出:公布所有学生的毕业设计项目和指导老师查看所有学生的毕业设计项目和指导老师公布结果修改对应项目的指定学生删除对应项目的指定学生系主任查看毕业设计项目及对应学生的公布结果学生3.3.4.2业务建模 图3.4 毕业设计项目公
27、布4 系统设计本科毕业设计文档管理系统 后台管理模块 业务功能模块教师信息管理学生信息管理院信息管理系信息管理专业信息管理班级信息管理毕业设计定义功能项目发布功能学生选题功能项目调整功能项目公布功能图4.0 系统结构4.1发布毕业设计项目功能该功能是为了提供毕业设计项目(以下简称为项目)的题目供学生选择,由提供项目的老师填写项目的题目和内容。提出项目的老师可以修改或删除已有项目。由系主任审核项目,最后公布给学生。如图4.1。 图4.1 发布毕业设计项目流程图4.2学生选题功能该功能是学生选择项目和老师。学生可以修改或删除已选项目和老师。如图4.2。图4。2 学生选题流程图4.3项目调整功能一、
28、指导老师用户图4。3 指导教师项目调整流程图二、系主任用户图4.4 系主任项目调整流程图4.4毕业设计项目公布功能开 始系主任公布项目学生查看项目公布结果终止图4.4 项目公布流程图4.5 数据库设计表4.1 Department -系属性名属性的描述属性的约束等说明属性的特性说明DepartID 编号INT not nullprimary keyDepartName 系名称varchar(50)DepartInfo 系简介textDepart_College 系所属的院INTnot nullREFERENCES College(CollegeID)表4.2 Specialty -专业属性名属
29、性的描述属性的约束等说明属性的特性说明SpecialID 编号INT not nullprimary keySpecialName 专业名称varchar(50)SpecialLength 学制intSpecialCategory 类别varchar(50)OfDepart INT REFERENCES Department(DepartID )表4.3 College -学院属性名属性的描述属性的约束等说明属性的特性说明CollegeID 编号INTnot nullprimary keyCollegeName 学院名varchar(50)CollegeInfo 院简介text表4.4 Tea
30、cher -教师属性名属性的描述属性的约束等说明属性的特性说明TeacherID 编号INTnot nullprimary keyTeacherName 姓名varchar(50)not nullTeacherSex 性别varchar(50)TeacherPass 密码varchar(50)not nullState 状态char(4)CHECK ( State = ok OR State = no )TeacherTitle 职称 varchar(50)TeacherUsername账号VARCHAR(50)not nullTeacherOfDepart 所在系INTResearch 研究
31、方向textTeacherInfo 简介textTeacherMail 邮件textTeacherPhone 电话textTeacherQQ QQtext表4.5 Student -学生属性名属性的描述属性的约束等说明属性的特性说明StuID 编号INTnot nullprimary keyStuName 姓名VARCHAR(50)not nullStuSex 性别varchar(50)StuUsername 账号VARCHAR(50)StuLearnNum 学号 VARCHAR(50)not nullStuPass 密码VARCHAR(50)not nullState 状态char(4)St
32、uClass 班级intOfCollege 学院varchar(50)StuMail 邮件VARCHAR(50)StuPhone 电话VARCHAR(50)StuQQ QQVARCHAR(50)LoseItemID INT SelectedState char(4)表4.6 Project -项目属性名属性的描述属性的约束等说明属性的特性说明ProjectID 编号INTnot nullprimary keyProjectName 项目名VARCHAR(50)not nullSelectedState 状态char(4)CHECK ( SelectedState = 未选OR Selected
33、State = 被选), CommitState int CHECK ( CommitState = 0OR CommitState = 1 OR CommitState = 2) SelectedNum int default 0ProjectContent 内容 textProjectRequire 要求 textStudentNeedNum 需要学生数intnot NULL DEFAULT 1ProjectSource 选题来源VARCHAR(50)ProjectTeacherID 出题教师编号INTNOT NULLREFERENCES Teacher(教师编号)ThesisScore
34、成绩INTCHECK ( 成绩= 0 AND 成绩= 0 AND 毕业论文得分= 100 )表4.7 Characters -角色属性名属性的描述属性的约束等说明属性的特性说明CharacterID 编号INTnot nullprimary keyCharacterName 角色名VARCHAR(50)not nullCharacterLevel 等级INTCHECK ( 角色等级= 1 OR 角色等级= 2 OR 角色等级= 3 )/*1:管理员,2:系主任,3:教师,4:学生*/备注表4.8 Class -班级属性名属性的描述属性的约束等说明属性的特性说明ClassID 编号INTnot
35、nullprimary keyClassName 班级intnot nullStartYear 入学年份intOfSpecial 所属专业VARCHAR(50) REFERENCES Specialty ( SpecialID )表4.9 Graduation_design -毕业设计定义表属性名属性的描述属性的约束等说明属性的特性说明GraduationDesignID 编号INTnot nullprimary keyGraduationDesignName SumStudent 总人数intBeginYear int参加的学生入学年份EndYear 毕业年份DefinePeople 定义人
36、INTNOT NULLREFERENCES Teacher(教师编号)Date 定义时间DATETIMEAnnounce varchar(1)SelectItem varchar(1)Adjust varchar(1)Publish varchar(1)ProjectTask varchar(1)OpeningReport varchar(1)PaperReview varchar(1)Defense varchar(1)MaterialSummary varchar(1)Grading varchar(1)表4.10 Role_Assignment角色分配属性名属性的描述属性的约束等说明属性
37、的特性说明RoleAssignID 编号INTnot nullprimary keyTeacherID 用户char(20)not nullCharacterID 角色StartTime 开始时间StopTime 有效时间State 状态表4.11 Project_GraduationDesign_Teacher项目_定义_教师表属性名属性的描述属性的约束等说明属性的特性说明ID 编号INTnot null IDENTITY(0, 1)primary keyProjectID 项目IDINT not nullREFERENCES Project ( ProjectID ) Graduation
38、DesignID INT not nullREFERENCES GraduationDesign( GraduationDesignID ) TeacherID INT REFERENCES Teacher ( TeacherID )UploadTeacher INT REFERENCES Teacher ( TeacherID )UploadTime DATETIME 表4.12 Student_Selected学生选题表属性名属性的描述属性的约束等说明属性的特性说明ID 编号INTnot null IDENTITY(0, 1)primary keyProjectID 项目IDINT not
39、 nullREFERENCES Project ( ProjectID ) StuID 学生INT REFERENCES Student ( StuID ) SelectedState 状态CHAR(2) 表4.13 Teacher_Selected老师选学生表属性名属性的描述属性的约束等说明属性的特性说明ID 编号INTnot null IDENTITY(0, 1)primary keyProjectID 项目IDINT not nullREFERENCES Project ( ProjectID ) TeacherID 学生INT REFERENCES Student ( StuID )
40、5系统实现5.1 登陆页面此为系统登录界面也是初始界面。如图5.1。图5.1登陆界面5.2系统主页如图5.2所示,该界面是整个网站的首页,界面上方的导航栏可以进入相应的功能界面,右上角有显示用户所拥有的身份。图5.2系统主页5.3后台管理功能由于后台管理页面较多。学生添加是上传固定格式的EXCEL表来批量添加,而添加教师与其他添加院系班级的页面类似,所以这里只展示有代表性的两个模块,教师管理和学生管理。(1)教师管理教师管理主界面如图5.3,在界面上方可以添加新的教师,界面下方的列表显示的是所有教师的信息,在表格最右侧对应着三个按钮,分别为修改、查看、删除键,点击修改或查看会弹出修改或查看的对
41、话框如图5.4。图5.3:教师管理界面图5.4:教师修改界面(2)学生管理学生管理界面如图5.5,该界面可以进行学生的批量上传,修改和删除。由于学生信息会比较多,通常是以系为单位上传大量的数据,单个上传不现实,所以上传是读取相对应格式的EXCEL表中的数据进行的。图5.5学生管理界面5.4定义毕业设计功能该界面用于系主任定义毕业设计使其整个系开始毕业设计活动,页面如图5.6。界面上方可以添加毕业设计定义,下方显示当前登录用户定义过的所有毕业设计。在该功能中,系主任还可以开放或关闭所有功能模块,只需要在相应的模块名称对应的CHECKBOX上打勾或取消打勾。图5.6定义毕业设计界面5.5项目管理功
42、能项目管理如图5.7,该界面下可以进行项目的增删改查,根据输入的条件组合查询在下方列表中显示。系主任用户不但有项目的增删改查功能,还有审核项目的功能,界面如图5.8。并且系主任可以代替任意教师上传项目,如图5.9。图5.7项目管理功能图5.8项目审核图5.9系主任代替教师上传项目5.6选题公布功能选题公布如图5.10,该界面是对之前学生选题调整完之后的一个公示。图5.10选题公布界面5.7其他后续功能由于时间有限,还有一大部分功能没有能够实现,比较可惜,只能全部显示为暂未开放,等待以后再完善。暂未实现的功能显示如图5.11(同未开放的页面)。图5.11其他后续功能界面 6 结论本文利用struts,hibernate等框架,设计了一款J2EE的网站。它以全院师生为服务对象,帮助他们拜托交流的不便,建立起方便快捷的网络式文档管理系统。目前该工具软件可以做到系统的管理和毕业设计部分功能的实现,提供