网上订餐系统详细设计范本模板.docx
《网上订餐系统详细设计范本模板.docx》由会员分享,可在线阅读,更多相关《网上订餐系统详细设计范本模板.docx(19页珍藏版)》请在冰豆网上搜索。
网上订餐系统详细设计范本模板
2011级软件工程综合设计
《网上订餐系统》
详细设计
文档标识
UB-1
英文标题
OnlineReservationSystem
版本号
1。
0
状态
初始版
密级
承担单位:
***********************
总负责人:
XXX
小组成员:
YYY、ZZZ
编 撰 人:
XXX、YYY、ZZZ
完成日期:
YYYY.MM.DD(宋体三号+加黑)
修订记录
修改编号
修改日期
修改后版本
修改位置
修改内容概述
修订人
001
0.1
初始发布版本
002
0.2
003
0。
3
004
0。
4
005
1。
0
1.1目的1
1.2范围ﻩ1
1。
4术语定义ﻩ1
1.5引用标准2
1。
6参考资料ﻩ2
2系统设计概述ﻩ2
3 详细设计概述3
6管理员模块的详细设计ﻩ6
6.1订单管理处理6
6.2管理员添加ﻩ7
7.1客户标签库8
12.3结果显示ﻩ14
8配置文件14
8.1Web.xml配置文件ﻩ14
8.2strcut-config。
Xml配置文件ﻩ16
1。
导言
1.1 目的
该文档的目的是描述《网上订餐系统》项目的详细设计,其主要内容包括:
-系统功能简介
-系统详细设计简述
-各个模块的三层划分
-最小模块组件的伪代码
本文档的预期的读者是:
●开发人员
●项目管理人员
●测试人员
1。
2范围
该文档定义了系统的各个模块和模块接口,但未确定单元的具体实现,这部分内容将在实现中确定。
1。
3 缩写说明
JSP
JavaServerPage(Java服务器页面)的缩写,一个脚本化的语言。
MVC
Model-View-Control(模式-视图-控制)的缩写,表示一个三层的结构体系.
1。
4 术语定义
USECASE
用例
会员
网上购物平台中合法的系统注册用户
Struct
一种框架体系结构
管理员
系统的管理者
购物车
存放用户在确定订餐前所点选的餐品
1。
5引用标准
[1]《企业文档格式标准》V1.1
ﻩ北京长江软件有限公司
[2]《软件详细设计报告格式标准》 V1。
1
北京长江软件有限公司软件工程过程化组织
1。
6参考资料
[1]《实战struct》〔美〕Ted Husted
机械工业出版社
2系统设计概述
根据《网上订餐系统》的概要设计,本系统按照功能角度分解,可以分为客户端子系统和管理端子系统.客户端子系统包括用户注册、用户登录、个人信息维护、餐品信息浏览、维护购物车、生成订单等六个模块。
管理端子系统包括登陆管理、维护顾客信息、维护餐品信息、管理订单等四个模块,他们的关系如图2-1,以下将分小节对各个部分分别进行详细设计.
图2-1
3详细设计概述
本系统总共有两大主要模块,分别是客户模块和管理员模块。
每个模块分别有不同的权限和使用功能。
4用户登录模块的详细设计
ﻩ N
ﻩ
Y
图4.1登录流程图
5用户管理模块的详细设计
用户的主要功能是浏览,订餐。
浏览与自己相关的美食信息,订单信息等。
用户要下订单之前美食车要把详细食物信息列出,物品的单价,购买的数量,总共的价钱,可修改和删除购买,当符合顾客要求的时候,顾客就可以下订单。
下订单时首先会让用户确定一下订单是否符合要求,确认无误后,进入填写接收信息后生成订单。
然后对数据库进行操作完成。
顾客模块详细设计主要涉及到顾客下订单和餐品搜索浏览两大功能,分别见图5。
1,图5。
2
顾客可以通过此功能对自己选中的东西下订单,等待服务商送货或自己取货。
5。
1顾客下订单
5。
2餐品搜索浏览
搜索控件,为顾客提供更为方便快捷的服务。
顾客可以快速找到自己想要下订的美食。
6管理员模块的详细设计
6.1 订单管理处理
6.2管理员添加
7
7复用的模块
复用是本系统设计的一个重要原则,尤其struct体系本身也遵循了复用的原理,本系统复用的部分主要包括标签库、数据库基本操作以及结果的显示等环节。
7.1客户标签库
客户标签库主要包括
(一)Struct标准标签库
本系统中使用了StructHtml标签、Struct Bean标签和StructLogic,他们是Struct标准标签库。
(二)自定义标签库
CV标签是系统自定义的标签库,表C—13是CV标签库的标签模块.
ﻩ表C—13:
CV标签库的标签模块
序号
标签
功能描述
1
ValidateSessionTag
身份验证
2
PageBeanTag
分页
表C-14是身份验证的伪代码说明,用户登录后进入的每个页面,为了安全的考虑管理端都需要进行用户验证,以防止非法登录,验证每个页面的JSP都可以标签的方式使用这个复用的。
表C-14:
身份验证的伪代码
/**
*@System:
OnlineCVSystem
*@Version:
1。
0
*@Copyright(C)2006by XXX, Inc。
AllRights Reserved.
*@Class:
ValidateSessionTag
*@Summary:
对用户的身份验证
*@Create:
2006.03。
28郭士榕
*@Update:
*/
packagetag;
importjavax.servlet.http。
HttpSession;
importjavax.servlet.jsp。
JspException;
import javax。
servlet.jsp。
tagext.TagSupport;
importorg。
apache。
commons。
logging。
Log;
import org。
apamons。
logging。
LogFactory;
/**
*ValidateSessionTag是客户端标签,以判断用户是否具有访问当前页面的权限
*通过保持、判断一个session实现
*/
publicfinal classValidateSessionTagextends TagSupport
{
ﻩprivateStringname="username”;
privateStringpage=”/login。
jsp";
privateLoglog=LogFactory。
getLog(this.getClass()。
getName());
public intdoEndTag()throwsJspException
{
booleanvalid= false;
ﻩHttpSession session=pageContext。
getSession();
ﻩ
ﻩ//判断session中是否有用户信息存在
//如果用户存在则不做任何处理
//用户不存在则跳转到指定的页面
ﻩ
}
publicintdoStartTag()throwsJspException
{
ﻩreturn (SKIP_BODY);
}
//获取用户信息
publicStringgetName()
{
ﻩ.。
。
.。
。
}
//获取用户当前访问的页面
publicStringgetPage()
{
.。
。
。
。
.
}
ﻩ//如果用户没有当前页面的访问访问权限,则返回到指定页面,设置这个指定页面
publicvoidrelease()
{
。
。
。
。
.。
}
//设置用户信息
publicvoidsetName(Stringname)
{
。
。
。
。
。
。
}
//设置当前页面
publicvoid setPage(String page)
{
ﻩ.。
。
。
。
。
}
}
7.2数据库的基本操作
所有的模块都需要进行数据库的操作,应该有一个通用的,高质量的数据库操作模块,其实所有的模型层的模块也都调用这个模块的.这个模块的名称是DBUtil,类名DB。
表C—15是它的伪代码描述。
表C-15:
数据库的基本操作
/**
* @System:
OnlineCV System
* @Version:
1.0
*@Copyright(C)2006 bychangjiangcompany,Inc。
All Rights Reserved.
*@Class:
DB
* @Summary:
取得数据库连接并对数据库进行查询、增加记录、删除记录操作
* @Create:
2006。
04。
27 李林
*@Update:
*/
packagecom.changjiangcompany.struts。
javashare;
importjava.sql。
*;
import java.util.*;
importcom。
microsoft.jdbcx。
sqlserver.SQLServerDataSource;
publicclass DB{
ﻩprivateStatementstmt=null;
ﻩprivateResultSet rs=null;
publicDBConnect()
{
ﻩ//初始化连接
ﻩ。
。
。
。
.
}
/**
ﻩ*方法:
executeQuery
*描述:
执行查询记录操作
* 输入参数:
String strsql要执行操作的sql语句
ﻩ*返回:
ArrayListArrayRs查询的结果
ﻩ*异常:
SQLException
*/
public ArrayListexecuteQuery(SQLServerDataSourcesource,StringstrSql)throwsSQLException
{
/*
ﻩﻩ*连接数据库
ﻩﻩ*/
/*
*执行SQL的查询语句
ﻩﻩ*/
。
。
。
。
。
。
/*
* 将每条记录写入ArrayList里
ﻩ */
ﻩ。
.。
。
..
}
/**
* 方法:
executeInsert
ﻩ*描述:
执行插入记录操作
ﻩ*输入:
Stringstrsql要执行操作的sql语句
ﻩ*返回:
boolean类型,插入操作是否正确执行
ﻩ*异常处理:
SQLException
*/
publicboolean executeInsert(SQLServerDataSourcesource,StringstrSql)throws SQLException
{
/*
*连接数据库
ﻩﻩ*/
/*
ﻩ *执行SQL的插入语句
ﻩ*/
。
。
。
。
。
。
ﻩﻩ/*
*返回SQL插入语句执行的正确或者错误
ﻩ*/
}
/**
*方法:
executeUpdate
*描述:
执行更新操作
* 输入:
Stringstrsql要执行操作的sql语句
ﻩ*返回:
int更新操作的记录数
*异常处理:
SQLException
ﻩ */
ﻩpublicintexecuteUpdate(SQLServerDataSourcesource,StringstrSql)throwsSQLException
{
/*
*连接数据库
ﻩ */
/*
ﻩﻩ* 执行SQL的修改语句
*/
。
。
...。
ﻩ/*
*返回SQL修改语句执行的记录数
*/
}
/**
* 方法:
executeDelete
ﻩ*描述:
执行删除操作
ﻩ*输入:
Stringstrsql 要执行操作的sql语句
ﻩ * 返回:
int 删除操作的记录数
*异常处理:
SQLException
*/
ﻩpublicintexecuteDelete(SQLServerDataSourcesource,StringstrSql)throwsSQLException
{
/*
ﻩﻩ* 连接数据库
ﻩﻩ*/
/*
ﻩﻩ*执行SQL的删除语句
*/
。
。
.。
。
。
/*
ﻩ*返回SQL删除语句记录数
ﻩﻩ */
}
12.3结果显示
为了保证系统显示结果的一致性和统一性,系统中所有的结果显示要调用统一的结果显示页面,表C-16是结果显示一览表。
表C-16:
结果显示页面一览表
序号
模块名
功能说明
1
SuccessResult
成功登陆
2
WrongResult
结果错误
3
Common
操作提示
4
Top
主页面的头部
5
Bottom
主页面的脚部
6
Left
主页面的右部
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(即配置<Servlet>元素)、运行时环境的初始化配置(即配置〈Servlet〉元素的的子元素)和指定ActionServlet可以处理哪些URL(即配置〈Servlet-mapping>元素)。
例如
〈servlet>
<servlet—name〉action
〈servlet-class>org.apache。
structs。
action.ActionServlet〈/servlet—class>
ﻩ
ﻩ〈param—name>config
ﻩ〈param-value〉/WEB—INF/struct-config.xml〈/param-value>
〈/init-param〉
〈/servlet>
<servlet-mapping〉
ﻩ
do
二、配置欢迎文件清单
当客户访问Web应用时,如果没有指定具体的文件名,Web容器可以自动调用Web应用的欢迎文件。
〈welcome-file-list〉元素用来设置欢迎文件清单。
例如:
〈welcome—file-list〉
ﻩindex.jsp〈/welcome-file>
<welcome—file〉login。
jsp
〈/welcome—file-list>
三、配置错误处理
在系统运行过程中如果错误发生而Struct框架不能处理这种错误时,就将错误抛给Web容器,为了避免让用户看到原始的错误信息,可以配置〈error—page〉元素及其子元素〈error-code>和<error-page>
ﻩ<error—code>404〈/error—code〉
ﻩﻩ〈location>/common/404。
jsp〈/location>
</error—page>
ﻩ〈 exception—type>java。
io.IOException〈/exception—type〉
ﻩ〈location〉/common/system_ioerror。
jsp〈/location〉
〈/error-page>
四、配置标签库
Strcut框架提供了一些实用的客户化标签库,如果在应用中使用了标签库,那么必须在配置元素〈taglib>中配置它们,它有两个子元素,〈taglib—url>和<taglib-location〉.例如:
〈taglib〉
〈taglib-url>/WEB-INF/struts—bean。
tld〈/taglib—url〉
〈taglib-location〉/WEB—INF/struts—bean.tld〈/taglib-location>
8。
2strcut-config。
Xml配置文件
Struts框架在启动的时候会读入其配置文件,根据它来创建和配置各种组件。
Struts配置文件使得开发者可以灵活地组装和配置各个组件,提高了应用软件的可扩展性和灵活性。