基于WEB的文档管理系统的设计及实现毕业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南科技大学
毕业设计(论文)题目基于WEB的文档管理系统的设计及实现
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:
指导教师签名:日期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日
导师签名:日期:年月日
湖南科技大学成人高等教育本科生毕业论文(设计)评审表
摘要
本文论述了一个基于J2EE平台,三层架构的(B/S)的网络文档管理系统的设计及其实现全过程,并对实现过程中的关键问题作了具体的分析和剖析。
本系统的设计采用了SUN公司的java技术,以开源开发工具Eclipse3.1作为开发工具,Microsoft Visio 2003和Microsoft Visual SourceSafe 作为项目管理与辅助设计工具,Oracle9i作为数据库支撑平台。
应用面向对象、三层架构、软件工程思想,本文实现了基于web的文档管理系统,它包括管理员的权限管理、文档管理、文件夹管理、用户管理、密码管理和一般用户对文档的查询查看管理等子系统。
系统的设计与实现,严格遵循软件工程思想,进行了细致的需求和系统分析工作。
【关键词】:
B/S;J2EE;三层架构;文档管理;权限管理
目录
第1章现状分析及工具简介 (1)
1.1 系统背景分析 (1)
1.2 系统开发平台 (2)
1.3 系统开发相关技术 (3)
1.3.1 J2EE简介 (3)
1.3.2 MVC模式 (3)
第2章需求分析 (5)
2.1 运行环境需求 (5)
2.2 功能需求 (6)
2.3 系统结构选型 (10)
第3章系统的设计与实现 (12)
3.1 概要设计 (12)
3.2 详细设计与实现 (13)
3.2.1 登陆模块的设计与实现 (13)
3.2.2文档管理模块的设计与实现 (14)
3.2.3文件夹管理模块的设计与实现 (17)
3.2.4用户管理模块的设计与实现 (19)
3.3系统集成 (22)
第4章系统测试 (23)
4.1 测试计划 (23)
4.1.1 功能测试 (23)
4.1.2 性能测试 (24)
4.1.3 安全性测试 (24)
第5章项目总结报告 (26)
5.1 项目总结 (26)
5.1.1 软件工程方面 (26)
5.1.2 客观条件方面 (26)
5.1.3 主观条件方面 (26)
5.2 展望 (27)
5.3 个人小结 (27)
致谢 (28)
参考资料 (29)
第1章现状分析及工具简介
1.1 系统背景分析
随着时间的推移、企业信息化水平的提高,企业日常产生了大量各种格式的文档,如何有效地管理这些文档,一直是企业(特别是项目经理)特别头痛的问题之一。
企业对文档的管理方式一般有如下两种常见的方式:
1)用户将文档存放在自己的电脑中,通过邮件的形式或其它形式(如QQ,MSN,飞鸽等)分发给相关人员阅读。
2)将文档存放在服务器,通过一些文档专门的文档管理软件,如cvs,Microsoft Visual SourceSafe等。
前者,由用户自己管理自己的文档,对自己的文档负责。
这样的优点是用户可以方便的浏览自己管理的文档,同时文档管理的责任比较明确,即使泄密范围也不大。
但是,以这种方式管理的文档,存在有如下缺点:
●当需要在多个人中共享某文档时,就产生了信息冗余,当文档发布新版本时,
需要对所有相关人员发送新版本,往往产生版本不同步的情况。
况且,在人
力成本日益高涨的今天,管理成本还是比较高的。
●所有用户的文档相互隔离,形成了一个一个的信息孤岛,每个人很难知道其
它用户已经存在了那些文档,自然也很难分享凝聚了他人智慧的文档。
虽然,
也可以通过操作系统的文件夹共享实现文档的共享,但是此时文档的搜索成
本还是很高的。
为了解决这个问题,人们开发了一系列的文档管理的专用软
件。
后者,不管是付费软件还是免费软件,往往满足了用户某个方面或某几个方面的需求。
比如,cvs专注于项目组中文档的版本管理,可以保存各个文档的所有历史版本,并且可以方便的对任意两个版本比较其异同。
同时,也可以对每个用户设
置其访问权限。
当然,缺点也是很明显的:
●如果不能用搜索的方式找到含有某关键词的资料;
●软件不能随需而变。
由于是专有软件,不能对它进行二次开发,加入新功
能或修改原有功能,新的需求必须等待其新版本的发布。
以上通常的文档管理方式在文档规模不大时,一般不会产生什么问题,甚至很方便。
但是当文档的规模较大、涉及人员较多,如何使相关人员很好的管理其文档(适当的人以适当的方式管理适当的文档)是一个不小的挑战。
现代社会的主要特征是“变”,资料管理也应该随需而变。
它需要软件的架构是开放的,即用户能够以某种自定义的方式上传文档、描述文档、管理文档。
基于WEB 的文档管理系统可以解决以上的问题。
1.2 系统开发平台
系统开发平台见表1-1。
表1-1 系统开发平台
1.3 系统开发相关技术
1.3.1 J2EE简介
J2EE为开发复杂的、分布式企业级Java应用定义了一套体系结构。
最初由Sum Microsystems在1999年中期发布,其各个版本存在的重大改变在于企业级的JavaBean(EJB)方面。
它由以下五部分组成:
●使用J2EE开发企业级应用的设计指南;
●提供J2EE可操作视图的一个参考工具;
●可由第3方使用的兼容性能测试组件,以检验他们的产品与J2EE的兼容性问题;
●多种应用编程接口(API),使人们能对企业资源进行通用访问;
●简化企业级Java开发技术
它们之间的关系如下图1.1:
图1.1 J2EE各组成部分的关系
该平台是建立在Java”一次编写,随意运行”的理念上的。
它通过一组技术和一套API实现,它们由参考工具、实际指南和兼容组件支持和限定。
1.3.2 MVC模式
设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。
目前,
在大多数Browser/Server结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求。
虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使JSP页面臃肿不堪,Web服务器的负荷过重。
因此,在中间层上采用基于模型-视图-控制器(MVC,即Model-View-Controller)的设计模式。
Model层用来实现业务逻辑,View层用来显示用户界面,Controller层主要负责View 层和Model层之间的控制关系。
具体实现时,把Servlet用作应用程序的控制器,把JSP 文档作为视图,JavaBeans被用来表示模型。
所有的请求都被发送给作为控制器的Servlet,它接受请求,并根据请求信息将它们分发给适当的JSP来响应。
同时,Servlet 还根据JSP的需求生成JavaBeans的实例并输出给JSP环境。
JSP可以通过直接调用方法或使用UseBean的自定义标签得到JavaBeans中的数据。
这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速。
在这种设计模式下,各层次之间的数据传递如图图1.2。
图1.2 MVC模式的数据传递图
第2章需求分析
2.1 运行环境需求
系统运行环境需求见表2-1。
表2-1 运行环境需求信息表
2.2 功能需求
本系统的用户分两类:管理员用户和一般用户。
他们用统一的登陆界面(见图2.1)。
登陆成功后,依据不同的用户类型进入不同的界面:一般用户进入资料查询和浏览界面(见图2.2),管理员用户进入权限管理界面(见图2.3)。
图2.1 用户登陆界面
图2.2 一般用户界面
图2.3 管理员用户界面
权限管理模块
此模块操作权限属于管理员用户,功能包括:对一般用户文档操作权限的查询、授权或取消授权。
图2.4 一般用户的权限查询和授权界面
文档管理模块
此模块操作权限属于管理员用户,功能包括:资料文档信息的查询、查看、上传、增加、锁定和解除锁定。
文档一经锁定,一般用户不能查看此文档信息。
图2.5 文档管理界面
图2.6 文档信息查看界面
图2.7 文档锁定后的出错界面
文件目录的管理
此模块操作权限属于管理员用户,功能包括:文件目录的增加和删除。
文件目录以树形展开,以便于查看。
图2.8 文件夹的删除界面
图2.9 文件夹的增加界面
⏹用户管理模块
此模块操作权限属于管理员用户,功能包括:对用户的查询、增加、冻结、升级或降级。
用户查询:输入需要查询的用户id或者昵称,可以查看满足此条件的记录集合。
用户的冻结:选择需要冻结的用户记录,点击列表中的“冻结”按钮,则可冻结此用户,此时用户的状态为“冻结”。
冻结的用户不能登陆。
用户的状态改变:选择需要升为管理员的用户,点击列表中的“升为管理员”链接,可以将该用户升为管理员。
用户的增加:输入一个用户的“昵称”可以增加一个用户。
此时用户有缺省密码000000,没有权限(只拥有修改密码的权限),需要对该用户授权。
⏹密码修改模块
此模块操作权限属于管理员用户和一般用户,功能包括:用户修改自己的密码。
此时需要输入原密码,修改后的新密码,并重复输入一次,当原密码符合、新输入的密码一致时,才能修改成功。
图2.10 用户密码修改界面
密码修改模块
一般用户登陆成果后进入如下图所示的界面。
前面显示的是该用户拥有查看权限的文件夹列表,最后一个功能是修改密码。
图2.11 一般用户的界面
如果选择一个文件夹,则显示这个文件夹下的文档列表,此时可以通过点击标题栏目的链接,可以查看此文档的内容。
2.3 系统结构选型
三层架构
整个管理信息系统采用Browser/Web/DataBase的三层体系结构。
Web服务器接受请求,通过应用程序服务器执行一个Java服务器端小程序Servlet并返回其输出,从而实现与客户机进行信息资源的交互。
数据库服务器用来存储管理信息系统中所用到的各种数据,数据由数据库管理程序直接录入。
系统的客户端只需要一个浏览器即可。
相关人员通过浏览器来查询、增加、修改、删除数据,对信息进行管理。
图2.12 基于Java技术的Web应用三层体系结构
第3章系统的设计与实现
3.1 概要设计
系统的概要设计是要根据系统分析的要求和组织的实际情况来对新系统的总体结构形式和可利用的资源进行大致设计。
这是一种宏观、总体上的设计和规划。
根据系统需求分析, 系统划分功能模块如下:
用户登录模块
☞用户登录等;
权限管理模块
☞用户权限的查询:依据用户昵称查询用户操作文件和文件夹的权限等;
☞用户权限的授权:依据用户昵称对用户操作文件夹的权限进行授权等。
文档管理模块
☞文档的查询:依据文档的标题和摘要信息对文档进行模糊查询等;
☞文档查看:浏览文档相关信息等。
☞文档的操作:包括文档的锁定和解除锁定等;
☞文档的上传:包括文档附件的上传等;
☞文档的增加:包括文档记录信息的添加等。
文件夹管理模块
☞文件夹的添加:包括文件夹信息的添加等;
☞文件夹的删除:包括文件夹信息的删除等。
用户管理模块
☞用户的查询:包括依据用户id和昵称模糊查询等;
☞用户的冻结:包括用户的冻结和解除冻结等;
☞用户状态的改变:用户升为管理员或者降为一般用户;
☞用户的增加:添加一条用户信息。
密码修改模块
☞用户修改密码。
总体而言,基于权限的文档管理系统的设计思想是将人员和文档信息存于数据库,通过授权联系用户和文档,从而达到有效管理文档和用户的目的。
系统的结构图如下
图3.1 系统的结构图
从上面的系统结构图可以看出,系统用户有两类:管理员用户和一般用户。
他们通过统一的登陆界面,登陆成功后,根据用户的类型不同进入不同的界面。
管理员拥有用户操作、文档操作、文档授权等权限;一般用户有文档查询、查看等权限。
他们通过统一的数据管理层与数据库交互,从而屏蔽了数据库的异构性和操作的复杂性。
3.2 详细设计与实现
3.2.1 登陆模块的设计与实现
用户登录模块完成的功能包括用户身份的验证、相应权限的确立、及用户信息的记录。
用户登录成功后,通过user_id记录用户编号,并根据员工编号检索权限表,根据权限表(t_power)所具有权限呈现用户界面,对用户的操作进行管理。
同时记录用户登
录日志。
为了保证用户帐号信息的机密性,我们对用户的密码进行了MD5加密。
用户登录的具体业务流程如图(图3.2)所示:
图3.2 系统登录流程图
3.2.2文档管理模块的设计与实现
文档管理模块功能包括:文档的查询、文档的查看、文档的锁定和恢复、文档的上传、文档记录的增加等处理。
文档管理模块数据流程如图3.3所示:
图3.3 文档管理模块数据流程图
功能分解及实现方法
此部分完成文档信息的查询、查看、锁定/恢复、上传和增加等功能。
在文档信息录入与修改过程中,为了保证输入信息的正确性及有效性,我们对输入的信息进行验证,只有通过验证的信息才会写入数据库,否则,提示用户信息无效,要
求用户重新录入。
需要验证的信息包括:文档标题和文档摘要等。
在提交之前,对于用户录入的数据,为防止出现危险代码,我们先对数据进行转码,再存入数据库中。
当取出数据时,根据将取出数据放在何处来判断是否将其解码。
备注:
此处增加文档的摘要信息是为了让用户自定义文档的字典信息,从而方便搜索。
文档对应的类图如下图图3.4所示:
图3.4 文档对应的类图
Document类:
总体说明:用来在系统中模拟文档的行为;
属性说明:
Doc_id:文档编号;
Doc_class:文档所属类别编号;
Doc_title:文档标题;
Creator_id:创建人编号;
Doc_url:文档链接;
Add_time:文档增加或修改时间;
Click_count:文档的点击数量;
Doc_summary:文档的摘要信息;
Doc_state:文档的状态;
操作说明:
insert:插入文档信息记录;
query:查询文档信息记录;
view:查看文档信息记录;
lock:锁定文档;
unlock:解除锁定文档;
upload:上传文档信息。
3.2.3文件夹管理模块的设计与实现
文件夹管理模块功能包括:文件夹的删除和增加等处理。
文档管理模块数据流程如图3.5所示:
图3.5 文档管理模块数据流程图
功能分解及实现方法
此部分完成文件夹的删除和增加等功能。
在文档信息录入与修改过程中,为了保证输入信息的正确性及有效性,我们对输入的信息进行验证,只有通过验证的信息才会写入数据库,否则,提示用户信息无效,要求用户重新录入。
需要验证的信息包括:文件夹的标题。
备注:
文档对应的类图如下图所示:
图3.6 文件夹对应的类图
Folder类:
总体说明:用来在系统中模拟文件夹的行为;
属性说明:
Class_id:文件夹编号;
Class_name:文件夹名称;
Father_id:父文件夹的编号;
操作说明:
insert:插入文件夹信息记录;
delete:删除文件夹记录;
3.2.4用户管理模块的设计与实现
文件夹管理模块功能包括:对用户的查询、增加、冻结、升级或降级等处理。
文档管理模块数据流程如图3.7所示:
图3.7 文档管理模块数据流程图
功能分解及实现方法
此部分完成对用户的查询、增加、冻结、升级或降级等功能。
在文档信息录入与修改过程中,为了保证输入信息的正确性及有效性,我们对输入的信息进行验证,只有通过验证的信息才会写入数据库,否则,提示用户信息无效,要求用户重新录入。
需要验证的信息包括:用户的昵称。
备注:
文档对应的类图如下图所示:
图3.8 用户对应的类图
User类:
总体说明:用来在系统中模拟用户的行为;
属性说明:
user_id:用户编号;
user_name:用户名称;
user_password:用户密码;
last_login_ip:用户最后登陆IP;
lost_login_time:用户最后登陆时间;
user_state:用户的状态;
操作说明:
insert:插入用户信息记录;
query:查询用户信息记录;
lock:锁定用户;
unlock:解除锁定用户;
login:用户登陆;
changeState:改变用户状态;
getPower:得到用户权限列表;
changePasswrod:改变用户状态.
3.3系统集成
总体框架窗口设计
整个窗口分为三部分:topFrame(放置系统标题), leftFrame(放置菜单树), mainframe(放置系统功能页面)。
下面是登录后的主窗口页面截图。
图3.9 管理员登录后的主窗口
菜单树的实现及模块集成
菜单树的实现采用登陆成功后查询用户权限列表,用javascript拼成权限树。
这样有两个优点:
⏹全动态的系统菜单管理;
⏹易于复用,实现简单,加载效率高。
应用到的文件包括topFrame.jsp,AdminTreeBase.js,leftTreeBase.js,而AdminTreeBase.js包含了输出树型目录所用到的所有javascript方法。
第4章系统测试
4.1 测试计划
系统的测试是为了对系统的质量或可接受程度作出判断,以及发现问题。
测试的过程可以细分为几个独立的步骤:测试计划、测试用来开发、运行测试用例以及评估测试结果。
基于WEB系统的测试除具有适应软件工程的测试方法外,还具有其特殊性。
B/S结构系统的测试包括功能测试、性能测试、可用性测试、客户端浏览器兼容性测试以及安全性测试五个部分。
其中各个部分均有自详细的测试内容及测试角度。
4.1.1 功能测试
1、链接测试
链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。
链接测试可分为三个方面:链接是否正确、链接的页面是否存在、没有孤立的页面。
链接测试可以自动进行,现在已经有许多工具可以采用,它在集成测试阶段完成。
测试结果:本系统的几乎所有的页面链接都经过测试,结果正确无误。
2、表单测试
当用户给Web应用系统提交信息时,就需要使用表单操作,必须测试其提交操作的完整性及正确性。
如果表单只能接受指定的某些值,则也要进行边界测试。
例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
测试结果:本系统的所有的表单都经过测试,经过一定的输入字符操作,结果正确无误。
3、Session测试
Session通常用来在服务器端存储的一段用户信息。
Session测试的内容可包括Session是否起作用、Session否按既定的时间内保存、Session的刷新等。
测试结果:本系统的用户登陆Session测试无误。
4、数据库测试
在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统中的数据存储的请求等提供空间。
在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据
一致性错误和输出错误。
数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
测试结果:本系统中的表单错误信息时,系统基本都能返回提示信息。
4.1.2 性能测试
1、连接速度测试
用户连接到Web应用系统的速度由用户的上网方式决定。
如果连接速度太慢,可能引起数据丢失,或者用户关闭页面离开。
由于本系统架构在局域网中,速度有保障。
因而在测试过程中,没有发现因为连接速度而出错。
2、负载测试
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。
负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。
例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求。
3、压力测试
负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。
压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。
黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
测试结果:由于本系统用于局域网,用户并发操作小,故没有进行压力测试。
4.1.3 安全性测试
Web应用系统的安全性测试区域主要有:
现在的Web应用系统基本采用先注册,后登陆的方式。
因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
为了保证Web应用系统的安全性,日志文件是至关重要的。
需要测试相关信息是否
写进了日志文件、是否可追踪。
当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。
所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
测试结果:经测试用户登陆,用户名和密码大小写敏感;Session在半个小时内有效;管理员操作的日志可追踪。
没有进行安全漏洞测试。
第5章项目总结报告
5.1 项目总结
5.1.1 软件工程方面
1)做好需求分析。
仔细分析体会用户需求,并写成详细的需求说明书,是项目成功的保障。
在完成这个项目的过程中,我曾以为对项目需求已经很清楚了,但是在具体的开发过程中才发现一些需求不很清楚,甚至遗漏了重要的需求,从而影响了开发进度。
这些都是我在没有做好需求分析(特别是形成详细的需求说明书),便急于动手而造成项目风险的良好教训。
2)详细设计及其文档不可或缺。
作了几个项目之后,才会对详细设计文档的重要性有了切身的体会。
如果没有及时将一些设计思路、设计成果记录在案,那么在编码过程中往往出现设计偏差、所作非所想、失败返工等情况。
3)统一良好的编码规范。
一套良好、规范的代码规范,提高了个人的开发效率,也提升了代码的可读性,也降低代码的维护难度。
4)测试工作不能忽视。
全面而规范的测试,不仅可以验证系统是否满足既定需求,也可以提升开发人员的开发水平。
系统的测试之纵向测试包括从单元测试到集成测试,直至确认测试,部分项目工程甚至要进行α测试和β测试;横向包括功能测试,负载测试,压力测试,涉及网络的还要进行安全性测试等等。
测试有多深,长进就有多大。
5.1.2 客观条件方面
1)良好的工作环境,写出来的代码效率高,例外情况考虑较全面,并且出错的可能性也少。
2)优秀的开发团队,一个技术氛围浓厚的团队会让成员以最快的速度在技术、管理、思想等等方面得到提高。
5.1.3 主观条件方面
性格决定“命运”,情绪左右“成败”。
用心去作,是事业成功的不二法则。