基于WEB的高校科研项目管理系统分析设计精品资料.doc

上传人:封****n 文档编号:96697171 上传时间:2024-03-10 格式:DOC 页数:27 大小:222.55KB
返回 下载 相关 举报
基于WEB的高校科研项目管理系统分析设计精品资料.doc_第1页
第1页 / 共27页
基于WEB的高校科研项目管理系统分析设计精品资料.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《基于WEB的高校科研项目管理系统分析设计精品资料.doc》由会员分享,可在线阅读,更多相关《基于WEB的高校科研项目管理系统分析设计精品资料.doc(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、摘要科研项目管理是一项系统工程,传统的高校科研项目管理模式已经无法适应当前科研迅速发展的要求。本文针对高校科研项目管理特点提出了.NET技术支持下的基于网络的高校科研项目管理系统的设计思想,并给出了具体的开发框架。关键词:高校;科研项目管理;.NETAbstractScientific research project management is a system engineering, the traditional university scientific research project management pattern have not adapted to the requi

2、rement of the development of the current scientific research quickly. This article in view of the characteristics of management of scientific research project put forward technology based on the network of scientific research project management systems design idea, and gives the specific development

3、 framework.Key words: University;Scientific research project management.NET;I目 录摘要IAbstractII一、系统开发的必要性1二、系统分析1(一)可行性分析1(二)系统功能分析1(三)用例分析2(四)安全分析4三、系统设计4(一)系统架构设计4(二)系统模块结构设计4(三)系统模块流程设计5四、数据库设计6(一)概念结构设计6(二)数据库技术7(三)数据流程图10(四)系统安全技术10五、系统测试10(一)基本测试10(二)并发控制测试11(三)容错测试11结语11参考文献12高校的科技工作是全社会科技活动的一个

4、重要组成部分。高校作为国家科学研究的前沿阵地,承担着大量科研项目。高校科研管理工作具有一定的复杂性和特殊性,随着高校科研项目数量和体量的增加, 给科研管理部门和管理人员管理难度加大,传统的科研项目管理模式正面临着严峻的挑战,迫切需要改进其管理体制和运行机制,以及更为科学完善的项目管理方法。实现科研项目的无纸化管理、提高工作效率,已成为各院校科研管理工作的发展趋势。一、系统开发的必要性越来越多的院校为适应自身发展的需求,纷纷自主研发符合院校自身的信息管理系统,它既可提高工作效率和管理水平,又便于部门之间进行信息交流,实现协同工作、提高工作效率。为使科研项目管理规范化、科学化,实现信息资源的共享,

5、尤其是对科研项目实施全过程监控,开发基于WEB模式的高校科研项目管理系统显得非常必要。二、系统分析(一)可行性分析可行性分析又称可行性研究,是在系统调查的基础上对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会等方面进行研究,以避免投资失误,保证新系统的成功开发,可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否得到解决。1)技术可行性。随着千兆级光纤校园网的建成,校内各处室都已经联上了校园网,为网上数据交换提供现成的信息通道。2)社会可行性。该系统投入使用后会大大提高科研管理工作的效率,使科研项目管理工作流程通顺合理,统计查询方便快捷,为广大科研参与者和管理者

6、提供便利。所以,社会效益会明显体现。(二)系统功能分析科研项目管理是高校科技管理工作的一项重要内容。编制有效的管理部门如何高效有序地处理头绪繁杂的日常事务,相对分散的高校科研人员如何方便快捷地获取、共享科研信息,一直是高校科技管理的重要研究内容。以现代信息技术为支撑,以信息人才为依托,充分挖掘信息资源,建立高校科研项目管理信息平台,促进科研项目管理信息化、科学化、规范化,势在必然。科研项目管理系统主要有立项课题管理、学术成果管理、课程建设管理、项目申报管理、项目评审管理、用户信息管理等模块。为了信息的保密与安全,系统还有提供一定的安全机制。系统设置系统管理员、院系管理员、教师、专家评委四类用户

7、,不同用户登录系统须进行严格的身份认证以及权限分配,以获得不同的访问界面和使用权限。系统管理员:整个系统的管理者,具有最大的权限功能,主要完成用户权限分配以及信息管理,管理人员、项目、成果,发布通知公告,组织项目的申报、评审、中检、终结,年度统计和网站管理维护。院系管理员:负责对本部门相关科研信息的管理。主要有管理员系科研成果,理院系科研项目,系科研报表的统计,接收通知文件,管理院系科研人员资料。科研人员:可以浏览系统信息、查询相关的科研成果和获奖情况,申报、提交个人学术成果,申报项目立项、中期检查验收或结题报告,修改个人基本信息、密码等。专家评委:可以管理个人信息,主要负责组织项目的申报、组

8、织项目的评审、组织项目的中检、组织项目的终结。(三)用例分析(四)安全分析利用网络技术实现的管理系统,需要解决好网络安全和信息安全问题。除了需要采用防火墙、防病毒和防攻击等网络安全措施外,还需要采取适当的信息安全技术来完成身份认证、信息加密传输、保障信息的完整性。平台用户必须经过严格的身份认证机制。用户访问系统时,必须输入帐号、密码及验证码以保证系统用户身份的合法性。三、系统设计(一)系统架构设计在WEB应用程序开发领域,微软公司的IIS6.0/ASP以其强大的功能,良好的扩展能力,迅速地流行起来。多层结构的应用正是在对C/S 结构的总结基础上产生的,并且也已经扩展到了B/S应用开发领域,它将

9、应用划分为三层: 用户界面层、业务逻辑层、数据库层。其中将实现人机界面的所有表单和组件放在表示层,将所有业务规则和逻辑的实现封装在负责业务逻辑组件中,将所有和数据库的交互封装在数据访问组件中。三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。三层B/S结构图(二)系统模块结构设计高校科研项目管理系统的主要任务是用计算机对各种科研信息进行日常管理,比如查询、编辑、增加、删除等。迅速准确的完成各种科研信息的

10、统计计算和汇总工作。系统主要包括科研人员管理、科研项目管理、获奖项目管理、科研项目管理四大模块。各个模块之间相互联系,相互关联在一起,从而使系统能够很好的完成所涉及的功能。该系统功能模块及其子模块,每个子系统都具有增加、删除、修改、查询、统计等功能。系统具体功能如下:1)项目申报查询:用于按项目名称、项目编号等条件下进行项目申报信息的总体信息查询。2)项目申报编辑:用于对个人申报的信息进行增、删、改等编辑操作。3)项目日常管理:用于对项目进程过程中日常信息的编辑管理工作。4)成果管理功能:提供科研成果信息的输入、编辑、查询等功能。5)项目管理功能:提供科研项目信息的输入、编辑、查询等功能。6)

11、部门及人员管理功能:部门及人员的信息输入、编辑、查询等功能。7)科研分管理功能:科研分的统计、查询等功能。8)综合查询功能:用于查询项目、科研人员等信息。(三)系统模块流程设计登陆程序流程四、数据库设计(一)概念结构设计在对系统分析所得的数据字典的数据项,数据存储,数据逻辑,外部实体的分析基础上得到系统的关系模式,并且以特定的规范化的符号进行描述出来,这就是实体属性图也就是E-R图,是对信息世界的数据的描述。信息世界的基本概念(1)实体:客观存在并可相互区别的事物称为实体。(2)属性:实体所具有的某一特性称为属性。一个实体可以内若干个属性来刻画。(3)联系:在现实世界中,事物内部以及事物之间是

12、有联系的,这些联系在信息世界中反映为内部的联系和实体之间的联系。(4)实体型:实体名与属性名集合共同构成实体型。(5)实体集:是同型实体的集合。ER图描述实体、属性和联系的规则(1)实体:用矩形表示,矩形框内写明实体名。(2)属性:用椭圆形表示,并用无向边将其与相应的实体或联系连接起来。(3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与实体相连,旁标上联系的类型。需要注意的是,如果一个联系属性则这些属性也要用无向边与联系连接起来。科研人员实体属性图:院系管理员实体属性图:科研项目实体属性图:(二)数据库技术数据库设计,在软件开发过程中是一个很重要的环节,数据库是任何系统都不可避免的,

13、在设计数据库时尽量满足第三范式,减少数据冗余,尽量设计比较简单的数据库。数据库设计的好坏将直接关系到整个系统的性能,体现整个科研项目信息管理、操作的效率,因此必须在全面分析系统功能的基础上,设计合理的数据逻辑结构。本数据库可分为主库和辅助库。主库由项目申请表、项目申报组成员表、在研项目表、在研项目组成员表、项目检查、结题项目表等组成,辅助库由经费表、项目负责人简况表等组成。下面给出数据库中主要的数据表及字段。1)用户权限表Right序号字段名类型说明键1Right_idTINYINT权限编号主键2Right_nameVRCHAR权限名称3RightTINYINT权限4NoteTINYTEXT备

14、注2)科研人员表User序号字段名类型说明键1User_idCHAR职工号2Login_nameVARCHAR登录名3PasswordCHAR密码4NameVARCHAR姓名5SexCHAR性别6BirthdayDATE出生日期7Prof_titleVARCHAR职称8EductionVARCHAR学历9DegreeVARCHAR学位10Degree_idCHAR院系编号外键11Job_typeVARCHAR岗位类型12PhoneVARCHAR联系方式13EmailVARCHAR电子邮箱14Right_idTINYINT权限编号外键15NoteTINYTEXT备注3) 院系部门表Departm

15、ent序号字段名类型说明键1Depart_idCHAR院系编号主键2Depart_nameVRCHAR院系名称3PhoneVARCHAR联系方式4NoteTINYTEXT备注4) 科研项目Project序号字段名类型说明键1Project_idCHAR项目编号主键2Project_nameVARCHAR项目名称3User_idCHAR职工号外键4ParticipantVARCHAR参与人员5Depart_idCHAR院系编号外键6Project_soureVARCHAR项目类别7SubjectVARCHAR学科分类8Submit_dateDATE申报日期9Submit_outlayDECLMA

16、L申请经费10Real_outlayDECLMAL批准经费11NoteTINYTEXT备注5) 科研成果表Product序号字段名类型说明键1Product_idCHAR成果编号主键2Product_nameVARCHAR成果名称3Product_sourceVARCHAR成果出处4Rank_idTINYINT级别编号外键5CountTINYINT数量6ScoringTINYINT得分7User_idCHAR职工号外键8People_numTINYINT参与人数9Depart_idCHAR院系编号外键10StateTINYINT状态11NoteTINYTEXT备注6)成果级别Product_r

17、ank序号字段名类型说明键1Rank_idTINYINT级别编号主键2Rank_nameVRCHAR级别名称3ScoreTINNYINT记分4NoteTINYTEXT备注(三)数据流程图顶层数据流程图(四)系统安全技术本系统采用基于用户功能想项的权限管理机制。有用户管理功能实现用户的权限分配。用户权限存储在用户表中的权限字段。根据用户权限制定网页。系统管理员,整个系统的管理者,具有最大的权限功能。院系管理员主要负责对本部门相关科研信息的管理。科研人员,可以浏览信息,查看信息,修改个人基本信息和密码。专家评委:负责审核等。五、系统测试(一)基本测试对系统基本功能的实现情况和是否存在设计错误进行测

18、试。基本过程包括:使用用户管理员登录,添加、删除、开启系统各项功能。使用院系管理员登录,查看是否越权以及本身权限是否可用。教师用户登陆、管理个人基本信息以及密码修改和查看系统信息。专家评委登录、审核、评审等。(二)并发控制测试测试系统在多用户同时访问、操作数据库的情况系处理冲突的情况。基本过程为:同时使用多个用户登录,尝试不同教师同时选择同一课题的,不同管理员对用一信息的修改、插入、删除等操作,测试系统的并发处理情况。(三)容错测试测试系统对错误的处理情况及对非法请求的控制情况。结束语本高校科研项目管理系统的开发实现了科研管理工作的规范化,保证系统的规范性、可实现性、安全性。该系统是高校的科研

19、项目管理以科学、规范、有效地方式达到数字化、智能化管理的效果。提高了学校科研项目的管理水平。参考文献1鄢碧鹏,李志强,蒋洪.基于Web 的科研项目管理系统的设计与开发.扬州大学学报(自然科学版),2005(4)2于晓娜,张竟志.高校科研项目管理探究.大连教育学院学报,2007(3) 3张小艳,赵渭泳.基于C/S的科研项目管理信息系统的设计与实现.科技研究,2007(10)4潘琼.基于.Net的高校科研项目管理系统的设计与实现.教育软件开发与应用,2004(10)5岳昆,王晓玲,周傲英.Web服务核心支撑技术J.软件学报,20046张蓓.ASP.NET通用模块及典型系统开发实例导航M.北京:人民

20、邮电出版社,20067徐晓霞.基于.NET的高校科研管理系统的实现J.计算机技术与发展,20068于剑军,李鹏海.高校科研管理系统的设计与实现J.北京:天津理工大学学报,2005(5)9徐晓霞.基于.NET的高校科研管理系统的实现J.计算机技术与发展,2006(3)10侯明昌.基于ASP.NET的高校院级综合管理信息系统的设计与实现D.云南 云南大学2007.11李鹏海,张鹏.基于Internet的高校科研管理系统的研究与开发J.天津理工大学学报2007(5)12廖萍,张健.高校科研管理信息系统的优化设计J.现代情报2006(9)附录资料:从 XML 生成可与 Ajax 共同使用的 JSON时

21、下,非常流行使用 JavaScript 代码为数据驱动的 Web 应用程序添加互动性。若能将数据编码成 JavaScript Object Notation(JSON)的格式,您就可以更轻松地通过 JavaScript 语言使用它。通过本文,发掘使用 XSLT V2 从 XML 数据生成 JSON 的几种不同方法。几年前,许多开发人员很看好 XML、XSLT、Extensible HTML (XHTML)和其他一些基于标记的语言。现在,Asynchronous JavaScript and XML(AJAX)成了新的热点,人们又将目光转向了使用 JavaScript 代码的数据驱动的富 Int

22、ernet 应用程序。但是开发人员是否已经消除了 XML 和这一新技术之间的鸿沟呢?当然,您可以在 Web 客户机中使用 XML 解析器来读取数据,但这种做法会带来两个问题。第一,出于安全方面的原因,XML 数据只能从与此页面相同的那个域中读取。这虽然不是什么大的限制因素,但它的确会引起部署方面的问题,还会阻碍 DHTML 小部件的创建。第二,读取和解析 XML 会非常慢。另一种做法是让服务器执行 XML 的解析工作,方法是设置服务器,使之向浏览器发送以 JavaScript 代码或时下流行的 JavaScript Object Notation(JSON)编码的数据。本文将展示如下三种使用

23、XSLT V2 语言和 Saxon XSLT V2 处理器从 XML 数据生成 JSON 的技巧: l 简单编码 l 通过函数调用加载数据 l 编码对象 JSON 简介要学习如何将数据编码成 JSON(它只是 JavaScript 的一个子集),最好的方法是从数据开始。清单 1 显示了书籍列表的一个示例 XML 数据集。清单 1. 基本的图形化图书馆 Code Generation in Action JackHerrington Manning PHP Hacks JackHerrington OReilly Podcasting Hacks JackHerrington OReilly 这

24、个数据集很简单,只包含三本书,每本书都具有惟一的 ID、书名、作者姓名及出版商的名字。(没错,我只选择了我自己的书作为数据集,但能怨我吗?这些书实在是不可多得的节日和生日礼物。)清单 2 显示了这些数据在 JSON 中的效果。清单 2. JSON 中的示例数据集 id: 1, title: Code Generation in Action, first: Jack, last: Herrington, publisher: Manning , . 方括号 () 表明这是一个数组。大括号 () 则表明这是一个散列表,该散列表由一组名称和值对组成。在本例中,我创建了一个散列表的数组 用来存储这类

25、结构式数据的一种常见方法。另外一点值得注意的是字符串是通过单引号或双引号被编码的。所以,如果我想用单引号编码 OReilly,我就必须使用反斜杠对它进行转义:OReilly。 这让我编写的这个 XSLT 样式表更为有趣了一些。我并未在本例中放上任何日期,但您也可以通过如下两种方法来编码日期。第一种方法是将日期作为字符串,该字符串必须在后面被解析。第二种方法是将日期作为一个对象,比如:publishdate: new Date( 2006, 6, 16, 17, 45, 0 )这段代码将 publishdate 的值设置为6/16/2006 5:45:00 p.m.。简单编码接下来我将陆续介绍

26、JSON 编码的几种技巧。第一种也是其中最简单的一种,此样式表如 清单 3 所示。清单 3. simple.xsl 样式表 var g_books = 1, id: ,name: ,first: ,last: ,publisher: ;要理解此样式表,不妨先来看一下 清单 4 所示的输出。清单 4. simple.xsl 的输出var g_books = id: 1,name: Code Generation in Action,first: Jack,last: Herrington,publisher: Manning, id: 2,name: PHP Hacks,first: Jack,

27、last: Herrington,publisher: OReilly, id: 3,name: Podcasting Hacks,first: Jack,last: Herrington,publisher: OReilly;这里,我将名为 g_books 的变量设置为一个包含三个散列表的数组,每个散列表包含关于该书的信息。再回过头来看看 清单 3,您会发现第一个模板匹配 / 路径,它也是首先应用到输入数据集的模板,该模板使用 for-each 循环来遍历每本书。之后,它使用 标记来将文本从该数据输出到 JavaScript 输出代码。对于字符串,我使用名为 js:escape() 的定制函

28、数,它在模板之前定义。该函数使用一个正则表达式将一个单引号标记更改为带有反斜杠的单引号标记。最后一个重要的元素是 标记,它告知处理器要输出的是文本而不是 XML。要检验此过程是否可以正常工作,我加入了一个 simple .html 文件,该文件引用我在 simple.js 保存的 XSL 样式表的输出。这个 HTML 文件如 清单 5 所示。清单 5. simple.html 文件Simple JS loaderdocument.write( Found +g_books.length+ books );.html 文件使用 标记简单地加载已编码了的 JavaScript 代码。之后,第二个

29、标记将数组的长度写出到浏览器页面,如 图 1 所示。图 1. simple.html 的输出好了!数据文件包含三本书,相应的 JavaScript 文件也包含三本书。它真的可以工作!通过函数加载上述第一个示例很简单,而且在大多数情况下可以发挥其作用,但它存在一些问题。第一个问题是对于数据何时被加载没有任何提示。如果数据是像页面那样被静态加载的,这不成问题。但是如果页面动态创建了一个 标记来按需加载数据,那么就很有必要知道 标记是何时完成的。实现此功能的最好的方法是让编码了的数据调用一个 JavaScript 函数,而不是只设置数据。这个概念很重要,所以我将花一些时间来介绍一下为什么您必须要通过

30、动态生成的 标记来加载数据。页面加载后,从服务器获得数据是 Web 2.0 的核心功能。一种方法是使用 AJAX 机制通过到服务器的调用来加载 XML。然而,出于安全性的原因,AJAX 机制只限于从单一域获取数据。这在大多数情况下都没有问题,但有时,您可能需要 JavaScript 代码运行在他人的页面上(例如,Google Maps)。在这种情况下从服务器获得数据的惟一方法是通过动态加载 标记。获悉 标记何时加载的最好的方法是让 标记返回的脚本调用函数而不是简单地加载数据。清单 6 显示了在函数调用中编码的数据。清单 6. Function1.jsAddBooks( id: 1,name:

31、Code Generation in Action,first: Jack,last: Herrington,publisher: Manning, id: 2,name: PHP Hacks,first: Jack,last: Herrington,publisher: OReilly, id: 3,name: Podcasting Hacks,first: Jack,last: Herrington,publisher: OReilly );清单 7 给出了相应的 .html 文件。清单 7. Function1.htmlFunction 1 JS loadervar g_books =

32、;function AddBooks( books ) g_books = books; drawbooks( g_books );稍后将详细介绍 drawbooks 函数。这里重要的是了解一下页面如何定义 AddBooks 函数,该函数随后会由 function1.js 文件中的脚本调用。该 AddBooks 函数负责处理数据。而且被调用的 AddBooks 函数会向页面指示 标记被正确加载,并已加载完成。要创建 function1.js 文件,我只对样式表稍微做了一点修改,如 清单 8 所示。清单 8. function1.xsl 样式表AddBooks( 1, id: ,name: ,f

33、irst: ,last: ,publisher: );这里,我调用了一个函数,而不是简单地设置一个变量。这就是我所做的惟一更改。回到页面,我使用了 drawbooks 函数来构建书的表格,这样我就能够确认数据被正确编码和正确显示。此函数是在 drawbooks.js 内定义的,如 清单 9 所示。清单 9. Drawbooks.jsfunction drawbooks( books ) var elTable = document.createElement( table ); for( var b in books ) var elTR = elTable.insertRow( -1 );

34、var elTD1 = elTR.insertCell( -1 ); elTD1.appendChild( document.createTextNode( booksb.id ) ); var elTD2 = elTR.insertCell( -1 ); elTD2.appendChild( document.createTextNode( booksb.name ) ); var elTD3 = elTR.insertCell( -1 ); elTD3.appendChild( document.createTextNode( booksb.first ) ); var elTD4 = e

35、lTR.insertCell( -1 ); elTD4.appendChild( document.createTextNode( booksb.last ) ); var elTD5 = elTR.insertCell( -1 ); elTD5.appendChild( document.createTextNode( booksb.publisher ) ); document.body.appendChild( elTable );这个简单函数创建了一个表格节点,然后循环访问书的列表并为每本书创建一行,为每个数据元素分配一个单元格。此页面上的代码的结果如 图 2 所示。图 2. func

36、tion1.html 的结果现在我就可以查看一下此页面的输出并确认来自原始 .xml 文件的一切均已被正确转换成 JavaScript 代码,且数据被发送到 AddData 函数并被正确添加到页面。细化函数调用技术我很喜欢函数调用这一技术,但我并不赞同将所有图书数据都放入一个块中。另一种方式是为每条记录采用一个调用,如 清单 10 所示。清单 10. Function2.jsAddBook( id: 1,name: Code Generation in Action,first: Jack,last: Herrington,publisher: Manning );AddBook( id: 2

37、,name: PHP Hacks,first: Jack,last: Herrington,publisher: OReilly );.对 .html 页面只需做少许修改,如 清单 11 所示。清单 11. Function2.html.var g_books = ;function AddBook( book ) g_books.push( book ); .这里更改了 XSLT,以使函数调用驻留在 for-each 循环体内。清单 12 显示了更新后的样式表。清单 12. function2.xsl.AddBook( id: ,name: ,first: ,last: ,publisher: );/x

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com