购物车项目开发设计与实现.docx
- 文档编号:12386346
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:22
- 大小:271.87KB
购物车项目开发设计与实现.docx
《购物车项目开发设计与实现.docx》由会员分享,可在线阅读,更多相关《购物车项目开发设计与实现.docx(22页珍藏版)》请在冰豆网上搜索。
购物车项目开发设计与实现
项目开发技术
购物车项目开发设计与实现
1项目需求
本次研究选择的开发语言为Java,该系统基于B/S架构,用户可以通过浏览器对服务器使用访问。
首先需要实现网上购物的基本功能,显示商品列表、添加商品到购物车、确认订单,我所研究的重点是对网上购物车的设计与实现模块。
1.1系统功能需求
1、能够完成游客或已注册用户对网上商品列表的浏览,以及对各商品的详细信息的查看。
2、能够完成已登陆客户对商品的选购:
添加商品到个人购物车,并且对已添加到购物车的商品进行数量的增加、减少、修改和删除等操作。
3、能够通过查看购物车对所选商品进行确定、挑选,确认或修改购物者的联系方式,通过定单查询对支付费用进行确定。
1.2开发系统语言需求
采用的主要技术是基于服务器端的JSP、Java的组件JavaBean,以及网页编程语言HTML。
利用JavaEE平台提供的Web编程方式,通过B/S结构方式,实现数据从数据库,到业务处理,到前台展示。
Web部分采用基于MVC模式的Struts框架实现,表现层主要用JSP与JavaScript、EL相结实现,控制层采用ActionServlet负责处理请求和转发请求,业务逻辑层使用JavaBean实现,并且采用DAO设计模式进行数据访问的封装,数据持久层采用JDBC技术实现业务层和数据库的交互。
设计开发的原则:
每层之间都是采用面向接口编程技术,降低了上层对下层逻辑调用的依赖,该项目体现了低耦合、高内聚的设计思想。
服务器:
ApacheTomcat5.27
数据库:
MySQL
技术实现:
Struts+JDBC+JavaBean
发集成环境:
用Eclipcse集成环境进行开发
JavaScript程序运行环境:
WindowsXP或Windows7。
用于编辑HTML文档的字符编辑器或HTML文档编辑器。
1.3开发以及运行环境需求
本系统开发的基本环境如表1.3.1
表1-1系统开发环境
项目
最低配置
CPU
P4或同型号的CPU
内存
256M
硬盘
40G以上
显卡
Geforce2以上
操作系统
Windows7/XP
本系统的运行环境如下表1.3.2
表1-2系统运行环境
项目
最低配置
CPU
P3或同型号以上的CPU
内存
128M
硬盘
20G以上
显卡
Geforce2以上
操作系统
Windows7/XP
1.4界面需求
界面的原则要求:
如方便、简洁、美观、一致等。
整个界面要保持友好、简易的风格。
1、输入设备:
键盘、鼠标、扫描仪
2、输出设备:
显示器、打印机
3、显示风格:
IE界面
1.5约束条件
1、法律、法规和政策方面的限制。
首先,尊重《消费者权益保护法》等相关的法律法规;
其次,鉴于我国的电子商务交易的法律法规还不完善,还有相当大的一部分交易环节仍依赖于传统的商品贸易法。
2、硬件、软件、运行环境和开发环境方面的条件和限制
对于单机或浏览器版本太老的用户,或是受其他软硬件限制的用户,将无法进入网上商城方便快捷的进行购买,需更换软硬件资源。
1.6UML设计
1.6.1网上购物参与者
图1-1参与者(网上购物)
1.6.2系统中的用例
图1-2系统中的用例
图1-3网上购物系统用例包图
图1-4总用例图
2项目设计
2.1系统功能
系统主要分为以下几大模块:
登录模块,购物车模块,订单模块
各模块实现的功能如下:
2.1.1登录模块
登录模块在区分不同用户的使用权限、加强软件使用安全性和保证数据安全方面起着关键的作用。
使注册用户能快捷的购买商品。
2.1.2购物车模块
添加商品到个人购物车,并且对已添加到购物车的商品进行数量的增加、减少、修改和删除等操作。
2.1.3订单模块
客户选择商品后产生账单,让消费者能够完成选购,付账一起实现。
2.2流程图
2.2.1在线购物流程图
此流程图显示用户浏览本网站所进行的操作,用户进入网站浏览商品,选择自己需要的商品,若用户未注册则跳转到用户注册界面,进行注册,进入购物车,确认订购商品,产生订单。
若已登录则直接进入购物车确认商品。
若已注册未登录则直接跳转到登陆界面,登陆后再进行商品的购买操作。
其流程如图所示:
图2-1用户购物流程图
2.2.2用户注册流程
点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,E-mail,邮编,地址,电话等各项信息,系统进行检测判断该用户的用户名须不少于两位,用户输入的两次密码均不少于三位且是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即cart_user表并提示用户注册成功,用户登陆后,就可以进行有效的购物了。
其流程图如图所示:
图2-2注册功能流程图
2.2.3用户登陆流程
用户登录,首先要有一个提供用户登录的表单。
用户登录的表单应该嵌入整体的结构当中。
在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的个人信息管理链接。
首先,用户要有一个用户名和密码。
商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名而使用真实姓名。
同时对密码也要求保密,将密码加密后再存入数据库。
另外,还需要用户的性别、地址、E-MAIL、邮编、电话号码等。
系统确定用户登陆信息无误后会将用户User信息存入JSP页面Session中以便用户进行后续操作。
用户的登陆流程图如图所示:
图2-3用户登陆流程图
2.2.4购物车流程
购物车的具体实现可采用这种形式:
定义一个购物车的类,其属性为每一条记录Item,每条记录Item的价格Cost,Item的Map以及若干方法的定义。
1.列出商品的列表,使用户能够自由选择所需要的商品。
2.当用户在点击“添加到购物车”的链接时,执行如下功能:
检查用户购物车类是否存在。
如不存在,则建立,并注册这Session变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。
如存在,则商品数量相应加1;如没有该商品,则将该商品添加到该类中。
3.对放入用户购物车的各条记录Item可以进行数量的修改、删除及清空购物车等操作。
具体流程实现如图所示:
图2-4购物车流程图
2.3数据库设计
数据库结构设计使用的数据库管理系统以及系统开发工具设计出数据库以及各个数据表的结构。
此次设计根据数据的大小以及管理的便捷性选择MySql作为数据库管理系统,使用数据管理器创建数据库。
按照前面分析的系统,设计出系统数据库中的各个数据表。
表2-1用户表
字段名
描述
类型
长度
可为空
主键
Id
客户编号
Integer
是
Name
姓名
Varchar
32
Password
密码
Varchar
16
Address
地址
Varchar
100
Postcode
邮编
Varchar
10
电子邮件
Varchar
50
HomePhone
家庭电话
Varchar
32
是
CellPhone
移动电话
Varchar
32
OfficePhone
办公室电话
Varchar
32
是
客户的Id也可设置成Integer类型值自动生成,为其主键。
密码的长度最长可达16位,Name为Varchar,长度为16位。
Address、PostCode、Email及Remark均为Varchar型。
对于用户的话号码,考虑到个人的不同情况以及其他一些特殊情况,电话号码均为Varchar型字段,且只有移动电话为NotNull。
表2-2商品表
字段名
描述
类型
长度
可为空
主键
Id
商品编号
Integer
是
Name
商品名
Varchar
32
Description
描述
Varchar
100
是
Price
单价
Double
商品信息表的主键为Id字段,在MySql中可设置其值为自动生成,即对数据库操作添加语句时,可以不管Id属性,每次加入一条记录Id值自动加1。
Id、Name、Price字段均不能为空,Description为对该商品的说明,长度为100,可以为空。
表2-3订单表
字段名
描述
类型
长度
可为空
主键
Id
订单编号
Integer
是
Status
状态
Integer
User_Id
用户编号
Integer
Cost
总价格
Double
订单的主键Id为Integer型,编号值自动生成。
状态字段Status设置成Integer型,由管理员设置值为1或者2。
1代表订单未交付即交易未完成;2代表订单已经下达,交易已经完成,即历史信息。
Cost字段是该订单所需价钱,即交易时用户应付商品的费用(不含运费)。
表2-4编号表
字段名
描述
类型
长度
可为空
主键
Id
条目编号
Integer
是
Amount
价格
Double
Product_Id
商品编号
Integer
Order_Id
订单编号
Integer
条目信息是为了方便管理员和送货工作人员对每一个商品的确定即统计。
主键Id也是Integer类型,自动生成其值。
Amount价格指某一种类商品的单价而并非总价格,这是为了方便网站后台管理人员。
该表查询及修改数据库采用关联,Product_Id和Order_Id均为Integer类型,是分别为了确定其商品和订单号以方便送货。
2.4系统界面实现
界面设置原则要求简单易用、简洁明了、兼容性好、标准、规范。
制定界面设计标准规范的目的是为了规范和统一软件界面设计制定软件界面设计标准与规范。
首先考虑标准化,在标准化的基础上进行界面的美工设计。
其次进一步完善程序的界面设计。
对界面进行的优化不要使界面的操作变得困难。
2.4.1登录界面的实现
该界面是用户登录的界面,用户从此界面登陆,可对商品进行操作。
用户要有一个用户名和密码。
商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名而使用真实姓名。
同时对密码也要求保密,将密码加密后再存入数据库。
图2-5登陆界面
2.4.2商品列表界面的实现
该界面显示的是商品列表,用户可在此界面对商品进行浏览,选择自己需要的商品放进购物车中,若未登录,也可以使用登录键进行登录操作。
或使用购物车键进行查看所购商品的操作。
也可以在登录界面进行结账操作,直接跳转到操作账单页面,对所需的商品进行最终的确定。
图2-6商品列表界面
2.4.3购物车页面显示
购物车页面是对所购商品的再操作,对所选商品进行删改数量,删除所选商品,若所选商品不是自己需要的,可以进行删除商品,也可以对商品直接进行清空。
每个商品后跟的都是商品的单价,修改商品数量后,商品的价格变为所购商品的总价。
从此页面也可跳转到商品列表页面继续进行购物,选新的商品添加到购物车中。
若是已经购买了所需商品,就可以进行结账操作,进入账单操作页面。
图2-7购物车界面
2.4.4操作订单界面显示
对所选商品进行再确定,对登录用户的资料进行确认,对有改变的资料进行修改,而且用户资料必须符合一定的格式,若不符合就报错不能进行修改,因此,例如邮政编码必须是6位数字,因此必须是输入6个数字,输入多或少都是错误修改,无法成功修改。
在此使用的验证是对格式的验证,用户资料进行修改必须符合格式,否则无法修改。
修改完成,而且商品确定后就可以进行结账操作,生成一个新的账单。
图2-8操作订单界面
3面向对象技术实现
3.1系统中的类
MerchandiseList:
商品类
属性:
TotalCost商品总价格
方法:
AddMerchandise()将AddToCar()方法中加入购物车的商品增加到商品列表。
DeleteMerchandise()删除列表中某商品
ComputerTotalCost()调用此方法计算商品列表图3-1商品类图中商品的总价
ModifyMerchndiseLise()修改商品列表的方法,有修改商品数量,删除商品等方法
Order类:
订单类
属性:
order_date订单日期
order_number订单号
order_status订单状态
order_total订单总价
salesperson_name售货人员姓名
ship_address发送地址
order_payment付款方式
方法:
CenerateCustomerAandOraderid()产生
客户账号和订单流水号
GetOrder()取得当前订单信息
NewOrder()声称新订单对象
ModifyOrder()修改/删除当前订单,该方法由SelfConfiguactionWindow或者由用户使用图3-2订单类图SandarConputerWindow类调用。
SetOrderSatus()设置订单状态,
由OrderServerWindow类的
ModifyOrderStatus方法调用。
GetOrderStatus()取得订单状态,
它调用DateBase中的LoadOrder()方法。
3.2数据库类
DateBase类:
数据库类
方法:
LoadOrder()从数据库中提取订单,被Order类中的方法调用。
StoreOrder()将订单存入数据库中,被Order类中的方法调用。
GerNeedContactOrderList()从数据库中提取需沟通的客户订单表。
GetPaidOrderList()从数据库中提取已付款的订单列表,被Payment类调用。
图3-3数据库类图GerConmpleteOrderList()从数据库中提取已发送的订单列表,被Invoice调用。
3.3边界类
ShoppingListWindow类
功能:
创建并显示购物清单窗口并可修改购物清单。
方法:
DisplayShoppingList()显示商品购物清单,它将调用MerchandiseList类中的属性,获得商品清单。
ModifyCar()修改购物车中的商品,它调用MerchndiseList()更新商品列表。
DisplayTotalCost()显示当前选购的商品总图3-4边界类图值,该值由merchandiselist类中的
ConmputeTotalCost()方法计算得到。
GotoInputOrderWindow()进入到订单输入窗口。
3.4控制类
QueryStatusWindow类:
功能:
创建并显示查询窗口。
方法:
GetCustmerID()取得用户输入帐号
GetOrderID()取得订单流水号
QueryStatus()客户点查询按钮出发它调用Order类的图3-5控制类图GetOrderStatus()方法取得订单状态。
DisplayStatus()显示订单状态。
DisplayTatalCost()显示当前选购的商品总值,该值由merchandiselist类中的
ConmputeTotalCost()方法计算得到。
GotoShoppingList()显示购物清单窗口。
NextPage()显示下一页商品
图3-6控制类图
Payment类:
付款类
属性:
payment_method付款方式
date_received接受日期
amount_received接收金额
方法:
linkPayment()付款初始化
图3-7付款类SetPaymentStatus()设置付款
修改Order类OrderPament属性取值
GetPaymentStatus()取得付款状态,
从Order类OrderPament属性取值
VerifyCustomerID()验证客户帐号
被Customer类的Paymoney方法使用
AcceptPayment()接受客户付款,方法将被修改Order类的OrderPayment对象
4测试方案
4.1测试方法
黑盒测试(Black-boxTesting,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
采用黑盒技术设计测试用例的方法有:
等价类划分、边界值分析、错误推测、因果图和综合策略。
黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。
黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
黑盒测试试图发现以下类型的错误:
功能错误或遗漏;
界面错误;
数据结构或外部数据库访问错误;
性能错误;
初始化和终止错误。
4.2系统功能测试用例
表4-1功能测试用例表
功能描述
系统登录模块测试
用例目的
测试系统登录模块中登录功能是否出错
前提条件
数据库中有使用用户的表,并且表中存放一定的数据
输入/动作
期望的输出/相应
实际情况
用户名lsz,密码lsz
能够正常的登录系统,并且显示为管理员用户
正常
用户名lsz,密码
空
不能登录到系统,并且显示不存在该用户的信息
正常
用户名空,密码
空
不能登录到系统,并且显示用户名和密码不能为空的信息
正常
功能描述
购物车删除商品功能的模块测试
用例目的
测试系统删除商品功能是否出错
前提条件
数据库中有商品信息表
输入/动作
期望的输出/相应
实际情况
删除Id为1的商品
Id为1的商品被删除,不显示商品
正常
没有选择商品,点删除键
页面刷新一次,不改变
正常
功能描述
商品修改功能的模块测试
用例目的
测试系统修改模块中修改功能是否出错
前提条件
数据库中有商品信息表,并且表中存入部分数据
输入/动作
期望的输出/相应
实际情况
对商品信息进行修改
能够显示出商品修改后的信息
正常
对商品的部分信息设置为非法字符
商品信息不改变,并且显示该商品的信息修改错误
正常
功能描述
商品增加功能的模块测试
用例目的
测试系统增加模块中增加功能是否出错
前提条件
数据库中有商品信息表
输入/动作
期望的输出/相应
实际情况
添加某商品的信息
能够显示出添加的商品的详细信息
正常
将非法商品信息输入
能够显示已有的商品信息,并且显示不能添加的消息
正常
项目开发总结
在设计过程中,主要用了JSP,HTML、SQL和JavaScript等设计语言。
在做完设计后进一步的认识了JSP、HTML、JavaScript,由于仓促之间完成,导致语言本身还有很多地方理解的不是很清楚。
检索和数据传输方面更是非常的方便,好用,很突出它的特点。
。
还简化了复杂的界面,使得界面简单易懂,可以按照用户和造作者能看懂的方式来制作,内容一目了然,也很正规,标准化。
适合大众理解和掌握。
本次设计完成了对网上购物的基本功能的实现。
虽然其中可能功能还存在着许多不足,但主要功能已经实现,界面简单,操作方便也是本系统必须的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 购物 项目 开发 设计 实现