1. 引言
1.1 编写目的
本说明是BS网上商城电子商务系统案例研究项目软件产品的总体设计和实现说明,记录了系统整体实现上技术层面上的考虑,并且以需求说明作为依据,同时该文档将作为产品实现、特性要求和控制的依据。
软件开发小组的每一位参与开发成员应该阅读本说明,以清楚产品在技术方面的要求和实现策略,本手册将进行技术评审和技术的可行性检查,同时为下一步的详细设计说明提供框架。
1.2 背景
说明:
A.软件系统的名称: BS网上商城系统
B.任务提出者: BS电子商务公司
开发者:LEI_SKY软件开发小组
C.本系统将是一个的系统,目前所产生的输出都是的
本系统将使用MySQL作为数据库的存储系统
1.3 定义
A.B/S(Brower/Server)
B.IIS 5.0(Internet Information Server)
C.HTML(Hypertext Markup Language,超文本标记语言)
D.CSS(Cascading Style Sheets,层叠样式表单)
E.JSP(Java Server Pages)
1.4 参考资料
相关的文件包括:
A.内部文件《BS网上商城电子商务系统案例研究项目》
B.《BS网上商城电子商务系统案例研究项目合同 20110710 - 01》
C.《BS网上商城电子商务系统案例研究项目可行性分析》
参考资料:
A.国家标准《软件需求说明书(GB856T——88); 》
B.《网站开发项目教程》陈密方 中国铁道出版社
《软件测试》朱少名 电子工业出版社
合同:
A.《BS网上商城电子商务系统案例研究项目合同 20110710 - 01》
2. 总体设计
2.1 需求规定
需求规定的详细内容,请参考的文档《BS网上商城项目需求说明》
2.2 运行环境
客户程序硬件要求:
具有 Intel(R) Core T1110 处理器且满足以下要求的计算机:
最低 MB 内存
最小 10 GB 硬盘
鼠标
键盘
服务器硬件需求:
具有 Pentium III 处理器且满足以下要求的计算机:
最低 512MB 内存
最小 1 TB 硬盘
鼠标
键盘
注:详情请参考的文档《BS网上商城项目需求说明》
2.3 基本设计概念和处理流程
2.3.1 系统结构
本系统的实现采用典型的三层模式、B/S结构来实现,不同的客户端程序共同访问中心数据库,系统结构如图1:
图2-1 系统结构图
设计说明:
A. 每一个计算机需要安装浏览器;
B. 每个客户程序通过中间件访问的数据库服务器;
C. 数据库服务器使用Oracle9i或SQL Server2000来实现;
D. 多用户并发访问和处理、数据加锁、事务协调,由Oracle10g/SQL Server
2000/MySQL/Access/DB2数据库和数据库服务器来完成;
2.3.2 系统需求
网上电子商城应包括两个基本的部分; 一是前台销售用户在前台可以浏览、搜索、购买商品,能看到商城的最新公告;另一个是后台管理,管理员在此管理网站信息和商品,具体包括录入和更改网上信息、订单查询和处理、商品的上架和下架、还可以管理在商城注册的用户等。系统的前后台功能结构图如图所示:
图2-2 BS网上商城前台功能结构图
图2-3 BS网上商城后台功能结构图
流程图的总体概述:
前台功能模块主要是通过登录(普通用户不需要登录)进入商城后,对公告、商品 的浏览以及查询、购买。后台的管理模块主要是实现了管理员对公告、商品、订单及会 员用户的管理。在进入商城选购商品时,应先将选购的商品放到购物车中,然后去点击购买,填写收货人的信息(会员已保存收货人的信息,但是可以更改)。付款,购物完成。
图2-4 系统总体流程图
网上交易部分:
1.浏览与选择商品:
顾客进入网站即刻自动提供购物车,不需身份确认就可以在网站上随意浏览、 挑选商品(可增加、删除、修改购物车上商品的数量),网站提供最新的商品列表,热卖商品优先列表给顾客作为选购时的参考;
2.判断:
顾客确定所购物品后,系统将判断该顾客是否是会员,如果是,则可直接填写订单;否则,提示顾客登记注册;若不注册则确认订单。
3.提交订单:
已选购的商品需填写订单细节,如付款及提货方式等。只有正式提交定单才能生效;
4.注册:
顾客可在公司的网站上注册,填写姓名地址等信息后提交申请;
5.确认:
后台管理将实时得到顾客的注册信息,通过电话及其他方式确认,得到注册确认的顾客才能成为会员,并拥有唯一的会员证号;
6.非会员:
不是会员的顾客可以先挑选商品再申请成为会员,享受会员价格,所定购的商品数及时存入数据库;也可以直接下单,则不享有会员价,不能查看自己的订单信息;
7.送货与付款:
网上的每一份订单都将实时存入后台数据库,后台操作人员通过电话及其他方式确认,确认后将及时实施该订单:向顾客送货,货到付款,完成网上交易。
图2-5 网上交易部分业务流程图
2.4 结构
应用程序的内部结构采用分层编码来实现,并且为保证各子系统的性,结合了JavaBean组件技术。
图2-6 系统逻辑结构(分层编码)
用例图:
图2-7 用例图
说明:该用例图详细用户和系统之间的交互细节,体现本系统的业务逻辑.在整个开发过程中将依照以上业务逻辑确定解决问题方案。
时序图1:
图2-8 管理员与系统交互时序图
说明:以上是管理员与系统交互的时序图.体现了管理员与系统交互的细节和管理员的权限。
时序图2:
图2-9 普通用户与系统交互时序图
说明:以上是普通用户和系统交互的时序图,描述普通用户在不同时间段的业务状态。
数据访问架构层:
跨数据库的DAO模式框架:
图2-10 跨数据库DAO模式架构
图2-11
图2-12 管理员状态图
图2-13 用户状态图
2.5 功能需求与程序的关系
本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
表2-1 功能需求与程序的关系表
功能模块 | 用户模块 | 管理员模块 | 会员模块 | 类别模块 | 产品模块 | 订单模块 |
AdminLogin.jsp | √ | |||||
Login.jsp | √ | |||||
CategoryList.jsp | √ | |||||
CaterotyAdd.jsp | √ | |||||
CategoryModify.jsp | √ | |||||
OrderDetilShow.jsp | ||||||
OrderList.jsp | ||||||
OrderModify.jsp | √ | |||||
OrderAdd.jsp | √ | |||||
ProductAdd.jsp | √ | |||||
ProductDelelt.jsp | √ | |||||
ProductAdd.jsp | √ | |||||
ProductModify.jsp | √ | |||||
ProductSearch.jsp | √ | |||||
ProductUpload.jsp | √ | |||||
UserDelete.jsp | √ | |||||
UserList.jsp | √ | |||||
salesCount.jsp | √ |
需求中的问题在本设计中已经全部实现,但是,基于一般的考虑,可能会在开发过程或者后期版本中增加的功能包括:
1、公告通知模块;
2、统计分析模块;
(说明:若已经解决了需求中存在的问题,以上的可以不属于尚未解决的问题)
3. 接口设计
本系统采用JAVA进行开发,所提供的不同层次的接口,都具有高度的集成性,本系统没有采用低级语言设计和完成自定义的接口,因此接口设计大部分已经由不同方式的JavaBean组件来完成了,以下只做简单的说明。
3.1 用户接口
采用窗口化,菜单式进行设计,在设计时响应热键。
3.2 外部接口
JAVA应用程序包括了支持程序,主要的支持程序为JavaBean,有关JavaBean的相关说明,请参考其他资料。
“BS网上商城”通过JavaBean接口访问数据库,纯Java方式对数据库访问对象进行了层次式的封装,详细的有关纯Java方式的说明,请参考纯Java方式相关的技术资料。
与数据库的接口设计,主要集中在图《系统逻辑结构》中数据库访问模块的封装部分,详细的接口、访问调用,请参考《BS网上商城系统详细设计说明》。
3.3 内部接口
内部接口主要集中在两部分:
A. 中间处理层对数据库访问层数据的调用和处理;
B. 界面层对中间数据库处理层的调用、控制命令的响应;
4. 运行设计
4.1 运行模块组合
本程序主要是以一个窗口为模块,一般一个窗口完成一个特定的功能,主窗口主要是通过打开另一个子窗口来实现模块之间不同功能的连接和组合。个模块之间相互,程序的可移植性好。每个模块之间主要是通过传递数据项的引用来实现模块间的合作和数据共享。
4.2 运行控制
只要符合程序说明书,用户可自由控制,不额外限定用户输入,异常由程序内部处理,并给出提示信息。
4.3 运行时间
每次操作相应上线为5秒。
5. 系统数据结构设计
5.1 逻辑结构设计要点
一、用户信息表(User)
用户(用户编号,用户名,密码,电话,地址,注册时间)
二、商品信息表(Product)
商品(商品编号,商品名,商品描述,市场价,会员价,上架时间,类别编号)
三、类别分类表(Category)
类别(编号,类别名,描述,层次编码,级别,父亲编号)
四、订单信息表(SalesOrder)
订单(订单编号,用户编号,送货地址,下单时间,订单状态)
五、购物车表(SalesItem)
购物车(编号,商品编号,单价,数量,订单号)
六、管理员信息表(User)
管理员(管理员编号,用户名,密码,电话,注册时间)
图5-1 E-R图
5.2物理结构设计要点
表5-1 用户信息表(User)
序号 | 字段名 | 字段含义 | 类型 | 长度 | 默认值 | 允许空 | 主键 | 说明 |
1 | Id | 用户编码 | int | 10 | 1 | 是 | 自动递增 | |
2 | username | 用户名 | varchar | 40 | ||||
3 | password | 密码 | varchar | 16 | ||||
4 | phone | 电话 | varchar | 40 | ||||
5 | addr | 地址 | varchar | 255 | ||||
6 | rdate | 注册时间 | datatime |
序号 | 字段名 | 字段含义 | 类型 | 长度 | 默认值 | 允许空 | 主键 | 说明 |
1 | id | 产品编号 | int | 10 | 1 | 是 | 自动递增 | |
2 | name | 产品名 | varchar | 255 | ||||
3 | descr | 描述 | varchar | 255 | ||||
4 | normalprice | 市场价 | double | 10 | ||||
5 | memberprice | 会员价 | double | 10 | ||||
6 | pdate | 上架日期 | datatime | |||||
7 | categoryid | 类别 | int | 10 |
序号 | 字段名 | 字段含义 | 类型 | 长度 | 默认值 | 允许空 | 主键 | 说明 |
1 | id | 类别编号 | int | 10 | 1 | 是 | 自动递增 | |
2 | name | 类别名 | varchar | 255 | ||||
3 | descr | 描述 | varchar | 255 | ||||
4 | cno | 层次编码 | varchar | 6 | ||||
5 | grade | 级别 | varchar | 1 | ||||
6 | pid | 父亲编号 | int | 10 |
序号 | 字段名 | 字段含义 | 类型 | 长度 | 默认值 | 允许空 | 主键 | 说明 |
1 | id | 订单编号 | int | 10 | 1 | 是 | 自动递增 | |
2 | userid | 用户编号 | int | 10 | 1 | |||
3 | addr | 送货地址 | varchar | 400 | ||||
4 | odate | 下单时间 | datatime | |||||
5 | status | 订单状态 | int | 1 |
序号 | 字段名 | 字段含义 | 类型 | 长度 | 默认值 | 允许空 | 主键 | 说明 |
1 | id | 编号 | int | 10 | 1 | 是 | 自动递增 | |
2 | productid | 产品编号 | int | 10 | 1 | |||
3 | unitprice | 单价 | double | 10 | ||||
4 | pcount | 数量 | int | 3 | ||||
5 | orderid | 订单编号 | int | 10 |
序号 | 字段名 | 字段含义 | 类型 | 长度 | 默认值 | 允许空 | 主键 | 说明 |
1 | Id | 用户编码 | int | 10 | 1 | 是 | 自动递增 | |
2 | username | 用户名 | varchar | 40 | ||||
3 | password | 密码 | varchar | 16 | ||||
4 | phone | 电话 | varchar | 40 | ||||
5 | addr | 地址 | varchar | 255 | ||||
6 | rdate | 注册时间 | datatime |
数据结构为关系型数据库,所以在程序中可以用标准的SQL语句与数据结构进行交互,交互过程中采用通用的数据反问接口。为了保持良好的程序架构,对数据库访问采用DAO设计模式实现,提高维护性和扩张性。
6系统出错处理设计
6.1出错信息
本程序多采用了异常处理机制,当遇到异常时不但能够及时处理,保证程序的安全性和稳定性,而且各种出错信息能够通过弹出对话框的形式,及时的告诉用户出错的原因和解决的方法,是用户以后能够减少错误的发生。程序的发部分还采取了出错保护,如输入内容的长度和类型减少了用户出错的可能。
6.2补救措施
说明故障出现后可能采取的变通措施,包括:
A. 数据库连接错误:主要是数据库设置不正确或者SQL server异常引起的,只需要取消本次操作,检查数据库即可。
B. 输入错误:用户输入不规范造成的,应在尽量减少用户出错的条件的情况下,主要通过对话框,提醒用户,然后再次操作。
C. 其他操作错误:对于用户的不正当操作,有可能是程序发生错误。主要是中止操作,并提醒用户中止的原因和操作的规范。
D. 其他不可预知的错误:对于程序不可预知的错误,不可能作出完全的异常处理,这时主要保证数据的安全,所以要经常进行数据库备份,并及时联系维修人员,以逐步完善程序。
6.3系统维护设计
由于系统较小没有外加维护模块,因为维护工作比较简单,仅靠数据库的一些基本维护措施即可。
课程设计综合评分
小组成员及分工: | ||
姓名 | 分工 | 得分 |
王雪琴 | 总体设计部分撰写 | |
王诗云 | 接口设计部分撰写 | |
丁紫薇 | 运行设计部分撰写 | |
李仁蜜 | 数据库结构设计部分撰写 | |
王禹淇 | 系统出错处理设计部分撰写 | |
教师评分: 1. 内容质量得分: _________ 2. 撰写规范得分: _________ 最终评定成绩(以优、良、中、合格、不合格评定):_________ | ||
教师评语:
签字: 日期: 年 月 日 |