1、河北农业大学 本科毕业论文(设计)题 目: 科研管理系统总体设计 学 院: 信息科学与技术学院 专业班级: 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 二O一一 年 六 月 五 日科研管理系统总体设计摘要通过信息化手段管理日常科研工作、整合科研工作流程是实现高校科研管理信息化的重要组成部分。科研管理系统用来来管理当前高校科研管理中涉及到的各种数据信息。本文基于Java企业级开发框架Structs2+Spring+Hibernate,设计并实现了一个B/S结构的高校科研管理系统。介绍科研管理系统的课题研究意义,总体系统分析和总体架构分析,详细说明了系统的模块划分,系统功能,系统设计方法
2、过程和技术要点。关键字:科研管理系统 ,Struts2, Hibernate, Spring Scientific Research Management System-General DesignAbstract Through the informationization means to manage daily scientific research work, and integrating scientific research work flow is an important part of realizing university scientific research in
3、formation management. Scientific research management system is used to manage the current university scientific research management in the various data involved. This paper is based on Java enterprise-level SSH2, designed and realized a B/S structure of university scientific research management syst
4、em. Scientific research management system introduced the research significance, the overall system analysis and the overall structure analysis, detail the system module partition, system function, system design method process and main techniques.Keywords:Scientific research management system, Struts
5、2, Hibernate, Spring,目录1 引言11.1 课题研究意义11.2 技术简介11.3 开发工具选择22 系统分析22.1 需求概述22.2 需求分析33系统设计43.1.界面设计原则43.2 系统用例43.2.1 普通科研人员53.2.2 学院科研秘书63.2.3 科技处科研秘书73.2.4 科技处成果秘书83.2.5 普通平台秘书93.2.6 科技处平台秘书103.2.7 系统管理员113.3 框架整体设计123.3.1 系统架构图123.4 数据模型133.3.1 数据库设计原则133.3.2 数据库表项设计144 结束语165 参考文献171 引言1.1 课题研究意义现
6、代计算机网络和数字资源建设的不断发展,极大地加快了各行业信息化建设步伐。高校作为国家的主要科研投入的单位,其科研活动和科研能力的发展水平是一个国家科技实力的标志。有效的运用先进的管理信息系统及其软件开发平台,对科研信息进行科学化和网络化管理,已经成为高校科研信息系统的发展趋势。然而,对于高校来说,其网络化信息管理功能却不尽如人意。很多高校在科研管理中存在着各种各样的问题,如科研项目缺乏统一管理,在项目的申请上存在交叉重复等不合理现象;项目审核的透本明度低,审批效率不高;立项方向和实际研究方向不符等高校日常所涉及到的科研信息数据管理分散混乱,普遍存在着维护困难,效率低下的现象。科研信息的申报,审
7、核,以及各种统计信息的生成都不能及时有效的完成。高校中各院系,校级科研职能部门,亟待建立统一的科研数据信息库,将科研信息的管理事务纳入信息化和网络化管理,利用现代信息技术,建立现代化的科研管理信息系统,提高管理效率。使其更加规范化、科学化,更好的满足科研需求。本文重点阐述了面向高校科研管理所涉及业务流程处理以及系统的设计,开发和实现。1.2 技术简介科研管理系统功能的实现,必须依托于具体的计算机编程手段。当前在设计到的Web开发领域中存在着各种各样的编程语言和实现技术方案,如PHP、Python、ASP.Net 等等。但是近几年来一直流行的Java Web技术相对于以上几种技术实现手段,其主要
8、优势表现在:简单性、面向对象、可分布性、可解释、安全性、可移植、结构化、功能强大、多线程、动态性。Java同时还是一个平台,Java平台与大多数平台的不同之处在于它是运行于其它基于硬件平台的纯软件平台,而大多数其它平台是硬件和操作系统的结合。企业基础建设系统例如企业资源计划 (ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统等多数系统都是构建在Java的J2EE基础之上的。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,
9、完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。随着软件开发技术的发展,可复用、易扩展的而且经过良好测试的软件组件,越来越为开发者所青睐,其中最受人们关注的是Struts2、Spring3 和Hibernate3 框架。该经典组合是基于当前在Web开发中被广泛运用的MVC模式,MVC 模式分离了数据访问和数据表现,为系统提供了更好的解耦,在实现多层Web 应用系统中具有明显的优势。Struts2 是一个基于MVC 模式并且成熟地实现了控制器层和Web 表现层的集大成者的框架,它不但提供了灵活自然的控制器分配方式,而且提
10、供了强大的标签表示技术,并且为其它框架的整合预留了方便的接口。Spring 主要基于IoC和AOP,很容易实现Bean 的装配和事务管理等特性,同时它对不同的数据访问技术提供了统一的接口。Hibernate 框架是一个面向Java 环境的对象/ 关系数据库映射工具,它不仅可以管理Java 类到数据库表的映射,还提供数据查询和获取数据的方法,可以大幅度减少开发时开发者使用SQL 和JDBC 处理数据的时间。随着Web 2.0 时代的到来,Ajax 技术带给了用户更高的客户体验,Ajax 框架受人瞩目成为必然,其中ExtJs作为一种优秀的前端Ajax开源框架得到了众多前台开发人员的支持和选择。Ex
11、t是基于Web的富客户端框架,其完全是基于标准W3C技术构建设的,使用到的都是HTML、CSS、DIV等相关技术。Ext最杰出之处,是开发了一系列非常简单易用的控件及组件,我们只需要使用这些组件就能实现各种丰富多彩的UI的开发。总而言之,ExtJs+SSH2的整合可以很好的解决Web开发环节中前后台开发式可能遇到的各种数据显示,数据存取可能遇到的问题,灵活性高,扩展性良好。通过配置文件的方式便于代码的集中管理和维护,减低了后期系统维护的难度。1.3 开发工具选择Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。作为一种开源软件,其发展得到了全世界软件开发厂商和技术爱好者的支
12、持,其版本一直都在不断的升级之中,各种开发功能也在被不断的整合到Eclipse之上。而且,许多软件开发商都是在以Eclipse为框架开发自己的IDE,如比较流行的IDE Apatna。但Eclipse 不限于当作 Java IDE 来使用。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有
13、其他功能相对固定的IDE软件很难具有的灵活性。作为一种流行的开源软件,其设计的初衷便是高效的开发出Java程序。在其实现中同样高效的支持Java Web项目的开发,能够完成Web项目工程的自动构建,部署和开发。其强大的语言提示功能和代码分类显示功能,极大的提高了软件开发人员的程序开发效率。2 系统分析2.1 需求概述科研信息管理系统要求实现对信息学院科研情况实现有效的管理以及对科研活动的全程跟踪,并实现与校科研管理系统的数据对接。该系统为院教师以及科研管理人员服务,要求使用方便,既要实现对科研活动的高效率管理和控制,又要满足研究所的决策者对科研活动的宏观管理与决策的需要,还能够为院对研究所的评
14、价以及研究所对人员的评价提供依据。用于开发复杂、动态和交互式的Web站点并支持强大的数据库处理能力的Web应用程序开发语言JSP已经发展的比较成熟和完善,为本系统的开发在技术上提供了支持。特别是当期流行的Java轻量级企业开发框架SSH2的应用日臻完善,无论是从开发效率上来说,还是运行稳定性健壮性来说,其都为一个设计良好的技术解决方案。科研管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。2.2 需求分析结合科研管理中的实际情况,根
15、据科研管理具体需求,主要从以下四个科研管理中涉及到的需求角度进行需求分析人员管理主要功能是对科研管理可能涉及到的各种科研人员,如普通科研人员,院系科研秘书,学校科技处科研秘书等,进行统一的人员信息录入,维护。并根据人员的科研只能划分为不同的角色,针对不同的人员角色进行具体的人员权限控制。项目管理主要功能是对科研管理涉及到的项目信息进行维护,普通科研人员可以录入项目信息,提交申报到学院科研管理部门,学院科研管理部门可以汇总本学院科研人员的项目信息,查看待审核的项目信息,并按照项目审核标准进行项目的审核,并将审核通过的项目信息提交到校级科研处管理部门,科研处管理部门可以查看各学院的项目提交情况,完
16、成项目的最终审核,并可更具具体的项目统计原则,对项目进行相关的统计查询和最终的报表生成和导出。成果管理主要功能是对科研管理所涉及到成果信息进行维护,成果涉及到的分类包括:论文、论著、专利、期刊、获奖、成果、产品。成果的获取可能会依托具体的项目。普通科研人员可以录入自己的成果信息,并对自己的成果信息进行简单的维护,可提交到学院科研成果管理部门,学院成果管理部门可以汇总本学院科研人员提交的各类成果信息,进行汇总和简单的查询,并可对待学院审核的成果信息,按照成果审核的标准,进行审核,不合格的成果信息可以打回成果所属人员进行更改,也可将审核通过的成果信心,提交到学校科技处成果管理部门进行最终的审核。学
17、校科技处成果管理人员可以查看各学院的成果信息,并对待审核的成果信息进行更进一步的审核,提交通过,或者打回成果所属学院。同时学校科技处成果管理人员也可根据具体的成果统计原则,进行相应的成果统计查询和最终的报表生成。平台管理主要针对学校的各种科研平台信息进行相关的维护和管理。对各种平台可以集中进行平台信息录入,提供平台的分类信息维护,平台可以由指定的平台秘书进行维护,各个平台可以建立相对应的科研平台人员队伍建设,同时对于平台内部的设备仪器等硬件信息进行信息的录入维护。此外,针对学校的科研大楼,学校科技处平台管理人员可以对科研大楼的信息进行维护,对科研大楼的使用历史记录进行跟踪。同时可以提供简单的信
18、息统计查询。3系统设计3.1.界面设计原则 作为管理系统的需要,其整体的页面设计原则应为:简洁,干净,色调柔和。布局结果如下图所示:图 3-1 界面布局框图Logo区功能菜单区显示内容区3.2 系统用例为了能够更好的说明当前系统功能组织结构明细,此文按照当前科研管理系统涉及到的角色为依据,将各个角色涉及到的功能进行有效的组织,这将为最终的系统功能设计和系统界面设计提供有效的依据。系统当前角色划分:普通科研人员院系科研秘书科技处科研秘书科技处成果秘书普通科研平台秘书科技处平台秘书3.2.1 普通科研人员 当前系统进行一中合理的假设,即,系统中涉及到的任何一个人员,其都会是一名普通的科研人员,相对
19、应的涉及到的日常处理功能包括:对自己信息的管理,密码管理,个人项目信息维护,个人成果信息维护。参见图3-1。图 3-1 普通科研人员用例图3.2.2 学院科研秘书 对于校级下属的各级学院,每个学院都会有一专属的本学院的科研秘书岗位,其主要的职责包括:个人作为普通科研人员的功能(参见图3-1),本院科研人员信息管理,本院的单位信息管理,本院的科研项目的管理,本院的科研成果管理,本院的项目信息查询统计。参见图3-2。图 3-2 学院科研秘书用例图3.2.3 科技处科研秘书 校级的科研主管单位科技处设有一科技处项目管理人员,其主要职责包括:个人作为普通科研人员的功能(参见图3-1),校级科研项目的维
20、护管理,审核,校级科研项目的统计查询和项目信息的报表生成。参见图3-3。图 3-3 科技处科研秘书用例图3.2.4 科技处成果秘书 校级的科研主管单位科技处设有一科技处成果管理人员,其主要职责包括:个人作为普通科研人员的功能(参见图3-1),各成果项(包括论文,论著,新产品,专利,获奖,成果)下属的相应信息的维护管理,以及相应的统计信息查询和报表生成,除此外,该岗位人员还要维护期刊信息,包括期刊信息的批量导入,添加。参见图3-4。图3-4 科技处成果管理秘书用例图3.2.5 普通平台秘书 对于平台信息会设置普通的平台管理人员,其主要职责包括:个人作为普通科研人员的功能(参见图3-1),作为平台
21、秘书,主要职责包括所管平台基本信息的维护,以及相应平台下的平台队伍建设,平台科研大楼的使用情况记录维护。参见图3-5。图 3-5 普通平台秘书用例图3.2.6 科技处平台秘书 校级的科研主管单位科技处设有一科技处平台管理人员,其主要职责包括:个人作为普通科研人员的功能(参见图3-1),作为平台秘书,主要职责包括所管平台基本信息的维护,平台的分类管理,平台的添加,删除,信息编辑,以及各平台下的平台队伍建设,平台科研大楼的使用情况记录维护。参见图3-6.图3-6 科技处平台秘书用例图3.2.7 系统管理员 系统为了保证其正常的运转,会设有一个系统管理人员,其主要职责包括:个人作为普通科研人员的功能
22、(参见图3-1),作为系统管理员,主要职责包括全校人员角色权限的管理,人员的新增,删除,编辑,人员密码初始化,各实体单位信息的维护。参见图3-7。图3-7 系统管理员用例图3.3 框架整体设计 随着面向对象技术的发展,层次之间的数据耦合逐渐由原来的较细粒度的据变量逐渐转化为较粗粒度的数据业务对象,即实例化的类对象,这样更加减少了各个层次之间耦合,并且为数据持久化提供对象,更加提高了数据持久化的安全。因此整体分为四层,分别是:表现层(PresentationLayer)、业务逻辑层(Business Logic Layer)、数据持久层(Data Persistence Layer) 和领域模型
23、层(Domain Model layer)。通过分层,可以降低系统各部分之间的耦合程度,有利于开发人员的分工,增加系统的可维护性及可扩展性。3.3.1 系统架构图图 3-8 系统架构图 Struts2 框架和Ajax 框架的工作原理是将表现逻辑处理委托给Spring 容器进行管理,然后由struts2 的FilterDispatcher控制器根据struts.xml 来寻找和分配执行的物理逻辑视图。在执行表现逻辑处理之前,Spring 容器负责表现逻辑处理Action 的装配和实例化。另外在应用开发中还要着重于复用,这种复用的概念并不局限于某个层次之内,而是贯穿于整个应用开发的不同层之间,当然
24、Web 表现层同样可以复用。由于表现层技术包括html、jsp 标签、Struts2 标签以及Ajax 技术等,为了提高代码的可维护性,需要把表现层页面分为三种不同的文档,然后在总的表现层页面中包含进来,分别为:CSS 文档主要负责整个应用的Web 表现风格和管理表现层页面的表现形式。业务逻辑层负责处理从整个Web 应用数据流程中抽象出来的基本业务逻辑操作处理,它是位于数据持久层之上,是用来被表现业务逻辑Action 调用的接口层。Spring 框架在Web 表现层负责装配和实例化表现业务逻辑Action,在业务逻辑层负责装配和实例化业务逻辑Service,并负责进行业务之间的事务处理,在数据
25、持久层负责装配和实例化数据对象DAO,并调用HibernateTemplate 来持久化数据对象。领域层是实现对象的持久性封装,是根据Web 应用需求分析产生的数据封装对象,对应于Java 应用中的class。采用这个集成架构开发出来的Web 应用,不仅在划分的层次之间拥有更低的耦合性,而且整个应用的灵活性和可维护性也得到了更大的提高,最可喜的是利用Ajax 技术不仅提高了整个应用的开发效率,而且提高了整个系统的人性化满意度。其中ExtJs由于是一个设计良好的Ajax框架,其界面的整体显示效果美观大方。 将上面构建的SSH2+ExtJs架构应用到高校科研信息管理系统的设计与实现上,实现环境为:
26、Struts2、Spring3、Hibernate3以及ExtJs 框架。目的是为了建立一个能够覆盖科研机构的主要科研业务管理的计算机管理综合系统。基于网络收集各种与业务有关的信息,采用计算机网络技术简化人工管理流程,实现信息的一次录入、多方共享及信息的综合加工,满足不同管理层次对各类信息处理的需求3.4 数据模型 由于科研管理过程中涉及到大量的科研数据信息,因此依托于一个高性能的数据库软件,并设计出一个良好的数据库结构体系显得尤为重要。本系统采用SQL Server2000 商用数据库管理系统实现系统数据库存储和访问,具有标准结构查询语言SQL,支持 ODBC。MSSQL Server 20
27、00是Microsoft Window数据库产品的领导者,对用户提供标准的查询接口(如 SQL)和数据访问接口(如 ODBC、JDBC等),并保证系统数据完全性、一致性和完整性等,为数据的共享提供了必要的基础条件。为了保证数据库的一致性和完整性,往往通过表间关联的方式来尽可能的降低数据的冗余。表间关联是一种强制性措施,建立后,对父表(Parent Table)和子表(Child Table)的插入、更新、删除操作均要占用系统的开销。如果数据冗余低,数据的完整性容易得到保证,但增加了表间连接查询的操作,为了提高系统的响应时间,合理的数据冗余也是必要的。使用规则(Rule)和约束(Check)来防
28、止系统操作人员误输入造成数据的错误是设计人员的另一种常用手段,但是,不必要的规则和约束也会占用系统的不必要开销,需要注意的是,约束对数据的有效性验证要比规则快。所有这些,需要在设计阶段应根据系统操作的类型、频度加以均衡考虑。3.3.1 数据库设计原则在具体数据库设计过程中,要遵循以下原则:(1)为了增强数据库程序的可读性和可维护性,按照相应的命名原则规范对数据表、变量、存储过程、视图等进行规范化,并对具体的SQL代码编写规范化。(2)在数据表的设计中,满足每个字段必须尽量小,只能包含一个数据项目、必须完全支持主键,而且只支持主键,每条记录必须唯一等。(3)多使用存储过程实现对数据库的操作,增加
29、访问效率及软件程序修改。(4)数据的安全性方面主要是确定用户标识及口令,对关系或数据库设置封锁,对用户授权或设置用户访问控制表。3.3.2 数据库表项设计1.人员管理模块表项(1) 单位表(主键、名称,介绍,负责领导)(2) 人员信息表(工号,姓名,性别,出生年月,职称,职务,学历,学位,专业方向,所在单位,所在岗位,状态,联系电话,电子邮件,密码)(3) 人员角色表(主键、工号、角色、起始时间、终止时间,角色状态)(4) 系统角色表(主键,角色名称)2.科研项目表项(1) 项目表(主键 , 项目编号,项目名称,所属单位,负责人,项目性质,项目级别,项目来源,项目分类,学科门类,学科分类,合作
30、形式,研究类别,本单位名次,起始年份,结束年份,结题形式,鉴定级别,经费,一级审核,一级审核人,一级审核时间,二级审核,二级审核人,二级审核时间,项目状态)(2) 项目成员表(主键 ,项目编号,成员工号,是否是负责人,排名)(3) 项目校内合作单位表(主键 , 项目编号,合作单位,排名,是否是负责单位)(4) 项目校外合作单位表(主键 , 项目编号,合作单位,排名)3.科研成果表项(1) 刊期表(主键 ,刊物编号,刊物名称,刊物级别,刊物类别,主办单位, 确定年份,是否是外文期刊)(2) 论文表(主键 ,论文名称,KID,是否会议论文,会议论文的会议名称,收录情况,发表时间,刊号,页码范围,(
31、)备注,一级审核,一级审核人,一级审核时间,二级审核,二级审核人,二级审核时间)(3) 论文依托项目表(主键 , 论文Id,项目编号,次序)(4) 论文作者(主键 , 论文ID, 作者工号,排名)(5) 论著表(主键 , 著作ID, 著作名称, 图书编号, 著作类别, 出版社,出版时间,学科类别,一级审核,一级审核人,一级审核时间,二级审核,二级审核人,二级审核时间)(6) 论著依托项目表(主键 , 著作ID,项目编号,次序)(7) 论著作者表(主键 , 著作ID,作者,身份(手工录入)(8) 成果表(主键 , 成果编号,成果名称,鉴定级别,成果类别,完成时间,授予单位,是否投入生产,经济 效
32、益,一级审核,一级审核人(可引用),一级审核时间,二级审核,二级审核人,二级审核时间)(9) 成果依托项目表(主键 , 成果编号,项目编号,次序)(10) 成果完成人表(主键 , 成果编号,完成人工号,排名,是否是负责人)(11) 获奖表(主键 , 获奖名称, 奖励类别, 奖励等级, 获奖时间, 备注,一级审核,一级审核人,一级审核时间,二级审核,二级审核人,二级审核时间)(12) 获奖人员表(主键 , 奖励ID,人员工号,排名)(13) 授奖单位表(主键 , 奖励ID,授奖单位,次序)(14) 获奖依托项目表(主键 , 奖励ID,项目编号,次序)(15) 专利表(主键 , 专利名称,专利类别
33、,颁发单位,获得时间,期限,事否已转让,效益,备注,一级审核,一级审核人,一级审核时间,二级审核,二级审核人,二级审核时间)(16) 专利人员表(主键 , 专利ID,人员工号,排名)(17) 专利依托项目表(主键 , 专利ID, 项目编号,次序)(18) 新产品表(主键 , 产品名称,类别,获得时间,效益(字符串),是否已转让,备注,一级审核,一级审核人,一级审核时间,二级审核,二级审核人,二级审核时间)(19) 新产品人员表(主键 , 产品ID,人员工号,排名)(20) 新产品依托项目表(主键 , 产品ID,项目编号,次序)4.平台管理表项(1) 平台表(主键 , 平台名称,平台类别,平台状
34、态,平台负责人,科研秘书,联系电话,E-mail,批准建立部门,批准建立时间,研究方向与研究内容,从事和服务的国民经济行业,主要学科领域,科研建筑面积,是否使用科研大楼,科研大楼位置,面积) (2) 平台校内人员表(主键 ,平台,员工号,人员性质,岗位性质)(3) 校外人员表(主键 , 身份证,姓名,性别,出生年月,职称,学位,职务,专业,工作单位,工作性质)(4) 平台校外人员表(主键 ,平台ID,人员ID,人员性质,岗位性质)(5) 平台设备表(主键 , 平台,仪器设备名称,型号规格,生产制造厂商,产地,原值,建账单位,建账日期,设备数量,是否属于科研大楼) (6) 6、使用科研大楼设备记
35、录表(主键 , 平台,设备ID,使用时间,使用人,研究内容,设备情况)(7) 一级平台类别表(主键 ,一级平台名称)(8) 二级平台类别表(主键 ,一级平台ID,二级平台名称)4 结束语 科研管理系统在设计开发,很好地结合了高校用户需求和目前技术的发展,包括了对高校绝大部分科研业务的管理,提高了高校科研管理工作的工作效率,减轻科研工作者的诸多工作负担,带动了科研部门内部管理方法的优化和流程的规范化,并且实现了高校管理部门的信息共享。整个应用开发从横向上可以划分为Web 表现层、业务逻辑层、数据持久层,从纵向上可以依据应用不同的需求分析划分为不同的模块。Struts2+Hibernate+Spr
36、ing三个框架的整合成为了当前企业级应用的良好的解决方案,备受广大Java开发者的青睐。这样应用开发就可以依据横向和纵向的划分,实现分工合作,大大提高了开发的速度。5 参考文献1 沈中林.基于B/S 模式的高校科研管理信息系统的设计J.中国民航学院学报,2004( 5)2 王长春,李秀杰,张跃华.网络技术在科研管理中的应用研究J.现代计算机,2008(2)3汪辉高校科研管理信息化探析J科技信息(学术版),2006(2)4 刘勇,蒋芬君,蒋来基于网络的科研信息化管理模式构建J浙江师范大学学报(自然科学版),2007(5)5Struts2官网相关文档和示例,http:/struts.apache.org/2.2.3/index.html6Hibernate 官方网站相关文档和示例,http:/www.hibernate.org/7Spring 官网网站相关文档和示例,8ExtJs官网网站相关文档和示例,http:/www.hibernate.org/17