图书管理系统详细设计.docx
《图书管理系统详细设计.docx》由会员分享,可在线阅读,更多相关《图书管理系统详细设计.docx(19页珍藏版)》请在冰点文库上搜索。
图书管理系统详细设计
项目编号
文档编号
密级
图书管理系统详细设计
V1.0
评审日期:
年月日
目录
1.导言4
1.1目的4
1.2范围4
1.3缩写说明4
1.4术语定义4
1.5引用标准5
1.6参考资料5
1.7版本更新信息5
2系统设计概述5
3详细设计概述6
4登录管理模块的详细设计6
4.1视图层7
4.2控制层7
4.3模型层8
5读者管理模块的详细设计8
5.1视图层9
5.2控制层9
5.3模型层9
6图书管理模块的详细设计9
6.1视图层10
6.2控制层10
6.3模型层10
7系统管理模块的详细设计10
7.1视图层11
7.2控制层11
7.3模型层11
8配置文件22
8.1Web.xml配置文件23
8.2strcut-config.Xml配置文件24
1.导言
1.1目的
该文档的目的是描述《图书管理系统》项目的详细设计,其主要内容包括:
-系统功能简介
-系统详细设计简述
-各个模块的三层划分
-最小模块组件的伪代码
本文档的预期的读者是:
●开发人员
●项目管理人员
●测试人员
1.2范围
该文档定义了系统的各个模块和模块接口,但未确定单元的具体实现,这部分内容将在实现中确定。
1.3缩写说明
JSP
JavaServerPage(Java服务器页面)的缩写,一个脚本化的语言。
MVC
Model-View-Control(模式-视图-控制)的缩写,表示一个三层的结构体系。
1.4术语定义
Struct:
一种框架体系结构。
1.5引用标准
[1]《企业文档格式标准》V1.1
北京长江软件有限公司
[2]《软件详细设计报告格式标准》V1.1
北京长江软件有限公司软件工程过程化组织
1.6参考资料
[1]《软件工程案例教程软件项目开发实践》第二版韩万江姜立新等编著机械工业出版社
1.7版本更新信息
本文档版本更新记录如表C-1:
表C-1版本更新记录
修改编号
修改日期
修改后版本
修改位置
修改内容概述
000
2012.10.1
1.0
全部
初始发布版本
2系统设计概述
根据《图书管理系统》的概要设计,本系统按照功能角度分解,可以分为用户端子系统和管理端子系统。
根据页面流的设计,图书管理端子系统、系统管理端子系统、用户端子系统、的关系如图C-1,以下将分小节对各个部分分别进行详细设计。
3详细设计概述
由于本系统采用了基于Structs体系结构的设计,即采用MVC的三层设计模式,采用面向对象的Java语言以及JSP的脚本语言。
所以基本采用面向对象的设计方法。
在整个的开发过程中,尽可能采用复用的原则,例如采用标签库,统一数据库的基本操作,统一结果显示等。
本文档的详细设计主要是按照Structs的MVC的三个层次分别编制视图层、控制层和模型层模块的伪代码。
为下一步的编码提供基础。
伪代码(Pseudocode)是一种算法描述语言。
使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现。
因此,伪代码必须结构清晰,代码简单,可读性好,并且类似自然语言。
4登录管理模块的详细设计
登录管理模块主要负责用户和管理员的登录,系统框架可分成三层结构,即视图层、控制层和模型层三个层次的模块如表C-2所示。
视图
控制器
模型
login.jsp
main.jsp
LoginForm
LoginAction
DB.java
Constants.java
User.java
表C-2:
登录管理的三层模块
4.1视图层
根据上述的功能介绍,视图页面设计如表C-3所示。
界面
JSP
功能描述
登陆界面
login.jsp
登录的主页面
主页面1
main1.jsp
读者的主页面
主页面2
main2.jsp
图书管理员的主页面
主页面3
main3.jsp
系统管理员的主页面
页面上端
top.jsp
复用页面:
首页面上部分
页面下端
bottom.jsp
复用页面:
首页面下部分
页面左端
left.jsp
复用页面:
首页面左部分
表C-3:
登录管理模块的页面设计
根据界面流的设计可以确定各个界面的访问入口以及界面之间的切换关系,页面流程如图C-2所示。
表C-4:
登录管理的页面流程图
4.2控制层
登录管理的控制层主要是设计用户的登录事件(Action)的流程控制。
表C-4列出了每个Action的入口(即调用Action的组件)、传递Action的ActionForm以及出口(即Action将请求转发到目标组件)。
事件
Action
入口
ActionForm
出口
用户登录
LoginAction
Login.jsp
LoginForm
main.jsp
图C-5登陆管理的控制层设计
4.3模型层
登录管理的模型组件负责完成用户信息的数据库操作的业务逻辑模型,建立封装了用户信息的bean,这个bean主要验证用户相关信息是否存在,并判断其权限。
模型组件如表C-6所示。
模型组件
描述
DB.java
封装数据库操作的bean
UserBean.java
封装用户信息的bean
图C-6登陆管理的模型组件
5读者管理模块的详细设计
读者管理主要是进行图书检索、图书信息查询、图书预约、逾期缴款、历史记录、期刊推荐、我的书架、个人信息修改等操作。
读者管理的Structs视图层、控制层和模型层三个层次的模块如表C-7所示。
视图
控制器
模型
checkbook.jsp
booknews.jsp
bookorder.jsp
delayfee.jsp
history.jsp
journal.jsp
mybookself.jsp
update.jsp
ReaderForm
ReaderAction
DAO层
业务逻辑层
实体
Reader.java
DB.java
表C-7:
读者管理模块的三层模块
5.1视图层
根据上述的功能介绍,总结出读者管理功能的页面设计如表C-8所示。
界面
JSP
功能描述
读者管理首页
reader.jsp
读者的首页
图书检索页面
checkbook.jsp
检索图书
查看图书信息页面
booknews.jsp
查询图书的作者、出版社等
预定图书页面
bookorder.jsp
预定图书
逾期缴款页面
delayfee.jsp
逾期缴款
历史记录页面
history.jsp
查询借过的书,未还的书等
期刊推荐页面
journal.jsp
期刊推荐
我的书架页面
mybookself.jsp
我喜欢的书,我的收藏等
修改个人信息页面
update.jsp
修改个人信息
表C-8:
读者管理模块的页面设计
读者管理模块各个表示页面之间的关系如图C-9所示。
5.2控制层
读者管理控制层主要负责进入图书检索页面、图书信息查询页面、图书预约页面、逾期缴款页面、历史记录页面、期刊推荐页面、我的书架页面、个人信息修改页面等事件的流程控制。
表C-10列出了读者管理控制层每个Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm以及出口(即Action将请求转发到目标组件)。
事件
Action
入口
ActionForm
出口
读者管理首页
ReaderActionmethod=reader
main1.jsp
ReaderForm
reader.jsp
图书检索页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
checkbook.jsp
查看图书信息页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
booknews.jsp
预定图书页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
bookorder.jsp
逾期缴款页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
delayfee.jsp
历史记录页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
history.jsp
期刊推荐页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
journal.jsp
我的书架页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
mybookself.jsp
修改个人信息页面
ReaderActionmethod=reader
reader.jsp
ReaderForm
update.jsp
表C-10:
读者管理的控制层设计
5.3模型层
读者管理业务逻辑层设计主要包括建立封装了角色信息的bean——Role.java,建立了封装数据库操作的bean——DB.java。
模型组件
描述
DB.java
封装数据库操作的bean
Reader.java
封装读者信息的bean
表C-11:
读者管理的模型层组件
6图书管理模块的详细设计
图书管理主要是进行还书、借书、查询读者信息的操作。
读者管理的Structs视图层、控制层和模型层三个层次的模块如表C-12所示。
视图
控制器
模型
returnbook.jsp
borrowbook.jsp
checkuser.jsp
CheckuserForm
CheckuserAction
DAO层
业务逻辑层
实体
checkuser.java
DB.java
表C-12:
图书管理三层模块
6.1视图层
根据上述的功能介绍,总结出读者管理功能的页面设计如表C-13所示。
界面
JSP
功能描述
图书管理首页
managebook.jsp
图书管理员的首页
还书页面
returnbook.jsp
还书、续借
借书页面
borrowbook.jsp
借阅图书
读者信息查询页面
checkuser.jsp
查询读者信息
表C-13:
图书管理模块的页面设计
读者管理模块各个表示页面之间的关系如图C-14所示。
6.2控制层
图书管理控制层主要负责还书、借书、查询读者信息的流程控制。
表C-15列出了读者管理控制层每个Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm以及出口(即Action将请求转发到目标组件)。
事件
Action
入口
ActionForm
出口
图书管理首页
CheckuserActionmethod=mangerbook
Main2.jsp
CheckuserForm
managebook.jsp
还书页面
CheckuserActionmethod=mangerbook
managebook.jsp
CheckuserForm
returnbook.jsp
借阅图书页面
CheckuserActionmethod=mangerbook
managebook.jsp
CheckuserForm
borrowbook.jsp
预定图书页面
CheckuserActionmethod=mangerbook
managebook.jsp
CheckuserForm
checkuser.jsp
表C-15:
图书管理的控制层设计
6.3模型层
读者管理业务逻辑层设计主要包括建立封装了读者借阅信息信息的bean——checkuser.java,建立了封装数据库操作的bean——DB.java。
模型组件
描述
DB.java
封装数据库操作的bean
checkuser.java
封装读者借阅信息的bean
表C-16:
读者管理的模型层组件
7系统管理模块的详细设计
系统管理模块主要实现增删图书、修改图书、增删读者、修改读者信息、查询信息功能,系统管理的Struct视图层、控制层和模型层三个层次的模块如表C-17所示。
视图
控制器
模型
addbook.jsp
delbook.jsp
updatebook.jsp
adduser.jsp
deluser.jsp
updateuser.jsp
checknews.jsp
ManageForm
ManageAction
DAO层
业务逻辑层
实体
manage.java
DB.java
表C-17:
系统管理模块的三层模块
7.1视图层
根据上述的功能介绍,总结出读者管理功能的页面设计如表C-18所示。
界面
JSP
功能描述
系统管理首页
manage.jsp
系统管理首页
添加图书页面
addbook.jsp
添加图书
删除图书页面
delbook.jsp
删除图书
添加读者页面
adduser.jsp
添加读者
删除读者页面
delbook.jsp
删除读者
修改图书信息页面
updatebook.jsp
修改图书信息
修改读者信息页面
updateuser.jsp
修改读者信息
查询页面
checknews.jsp
查询信息
表C-18:
系统管理模块的页面设计
读者管理模块各个表示页面之间的关系如图C-19所示。
7.2控制层
读者管理控制层主要负责增删图书、修改图书、增删读者、修改读者信息、查询信息的流程控制。
表C-10列出了读者管理控制层每个Action的入口(即调用Action的组件,在此模块中共用一个Action,不同功能使用不同方法实现)、传递Action的ActionForm以及出口(即Action将请求转发到目标组件)。
事件
Action
入口
ActionForm
出口
读者管理首页
ManageActionmethod=manage
Main3.jsp
ManageAction
manage.jsp
添加图书页面
ManageActionmethod=manager
manage.jsp
ManageAction
addbook.jsp
删除图书页面
ManageActionmethod=manage
manage.jsp
ManageAction
delbook.jsp
修改图书信息页面
ManageActionmethod=manage
manage.jsp
ManageAction
updatebook.jsp
添加读者页面
ManageActionmethod=manage
manage.jsp
ManageAction
adduser.jsp
删除读者页面
ManageActionmethod=manage
manage.jsp
ManageAction
deluser.jsp
修改读者信息页面
ManageActionmethod=manage
manage.jsp
ManageAction
updateuser.jsp
查询信息页面
ManageAction
method=manage
manage.jsp
ManageAction
checknews.jsp
表C-20:
读者管理的控制层设计
7.3模型层
读者管理业务逻辑层设计主要包括建立封装了读者借阅信息信息的bean——manage.java,建立了封装数据库操作的bean——DB.java。
模型组件
描述
DB.java
封装数据库操作的bean
manage.java
封装管理信息的bean
表C-21:
读者管理的模型层组件
8配置文件
Struct应用采用两个基于XML的配置文件来配置应用,这两个配置文件为Web.xml和strcut-config.Xml。
Web.xml适用于所有的JavaWeb应用,他是Web应用的发布描述文件,在JavaServlet规范中对它做了定义,对于Struct应用,在Web.xml文件中除了配置JavaWeb应用的常规信息,还应该配置和Struct相关的特殊信息。
strcut-config.Xml是Struct应用专有的配置文件,事实上,也可以根据需要给这个配置文件换为其它的文件名。
下面给出本项目中Web.xml配置文件和strcut-config.Xml配置文件的配置步骤和范围,在编码实施过程中,由开发经理指派专人负责所有文件的具体配置和协调。
8.1Web.xml配置文件
Web.xml配置文件的配置步骤和范围
一、配置Struct的ActionServlet
在Web.xml中配置ActionServlet主要包括声明ActionServlet(即配置元素)、运行时环境的初始化配置(即配置元素的的子元素)和指定ActionServlet可以处理哪些URL(即配置元素)。
例如
action
org.apache.structs.action.ActionServlet
config
/WEB-INF/struct-config.xml
action
*.do
二、配置欢迎文件清单
当客户访问Web应用时,如果没有指定具体的文件名,Web容器可以自动调用Web应用的欢迎文件。
元素用来设置欢迎文件清单。
例如:
index.jsp
login.jsp
三、配置错误处理
在系统运行过程中如果错误发生而Struct框架不能处理这种错误时,就将错误抛给Web容器,为了避免让用户看到原始的错误信息,可以配置元素及其子元素和等.例如:
404
/common/404.jsp
java.io.IOException
/common/system_ioerror.jsp
四、配置标签库
Strcut框架提供了一些实用的客户化标签库,如果在应用中使用了标签库,那么必须在配置元素中配置它们,它有两个子元素,和.例如:
/WEB-INF/struts-bean.tld
/WEB-INF/struts-bean.tld
8.2strcut-config.Xml配置文件
Struts框架在启动的时候会读入其配置文件,根据它来创建和配置各种组件.Struts配置文件使得开发者可以灵活地组装和配置各个组件,提高了应用软件的可扩展性和灵活性.
有8个子元素:
●
●,
●,
●,
●,
●,
●,
●
在配置文件中,必须按照这个先后顺序来配置各个子元素.
一、元素
元素用来配置应用所需要的数据源,数据源负责建立和特定数据库的连接。
元素包含零个、或者多个子元素,它配置特定的数据源,可以包含多个。
例如:
microsoft:
sqlserver:
//127.0.0.1:
1433;DatabaseName=onlineCV"/>
二、元素
元素用来配置多个ActionFormBean。
<