网上在线文档系统的设计与实现文档格式.docx
- 文档编号:20045280
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:19
- 大小:281.36KB
网上在线文档系统的设计与实现文档格式.docx
《网上在线文档系统的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《网上在线文档系统的设计与实现文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
database
第1章绪论
1.1课题背景
作为互联网开发所涉及的众多技术中,最为关键的网站建设技术在现代国内外网站的发展上起到了至关重要的作用,互联网上发布信息主要是通过网站来实现的,获取信息也是在互联网中按照一定的检索方式将所需要的信息从网站上下载下来。
因此网站建设在Internet应用上的地位显而易见,倍受人们的重视。
网络信息的发展,使得人们可以通过网络在最短的时间内阅读到自己所需的图书,给人们在繁忙的工作生活中读书活动带来了很大的便捷,网上阅读也成为了一种流行趋势。
1.2研究现状
近年来由于网站的种类与形式越来越鲜明,类似于文档的阅读下载网站发展的也越来越多。
网上在线文档系统能够将计算机内的各类文档分类管理,显示出该文档的文件名、类型等信息,方便各类用户查找和使用,此系统对资料利用上资源共享,从而完全保护用户的硬件、软件和网络资源的投资,最重要的一点是保护用户已有信息资产的投资,提供海量数据存储功能,提供完善而科学的安全机制,使其在高度安全的前提下具有最大的开放性,提供原件电子文档的上传功能,提供原件电子文档的下载重复利用功能。
因此,开发这样的文档系统是网上阅读的必然需求。
第2章相关理论基础
2.1设计语言:
java简介
Java是一种被广泛使用的编程语言,它被用于构建可在Internet上运行的程序。
它的主要特点在于,它是一种既面向对象又可跨平台的语言。
跨平台是指程序可以跨越多种平台(MicrosoftWindows、AppleMacintosh和Linux等)运行,即编写一次,随处运行。
Java不仅适用于单机应用程序和基于网络的程序,而且也可用于创建消费类设备和附件程序,如移动电话,掌上导航系统和其他小配件。
Internet使Java成为目前最流行的编程语言,同时Java对Internet的影响也意义深远。
Java可以和HTML(超文本标识语言)无缝集成,把静态的超文本文件变成可执行的应用程序,极大的增强了超文本的可交互操作性。
在Java出现以前,几乎没有什么工具可以在Internet上执行动态交互程序。
2.2数据库管理系统:
MySQL简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
在2008年1月16号被Sun公司收购。
而2009年,SUN又被Oracle收购。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低、使用普及率高和性能出色,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.3开发工具:
MyEclipse简介
Eclipse是一个开放源代码的、基于Java的可扩展的开发平台,也成为开发工具。
Eclipse是一个功能完整且成熟的开发环境,由蓝色巨人IBM所发布,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会管理。
MYEclipse是一个开源的开发项目,它是Eclipse的一个插件,专门用来开发JavaEE程序。
2.4运行服务器:
Tomcat6.0简介
Tomcat服务器是一个免费的开放源代码的Web应用服务器。
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
第3章需求分析
3.1需求的意义
需求是软件工程中最重要的环节,如果不能在项目实施过程中把项目的需求弄清楚,后面所作的所有工作可能都是空中楼阁,最终是不能完成项目的。
需求是后面所有工作的基础,在整个项目过程中大概需要30%以上的时间都投入在需求分析阶段,并且需要有专门的需求分析人员与需求方面进行沟通,分析。
铁路数据处理系统的数据处理模块在需求分析阶段投入了大量的工作。
3.2需求的任务
需求分析是软件开发流程中重要的一个环节,需求分析的基本任务是根据用户的需求,准确定义要完成的系统的目标,回答系统必须“做什么”的问题。
通过与用户进行沟通,了解用户需要项目实施人员实现什么样的功能,指导后面项目实施人员向一个正确的开发方向,这里的需求方是指用户。
这时只有需求分析人员了解用户的真正需求,所以需求文档的输出是由需求分析人员完的,需求分析人员需要真确简练的表达用户的需求。
另外,需求分析人员还有另外的用户:
项目实施人员,项目实施人员并不知道用户的需求,他们只能从需求分析分析人员那里知道自己需要做什么。
所以需求分析人员是对系统最了解的人。
3.3业务分析
系统采用浏览器/服务器(简称B/S)结构,用户可以在线进行电子文档的提交和共享,搜索有利用价值的资料,从而提高了用户办公与开发的效率,缩短了开发周期及减少了开发费用,解决了施工企业分散作业与集中管理的矛盾。
系统主要由以下几个模块组成:
文档上传模块,文档下载模块,文档查询模块,文档管理模块,身份验证模块,系统管理模块。
系统实现了用户登录,文档上传,文档下载,文档信息修改。
使用本系统,客户端用户只需要通过浏览器访问就可以实现对文档阅读、下载的操作。
第4章数据库的设计与实现
4.1数据设计简介
数据库设计是电子文档管理系统设计的很重要的一部分,将影响到系统以后数据的质量、数据库的可扩展性、数据运行的效率等,设计又分逻辑结构和物理结构两部分。
逻辑结构是系统处理的事件的数据之间的关系、分类、结构、这种结构是从用户的角度来看待数据,是面向用户的。
逻辑结构的设计影响到数据库的冗余程度及可扩展性。
物理结构是数据在存储设备(如磁带机,硬盘等硬件设备)上的分布,是面向机器的,物理结构的设计将对数据的存储速度、效率,数据的可恢复性产生影响。
关系型数据库是目前广泛应用于管理信息系统的开发一种数据库,关系型数据库是一种通过建立数据之间的关系来减少数据间的冗余,减少对数据的操作,从而减少误操作,提高效率。
关系型数据库可通过建立数据间的关系将电子文档管理过程的各个环节的数据整合起来。
4.2数据库涉及的实体
从功能模块的划分可知,本系统主要涉及两类实体:
用户和文件。
●用户实体:
需要记录用户的信息,包括姓名,电子邮件,口令等。
●文件实体:
需要记录文件的信息,文件的名称,文件的上传时间,文件的所有者。
为了更好的描述文件,还需记录文件的标题和类型。
这两个实体之间有一种关系,就是每个上传文件的用户是这个文件的所有者。
在设计数据库表时要注意两个实体之间关系的确立。
在设计数据库表时,一般要遵循下面几条原则:
●数据库的一个表,最好只存储一个实体或者对象的相关信息,最好能够遵循数据库设计中的第三范式。
●数据表的信息结构一定要合适,字段的数量一般不要过多。
●扩充信息和动态变化的信息一定要分别放在不同的表里。
●数据库表中最好有一个表示时间的字段。
●表的名字最好能够反映实体的含义,名字前最好有一个前缀或者后缀,这样当同时使用表和视图时,容易区分。
●字段的命名规则尽量一致,统一使用英文单词或者汉语拼音。
4.3创建数据库和表
首先要创建一个数据库,在这里我们暂且使用MYSQL。
在MYAQL中创建一个数据库,名称为“file_db”。
然后再创建四张表:
admin、tb_userinfo、t_resource和t_classinfo。
admin权限表4-1
字段名
类型
是否是主键
是否为空
描述
username
varchar(20)
否
NOTNULL
权限
password
密码
t_userinfo用户信息表4-2
accountNo
是
用户名
varchar(40)
varchar(50)
NULL
用户邮箱
t_resource文件表4-3
是否是主键
resourceId
int(11)
文档id
resourceName
否
文档名称
classObj
文档类型
author
作者
uploadDate
varchar(10)
上传时间
userobj
上传者
filename
文档名
t_classinfo文件分类表4-4
classId
分类id
className
分类名
在创建表的时候,注意表之间的关系,文件表的userobj是用户信息表的外键,文件表的classObj是文件分类表的外键。
在MYSQL中创建表的脚本文件如下:
1)admin表
DROPTABLEIFEXISTS`admin`;
CREATETABLE`admin`(
`username`varchar(20)NOTNULL,
`password`varchar(20)DEFAULTNULL,
PRIMARYKEY(`username`)
)ENGINE=InnoDBDEFAULTCHARSET=gbk;
2)t_userinfo表
DROPTABLEIFEXISTS`t_classinfo`;
CREATETABLE`t_classinfo`(
`classId`int(11)NOTNULLAUTO_INCREMENT,
`className`varchar(20)DEFAULTNULL,
PRIMARYKEY(`classId`)
)ENGINE=InnoDBAUTO_INCREMENT=3DEFAULTCHARSET=gbk;
3)t_resource表
DROPTABLEIFEXISTS`t_resource`;
CREATETABLE`t_resource`(
`resourceId`int(11)NOTNULLAUTO_INCREMENT,
`resourceName`varchar(20)DEFAULTNULL,
`classObj`int(11)DEFAULTNULL,
`author`varchar(20)DEFAULTNULL,
`uploadDate`varchar(10)DEFAULTNULL,
`userobj`varchar(20)DEFAULTNULL,
`filename`varchar(50)DEFAULTNULL,
PRIMARYKEY(`resourceId`),
KEY`FKA6329B9990FE41DE`(`userobj`),
KEY`FKA6329B99B448F46C`(`classObj`),
CONSTRAINT`FKA6329B99B448F46C`FOREIGNKEY(`classObj`)REFERENCES`t_classinfo`(`classId`),
CONSTRAINT`FKA6329B9990FE41DE`FOREIGNKEY(`userobj`)REFERENCES`t_userinfo`(`accountNo`)
)ENGINE=InnoDBAUTO_INCREMENT=7DEFAULTCHARSET=gbk;
4)t_classinfo表
DROPTABLEIFEXISTS`t_userinfo`;
CREATETABLE`t_userinfo`(
`accountNo`varchar(20)NOTNULL,
`password`varchar(40)DEFAULTNULL,
`email`varchar(50)DEFAULTNULL,
PRIMARYKEY(`accountNo`)
4.4数据表设计结果
admin权限图4-1
t_userinfo用户信息图4-2
t_resource文件图4-3
t_classinfo文件分类图4-4
4.5数据表的关系图
图4-5
第5章系统设计
5.1系统的总体设计与构思
5.1.1系统的设计原则
在进行概要设计时,我们应对照系统的需求分析来进行系统的整体设计,在保证实现系统功能需求的基础上,逐步实现系统的概要设计。
在整个系统中按照功能的实现可以划分为不同的几大模块,对各个模块再做相关的处理,具体实现方法将在详细设计中阐述,在概要设计中主要的任务就是把整个系统的轮廓描述出来,按照实现的功能的不同确立系统的各个模块。
在做此设计时应遵循如下原则:
(1)低成本。
随着技术的进步和系统复杂性的增加,软件成本在整个系统中所占的比重越来越大,企业应用中已经达到25%左右,而且有继续增加的趋势。
为了降低系统的成本,系统中各个模块都采用开源项目中的组件完成。
它们不仅能够提供比较完善的功能,而且还能根据系统需求进行适当扩展。
(2)规范性。
从软件周期上来考虑,软件维护阶段在软件生命周期或生存期中占较大比重,有的可达软件生存周期的50-70%。
所以需要软件在设计的过程中积极遵循各种规范,保证后期维护和开发人员能够快速理解系统。
(3)易扩展性。
系统的设计直接决定可扩展性。
可扩展性是软件工程追求的目标,能够大大提高软件的复用程度,较低开发成本。
本系统中采用界面与后台处理完全分离的形式,另外系统采用面向接口编程,这在很大程度上增加了系统的扩展性。
系统采用分层机制设计,建立专门的数据访问层、服务层等,采用设计模式中的思想优化设计,从而最大程度上提高系统可扩展性。
5.1.2系统框架图
此系统的每一部分都实现了其相关的功能,在整个系统中各角色分工明显,各司其职。
系统文件主要架构图如下:
5.2模块的设定及模块的功能
模块分析是描述系统需求的一个过程,需要将需求分析中的感性描述进行抽象,提取出需要实现的功能,是整个系统开发的一个关键过程。
分析的根本目的是在开发的人和提出需求的人之间建立一种理解和沟通的机制。
在整个软件的构建中使用MVC模式,在模块划分中同时指出用什么技术规范实现。
根据前面提出的系统需求,对其模块的划分与功能描述如下:
5.2.1文档管理模块
1)文件上传表单的显示,用JSP实现
2)处理用户上传的文件,用Struts2实现
3)下载或者删除文件,用Struts2实现
4)查询所有的文件,用Struts2实现
5)显示所有的文件列表,用JSP实现
5.2.2用户管理模块
1)用户登录表单的显示,用JSP实现
2)用户登录和注销操作,用Struts2实现
3)用户的删除,用Hibernate实现
4)查询所有的用户,用Struts2实现
5)所有用户的显示,用JSP实现
5.3系统的功能需求
作为一个实用完善的系统,合理的系统用户分配以保证系统安全是十分必要的,从便于管理的角度出发,系统的用户可分为系统管理员,上传者和浏览者三类,分别有各自的功能权限。
5.3.1管理员
管理员可以进行系统维护。
系统维护主要用来设置一些初始化信息,如用户信息、文档资源信息,维护包括添加、删除和修改三种基本的操作、管理员是最大权限的用户,拥有本系统的所有功能的权限,管理员的职责主要是管理用户和维护系统。
下图是它的用例图。
图5-3-1
5.3.2上传者
上传者可以登陆后,添加文档资源信息即上传文档,查看自己已上传的文档资源并操作如编辑和删除。
图5-3-2
5.3.3浏览者
浏览者可以不注册登陆就查看和下载文档资源,但若是想上传文档资源就必须先注册。
图5-3-3
第6章在线文档系统的详细设计
6.1文档管理模块
6.1.1文档上传
本系统是利用Struts2实现的文件上传,虽然Struts2本为提供自己的上传文件组件,但Struts2可以使用其他的上传文件组件,如Commons-FileUpload、COS等。
Struts2为这些上传组件做了统一的接口,开发人员使用时,并不需要知道这些上传组件的细节就可轻松使用,不需要修改程序,而只需修改配置文件。
本系统使用的为Commons-FileUplosd上传组件,只需在Myeclipse中引用commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar文件即可。
图6-1-1
图6-1-2
图6-1-3
6.1.2文档下载
本系统是通过Struts2进行文件下载,Struts2提供了一个stream结果,该结果只需要简单地配置,就可以使用Action类实现文件下载。
图6-1-4
6.2用户模块
6.2.1用户注册
本系统使用Struts2框架实现用户的注册,系统中将操作数据库和处理逻辑的代码单独封装在DAO实现类中。
这有利于代码的维护,更使代码的层次变得清晰。
图6-2-1
6.2.2用户登录
本系统使用Struts2框架实现用户的登录,系统中将操作数据库和处理逻辑的代码单独封装在DAO实现类中。
图6-2.2
6.3用户管理模块
此模块是通过在JSP页面中使用了Struts2标签来获得数据,并使用Action类属性来封装这些数据。
JSP技术可以将静态内容(如HTML、Javascript等)和动态内容(如Java代码)混合在一个文件中,使内容易通过客户端输出,更提供了代码的易读性。
图6-3.1
图6-3.2
6.4安全退出
此模块是通过一个Servlet——logout完成退出功能。
图6-4
第7章系统测试
由于软件开发复杂性的原因,软件开发过程中不可避免的会产生各种错误。
为了在软件开发的顺利完成以及在软件投入实际运营之前,尽可能多地发现软件当中的错误,需要尽可能全面地对软件进行测试。
目前软件测试仍然是保证软件质量的关键步骤,它是对软件需求分析、设计以及编码的最后的检查。
对应于软件开发的各个过程,软件测试也分为几种不同的层次。
每一个层次都是下一层次的继续。
(1)单元测试,单元测试对应于详细设计部分,从软件的详细设计中导出。
软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
(2)集成测试,集成测试对应于系统的概要设计,主要用来的是各个模块之间的接口的正确性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 在线 文档 系统 设计 实现