网上订餐系统概要设计.docx
- 文档编号:16768135
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:33
- 大小:351.02KB
网上订餐系统概要设计.docx
《网上订餐系统概要设计.docx》由会员分享,可在线阅读,更多相关《网上订餐系统概要设计.docx(33页珍藏版)》请在冰点文库上搜索。
网上订餐系统概要设计
2011级软件工程综合设计
《网上订餐系统》
概要设计
文档标识
UB-1
英文标题
OnlineReservationSystem
版本号
1.0
状态
初始版
密级
承担单位:
***********************
总负责人:
XXX
小组成员:
YYY、ZZZ
编撰人:
XXX、YYY、ZZZ
完成日期:
YYYY.MM.DD(宋体三号+加黑)
1.导言
1.1目的
该文档的目的是描述网上订餐系统项目的概要设计,其主要内容包括:
●系统功能简介
●系统结构设计
●系统接口设计
●数据设计
●模块设计
●界面设计
本文档的预期的读者是:
●开发人员
●项目管理人员
●测试人员
1.2范围
该文档定义了系统的结构和单元接口,但未确定单元的实现方法,这部分内容将在详细设计/实现中确定。
1.3缩写说明
UML
UnifiedModelingLanguage(统一建模语言)的缩写,是一个标准的建模语言。
MVC
Model-View-Control(模式-视图-控制)的缩写,表示一个三层的结构体系。
1.4术语定义
1.5引用标准
[1]《企业文档格式标准》
北京长江软件有限公司
[2]《软件概要设计报告格式标准》
北京长江软件有限公司软件工程过程化组织
1.6参考资料
[1]《实战struct》〔美〕Ted Husted
机械工业出版社
[2]《软件重构》
清华大学出版社
2.系统分析
本系统可以实现网上的在线订餐,顾客通过网上浏览餐品并进行选择产生订单。
同时,管理端可以汇总订单,浏览订单,并通过订单结果修改餐品相应信息,更新餐品信息,浏览顾客的评价等等。
方便顾客的订餐,以及网页餐品信息的管理。
系统包括管理端子系统和客户端子系统。
客户端子系统包括用户注册、用户登录、个人信息维护、商品信息浏览、维护购物车、生成订单。
管理端子系统包括登陆管理,维护顾客信息,维护餐品信息,管理订单。
图B-1和B-2为客户端和管理端的组成结构图。
图B-1:
客户端子系统图示
图B-2:
管理端子系统
3.界面设计
本系统的用户界面按功能分客户端和管理端。
3.1管理端界面设计
管理端主要实现登陆管理、用户管理、餐品信息管理、订单管理等功能。
主要界面设计如下:
-登录界面
◆通过用户名和密码实现用户登录,并判断用户的权限
-管理首页
◆根据用户的权限,进入首页,并在首页中展示此用户相应可以操作的权限功能。
-餐品信息管理
◆包括“餐品列表”、“餐品详细信息”、“修改餐品”、“增加餐品”、“删除餐品”和“预览餐品”等页面。
-订单管理
◆包括“订单列表”、“订单详细信息”、“查询订单”、“删除订单”和“修改订单信息”等页面。
-用户管理
◆包括“用户列表”、“用户信息”、“修改用户信息”、“添加用户”和“删除用户”、“用户权限设置”等页面。
具体页面流如下图B-3所示:
3.2客户端界面设计
客户端主要为顾客在网上订餐的过程
首先进入网上订餐界面,点击“用户注册”进入用户注册界面,包括“用户名设定”、“密码设定”、“填写个人基本信息”、等页面。
具体页面流如下图B-4所示:
图B-4:
客户端的页面流程
4.体系结构
系统的总体结构设计遵循如下原则:
1)系统应具有良好的适应性:
能适应用户对系统的软件环境、管理内容、模式和界面的要求;
2)系统应具有可靠性:
采用成熟的技术方法和软件开发平台,以保证在以后的实际应用中安全、可靠;
3)系统应具有较好的安全性:
应提高完善的安全机制和用户权限限制机制,确保数据的受限访问;
4)系统应具有良好的可维护性:
系统应易于维护、安装;
5)系统应具有良好的可扩展性:
系统应适应未来信息化建设的要求,能方便得进行功能扩展,以建立完善的信息集成管理体系。
本系统采用struts体系结构,Struts是一个基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架。
4.1体系结构
目前软件项目中有很多的体系结构,其中struct是比较流行的一种。
4.1.1Struct体系结构
对于开发Web应用,要从头设计并开发出一个可靠、稳定的框架不是一件容易的事情,随着Web开发技术的日趋成熟,在web开发领域出现了一些现成的优秀的框架,开发者可以直接使用它们,struct就是一个很好的框架结构,它是在JSPModel2基础上实现的一个MVC框架,它可以使你不必要从头开始全部开发组件,对于大项目更是很好的。
在Strcut框架中模型由实现业务逻辑的JavaBean或者EJB组件构成,控制器由ActionSevelet和Action来实现,视图由一组JSP文件组成,图B-5显示了Struct实现的MVC框架。
其中:
视图:
就是一组JSP文件,这些JSP文件没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或者是客户化标签,如Struct标签库的标签。
此外,通常将Strcut框架中的ActionFormBean也划为视图模块中,ActionFormBean是一种JAVABEAN,除了具有一些JAVABean的常规方法外,还包含了一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置默认值。
Struct框架利用ActionFormBean来进行视图和控制器之间表单数据的传递。
Strcut框架将用户输入的表单数据保存在ActionFormBean中,将它传递给控制器,控制器可以对ActionFormBean中的数据进行修改,JSP文件使用Strcut标签读取修改后的ActionFormBean的信息,重新设置HTML表单。
控制器:
控制器由ActionServlet类和Action类实现,ActionServlet类是Struct框架中的核心组件。
是这个MVC的中央控制器的角色,ActionServlet主要负责接收HTTP请求的信息,根据配置文件struct-config.xml的配置信息,将请求转发给适当的Action对象,如果该Action对象不存在,ActionServlet会先创建这个Action对象。
Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程,对于小型简单的应用,Action类本身也可以完成一些实际的业务逻辑。
模型:
模型表示应用程序的状态和业务逻辑,业务逻辑常常由JavaBean或者EJB组件实现。
如果在Web应用开发中套用现成的Struct框架,可以简化每个开发阶段的工作,开发人员可以更加有针对性地分析应用需求,不必重新设计框架,只需在Struct框架的基础上,设计MVC各个模块包含的具体组件,在编码过程中,可以充分利用Struct提供的各种实用类和标签库,简化编码工作。
Struct框架可以方便迅速地将一个复杂的应用划分成模型、视图和控制器组件,而Struct的配置文件struct-config.xml可以灵活地组装这些组件,简化开发过程。
4.1.2系统体系结构
根据系统分析结果,该系统从结构上应满足:
●基于浏览器进行显示以方便用户使用;
●采用MVC的三层体系结构,分化各个功能组件;
●采用JDBC技术与数据库通讯以便于数据库的转换;
●采用标签技术完成动态页面的简单逻辑。
本系统的体系结构如图B-6,它基本遵循了struct体系的MVC框架规范。
图B-6:
系统的体系结构
其中:
表示层:
用于与用户进行交互以及显示结果。
包括所有的JSP,提供用户界面,接受用户输入,还包括相应的ActionFromBean,用来存放表单数据,并进行表单数据验证。
控制层:
包括所有的Action类,它完成三项任务:
一是进行业务逻辑验证,二是调用模型组件,三是决定将合适的视图组件返回给用户。
模型:
进行逻辑处理的JavaBean等。
数据库采用ODBC技术以提供数据库的可移植性。
客户层主要是指用户登录的Web浏览器;中间层负责平台的业务逻辑处理和表示逻辑生成;服务层提供底层的信息数据库服务器。
1.客户层:
用于与企业信息系统的用户进行交互以及显示根据特定业务规则进行计算后的结果。
本系统将完全采用基于WEB的(B/S架构)客户端,即用户可以直接通过浏览器来访问和使用本系统。
2.中间层:
这相当于三层标准架构中的Web应用服务层,支持诸如响应客户请求以及查询等功能。
并且由中间层进行逻辑处理,再处理的结果反馈给客户或者发送到数据库中。
3.服务层:
主要是数据库系统,这里的数据库系统主要是关系数据库系统(RDMS)。
4.2系统运行环境
4.2.1 网络结构图
本系统的网络拓构图如图B-8:
图B-8:
系统的网络拓扑图
图B-8:
系统的网络拓扑结构图
其中的局域网用户机主要是公司内部的人员可以使用的机器,远程用户机主要是指通过互联网登录系统的人员使用的机器,可以是公司内部的人,也可以是应聘者。
4.2.2硬件环境
本系统的硬件环境如下:
●客户机:
普通PC
⏹CPU:
P41.8GHz以上
⏹内存:
256MB以上
⏹能够运行IE5.0以上或者Netscape4.0以上版本的机器
⏹分辨率:
推荐使用1024*768像素
●WEB服务器
⏹CPU:
P42.0GHz
⏹内存:
1G以上
⏹硬盘:
80G以上
⏹网卡:
千兆
●数据库服务器
⏹CPU:
P42.0GHz
⏹内存:
1G以上
⏹硬盘:
80G以上
4.2.3软件环境
本系统的的软件环境如下:
●操作系统:
Unix/Linux/windows2000或以上版本
●数据库:
SQLServer2000
●开发工具包:
JDKVersion1.4.2
●开发环境:
eclipse-SDK-3.1.2-win32
●Web服务器:
Tomcat
●浏览器:
IE6.0以上
(1)数据库及操作系统:
对于核心数据库来说,选择一个合适的数据库系统对我们的系统运行是很重要的,选择数据库的关键因素是要考虑预计会有多少人同时访问数据库;正常工作时间的级别;用来访问数据库的应用程序的类型;运行数据库的服务器的硬件和操作系统类型;以及管理人员的专业技术水平。
目前市场上适用于中小型企业的数据库产品有IBMDB2、MicrosoftSQLServer系列、Oracle系列。
所有这些产品都基于SQL语言。
同时,它们还拥有精密复杂的安全控制以适应不同的商业需要。
服务器操作系统使用Windows2000Server系统。
考虑到价格因素、易用性,我们使用SQLSERVER2000作为系统后台数据库系统,服务器操作系统采用Windows2000Server。
(2)WEB服务软件:
目前的WEB服务器软件有很多种,成熟而且稳定有Apache、Tomcat和Microsoft的IIS,它们也是占据着Web服务器市场最大的份额。
Tomcat是Sun和Apache合作做出来的JSPServer,支持Servlet2.2及JSP1.1等版本。
而且Tomcat未来将会取代Jserv,成为Apache主要的Servlet&JSPEngine。
Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。
Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。
因此选择Tomcat作为WEB服务器。
5.数据模型
本系统的数据模型主要是进行数据库的设计。
5.1数据库的概念结构模型设计
概念设计以反映现实世界中的实体、属性和它们之间的关系等的原始数据形式,建立数据库的每一幅用户视图。
图B-9是系统E-R图。
其中系统中的管理用户
创建维护餐品信息库、管理订单、发布餐品信息,页面中的所有餐品信息是由餐品库中的餐品构成,分布的每个餐品有一定数量。
顾客看到餐品后,选择一定量的餐品,添加到购物车中,最后浏览购物车,生成相应的订单,选择相应的付款方式。
图B-9:
系统的E-R图
5.2数据库的逻辑结构模型设计
数据库的逻辑设计是将各局部的E-R图进行分解、合并后重新组织起来形成数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构、所建立的各个数据之间的相互关系。
根据本系统需求分析,系统的数据库包括了餐品信息库管理、订单管理、购物车管理、用户管理以及需要的基本数据字典等部分。
餐品信息管理包括的库表:
●foodlist-餐品信息库中的餐品列表
●foodcontent-餐品信息库中的餐品详细内容
订单管理包括的库表:
●orderlist-订单的列表
●ordercontent-订单详细信息
购物车管理包括的库表:
购物车管理包括的库表:
●carID-购物车编号
●foodID-餐品编号
●foodname-选择的餐品名称
●foodnum-选择餐品数量
●foodmoney-餐品单价
●account-总金额
●userID-用户编号
用户管理包括的库表:
●users-管理端用户的信息
foodcontent(餐品信息)表
字段名
字段代码
字段类型
关键字
可否为空
代码字典表
餐品编号
foodID
VARVARCHAR(12)
Y
N
餐品名称
foodName
VARVARCHAR(30)
N
餐品单价
foodmoney
smallint
N
餐品数量
foodnum
smallint
N
ordercontent(订单信息)表
字段名
字段代码
字段类型
关键字
可否为空
代码字典表
订单编号
orderID
VARVARCHAR(12)
Y
N
餐品编号
foodID
VARVARCHAR(12)
N
餐品单价
foodmoney
smallint
N
餐品数量
foodnum
smallint
N
订单总金额
account
smallint
餐品发送地址
address
VARVARCHAR(30)
foodlist(餐品列表)表
字段名
字段代码
字段类型
关键字
可否为空
代码字典表
餐品编号
foodID
VARVARCHAR(12)
Y
N
餐品数量
foodnum
smallint
N
orderlist(订单列表)表
字段名
字段代码
字段类型
关键字
可否为空
代码字典表
订单编号
orderID
VARVARCHAR(12)
Y
N
总金额
account
smallint
N
car(购物车)表
字段名
字段代码
字段类型
关键字
可否为空
代码字典表
购物车编号
carID
VARVARCHAR(12)
Y
N
餐品编号
foodID
VARVARCHAR(12)
N
餐品名称
foodname
VARVARCHAR(30)
N
餐品单价
foodmoney
smallint
N
餐品数量
foodnum
smallint
用户编号
userID
VARVARCHAR(12)
总金额
account
smallint
user(用户信息)表
字段名
字段代码
字段类型
关键字
可否为空
代码字典表
用户编号
userID
VARVARCHAR(12)
Y
N
用户名
username
VARVARCHAR(30)
N
购物车编号
carID
VARVARCHAR(12)
N
用户地址
address
VARVARCHAR(30)
N
5.3数据库管理物理结构模型设计
信息存储结构的设计在系统的设计中至关重要,要考虑到数据冗余、系统执行效率、信息控制以及维护等方面的要求。
信息的管理离不开数据库的支持,我们采用SQLServer2000数据库管理系统。
数据库的物理设计主要是对数据在内存中的安排,包括对索引区、缓冲区的设计;对使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;设置访问数据的方式方法。
需在非系统卷(操作系统所在卷以外的其他卷)上安装SQLServer程序及数据库文件。
内存是影响MicrosoftSQLServer系统性能的一个重要因素,应在MicrosoftSQLServer数据库安装后进行内存选项(Memory)设置,最大配置值为2GB。
为了确定SQLServer系统最适宜的内存需求,可以从总的物理内存中减去Windows2000server需要的内存(120M)以及其它一些内存需求后综合确定,理想的情况是给SQLServer分配尽可能多的内存,而不产生页面调度。
设置服务器的虚拟内存为1G。
对Sql属性配置如图B-11所示。
图B-11SQL内存配置图
通过ADO对象提供的OLEDB接口与数据库连接。
1、首先建立创建Connection对象
SqlDatabaseName="WSZP"
SqlPassword="xxxxxxxx"
SqlUsername="sa"
SqlLocalName="xx.xx.xx.xx"
ConnStr="Provider=Sqloledb;UserID="&SqlUsername&";Password="&SqlPassword&";InitialCatalog="&SqlDatabaseName&";DataSource="&SqlLocalName&";"
setcnn=server.createobject("ADODB.Connection")
cnn.openConnnStr
2、不直接打开recordset记录集,充分利用连接池
Setrs=Server.CreateObject("ADODB.Recordset")
rs.OpenSQL,cnn
Setrs1=Server.CreateObject("ADODB.Recordset")
rs1.OpenSQL,cnn
这种打开连接池的方式可以节省数据库服务器的内存资源。
3、使用记录集后,最早的时间释放数据库资源
Rs.close
setrs=nothing
cnn.close
setcnn=nothing
本项目中后台数据库采用SQLSever数据库系统。
数据库各库表的脚本代码见数据库脚本文件。
6.模块设计
按照功能分解,本系统分为客户端管理系统和管理端系统。
根据页面流的设计,管理端系统又分为用户登录、用户管理、餐品管理、订单管理、等4个模块,如图B-12。
各个部分的关系如图B-13下:
图B-13:
模块之间的关系
针对不同用户,提供了两类功能登录接口:
即顾客登录接口和管理人员登录接口,这些接口都以WEB页面的形式提供。
通过各自的页面,顾客和管理人员可以从事各自的活动。
以下将分小节对各个部分进行设计
6.1客户端模块设计
客户端运行在公网上,可以显示餐品信息,顾客可以查看餐品的详细信息,当顾客希望选择某餐品时,可以添加到购物车中,当然要先登录,包括:
用户编号、用户名、密码、住址、联系电话,这些构成了用户信息,当填写完后可以查看用户信息,最后将餐品放入购物车,最后确认购买,生成订单。
在客户端用户可以看到餐品编号,餐品名称,餐品单价,餐品数量等,按餐品名称排序。
当点击餐品名称时进入餐品详细信息页面。
6.1.1表示层设计
根据上述的功能介绍,总结出客户端的页面设计如表B-3。
表B-3:
客户端的页面设计
界面
JSP
功能描述
主页面
index.jsp
客户端的主页面
餐品列表
foodlist.jsp
显示所有餐品名称
餐品详细信息
foodcontent.jsp
显示某个餐品的详细信息
用户信息
userinfo.jsp
填写个人基本情况页面
购物车
car.jsp
购物车里具体信息
订单
order.jsp
订单内容
扣款
money.jsp
选择付款方式
完成
inputdone.jsp
提交完成的页面
根据界面流的设计可以确定各个界面的访问入口,以及界面之间切换关系,流程图如图B-14所示。
ActionFormBean用于在视图组件和控制组件之间传递HTML表单数据,通常每个HTML表单对应一个ActionFormBean。
此外,ActionFormBean的validate()方法用于对用户输入的数据进行合法性验证,由于ActionFormBean工作于视图组件和控制器组件之间,不会访问模型组件,因此,validate()方法通常不涉及对数据的业务逻辑验证,只是完成简单的数据格式和语法检查。
表B-4列出了ActionForm以及进行相应的验证。
Html表单中的字段和ActionFormBean中的属性是一一对应的。
表B-4:
客户端的ActionForm
界面
JSP
功能描述
主页面
index.jsp
客户端的主页面
餐品列表
foodlist.jsp
显示所有餐品名称
餐品详细信息
foodcontent.jsp
显示某个餐品的详细信息
填写用户信息
userinfo.jsp
填写个人基本情况页面
购物车
car.jsp
购物车里具体信息
订单
order.jsp
订单内容
扣款
money.jsp
选择付款方式
完成
inputdone.jsp
提交完成的页面
6.1.2控制层
控制层主要是设计Action组件,Action负责单个事件的流程控制,Action映射决定了Action与其它Web组件之间的关联关系.客户端的事件主要包括进入餐品列表、浏览餐品详细信息,进入购物界面,添加用户、用户登陆,选择餐品,添加到购物车。
表B-5列出了每个Action的入口(即调用Action的组件)、传递Action的ActionForm,以及出口(即Action将请求转发到目标组件)。
表B-5:
客户端应用的Action映射
事件
Action
入口
ActionForm
出口
进入餐品列表
EnAction
index.jsp
foodForm
foodlist.jsp
浏览餐品详细信息
foodcontentAction
foodlist.jsp
foodcontentForm
foodcontent.jsp
进入餐品界面
selectfoodAction
foodcontent.jsp
userinfo.jsp
添加用户
AdduserinfoAction
userinfo.jsp
userinfoForm
foodcontent.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 系统 概要 设计