软件工程网上购物系统课程设计.docx
- 文档编号:29488755
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:47
- 大小:1.40MB
软件工程网上购物系统课程设计.docx
《软件工程网上购物系统课程设计.docx》由会员分享,可在线阅读,更多相关《软件工程网上购物系统课程设计.docx(47页珍藏版)》请在冰豆网上搜索。
软件工程网上购物系统课程设计
软件工程课程设计报告
(2012--2013学年第二学期)
课程名称:
软件工程课程设计
题目:
网上购物系统
院系:
控制与计算机工程学院
班级:
软件1002班
组号:
组长:
艾君伟
组员:
陈肖成、汪豪、李崧榕
指导教师:
设计周数:
两周
小组成绩:
日期:
2013年7月12日
《软件工程》课程设计
任务书
一、目的、要求
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;
2.熟悉自动化的软件开发工具RationalRose,并将其运用于软件开发的全过程;
3.进一步加强和提高软件工程文档的编写能力;
4.培养协作能力和团队精神。
二、主要内容
1.运用面向对象技术、UML进展网上购物系统的需求分析与设计;
2.使用RationalRose作为需求分析与设计的建模工具,进展静态建模和动态建模;
3.利用对象模型自动生成数据模型,自动建立数据库;
4.使用J2EE、HTML、CSS、Javascript语言对购物模块进展界面层的设计并给出实现;
5.撰写课程设计报告。
三、任务分配
任务
负责人
参与人
备注
小组讨论:
需求分析〔用例图、类图〕
艾俊伟、陈肖成、汪豪、李崧榕
用例图绘制、类图绘制、数据流分析、数据库设计
汪豪
汪豪
顺序图、系统结构分析、状态图测试
陈肖成
陈肖成
需求分析、编码、详细设计
艾君伟
艾君伟
绘制局部顺序图、协作图、报告处理
李崧榕
李崧榕
四、进度计划
序号
设计内容名称
完成时间
备注
1
分组与确定题目
1个工作日
2
初步的需求分析与设计建模,确定实现平台,并搭建环境
2个工作日
3
详细的需求分析与设计建模
2个工作日
进展中期检查
4
关键模块的实现与测试
3个工作日
5
编写课程设计报告
1个工作日
6
验收检查与评定成绩
1个工作日
五、设计成果要求
1.建立系统分析与设计模型;
2.初步建立系统原型,实现关键的功能;
3.编写课程设计报告。
六、考核方式
1.系统演示与讲解
占50%。
2.设计报告
占50%。
指导教师:
日期:
2013年6月28日
《软件工程》课程设计
成绩评定
一、指导教师评语
二、成绩
学号
某某
成绩
备注
1101250201
艾君伟
1101250202
陈肖成
1101250210
李崧榕
1101250220
汪豪
指导教师:
日期:
2013年7月12日
摘要:
当今社会,随着计算机的应用和Internet的普与,Internet网络给人类社会带来了巨大变化,网络在我们的生活中几乎无处不在。
因此,建立网上物品的销售管理系统是时代的潮流。
由于JSP可以在85%以上的服务器上运行,而且JSP技术的应用程序比ASP的应用程序易于维护和管理。
所以,通过采用JSP技术设计开发在线购物系统符合时代的潮流、具有积极的进步意义。
网上购物系统可以实现人们远程逛逛商店和购置商品的愿望。
本系统的功能是实现网上购物,主要包括商品信息管理、购物车订单管理、用户管理、商品评价管理、商品库存管理等模块,主要以对数据库的增删改查来实现这些功能。
本系统依据模仿现行的B2C的需求而设计,运用RationalRose、Myeclipse等软件开发工具实现系统的分析、设计与实现,最后设计出来的系统根本满足能网上购物的功能需求。
关键词:
网上购物,面向对象,RationalRose,J2EE
一、课程设计的目的与要求
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;
2.熟悉自动化的软件开发工具RationalRose,并将其运用于软件开发的全过程;
3.进一步加强和提高软件工程文档的编写能力;
4.培养协作能力和团队精神。
二、设计正文
1概述
1.1设计课题
该系统为网上购物系统。
1.2系统目标
调研目前现有的网上购物系统,如当当网,亚马逊商城,京东商城等大型电子商务系统,设计出一个更适合用户使用,有更多用户交互,更人性化的购物系统。
1.3系统开发与运行环境
〔1〕数据库管理软件:
MySQL
〔2〕建模工具:
RationalRose
〔3〕编程工具:
MyEclipse、DreamWeaver
〔4〕操作系统:
Windows系列、Tomcat系统
〔5〕开发语言:
J2EE
2系统需求分析
2.1系统需求概述
主要从用户、管理员两方面进展需求分析。
1
2
2.1
2.1.1用户功能分析:
(1)购物车:
主要功能包括将商品参加购物车——>提交订单——>支付——>将订单信息存档
(2)个人中心:
功能主要包括四局部:
1〕查询自己的购置商品记录,通过人员id在数据库中查找。
2〕商品列表:
可以查询用户本人在使用,想购置,和购置过的商品。
3〕推荐商品:
本用例中,推荐商品和新商品通过控制类中的方法实现,偏好是商品通过人员的个性分析方法实现。
4〕商品评价:
可以查询自己的评论过的商品的商品信息和评论信息
(3)账户管理:
主要包括登录,注册,修改个人资料的功能
(4)商品搜索:
1〕字节搜索:
可以通过商品名称,商品序列号准确搜索
2〕分类搜索:
通过各个分类进展搜索。
2.1.2管理员功能分析:
(1)商品信息管理:
功能主要包括四局部:
1〕增加商品信息
2〕删除商品信息
3〕修改商品信息
4〕查看商品信息
(2)库存管理:
主要功能包括:
修改商品的存货数量
(3)用户管理:
1〕将不良交易次数用户较多的用户参加黑
2〕商品评价管理:
将被人气较高的书评放入首页的推荐书评模块
(4)商品评评管理:
主要功能为将违禁商品评价删除
(5)销量统计:
主要功能包括:
查看营业额,查看销售排行,查看利润。
2.2用例图
对于整个用例图,外部角色有管理员、普通用户即顾客。
管理员主要有书籍的增、删、改,普通用户信息管理,订单管理。
普通用户主要有在线交易、搜索、结算、参加购物车、参加收藏、结算、评价、账户管理等用例。
图2.2-1总用例图用例图
图2.2-2店铺管理用例图
图2.2-3购物用例图
关键用例正常事件流和异常事件流的描述如下表:
用例规格说明:
内容管理员注册
超级管理员
前提条件
超级管理员〔最高权限〕登录
后置条件
内容管理员注册成功
根本事件流
确认B2C购物系统已打开→确认超级管理员已登录→确认打开注册页面→确认用户名输入正确,两次密码一样且正确→内容管理员成功注册
第一异常事件流
两次密码不一样
第二异常事件流
用户名已注
用例规格说明:
内容管理员登录
所有用户
前提条件
无
后置条件
内容管理员登录成功
根本事件流
确认B2C购物系统登录界面已打开→确认用户名和密码已输入→验证通过→用户成功登陆系统
第一异常事件流
用户名或密码错误
用例规格说明:
新增商品
内容管理员
前提条件
内容管理员已登录,已输入新增商品信息
后置条件
系统中增加一条商品信息
根本事件流
确认已输入商品信息→增加商品
第一异常事件流
商品信息错误
第二异常事件流
商品信息已存在
用例规格说明:
修改商品
内容管理员
前提条件
内容管理员已登录,修改商品信息存在
后置条件
系统中修改一条商品信息
根本事件流
确认商品信息已修改→修改商品信息
第一异常事件流
修改信息错误
第二异常事件流
修改信息无变化
第三异常事件流
修改信息不存在
用例规格说明:
删除商品
内容管理员
前提条件
内容管理员已登录,删除商品信息存在
后置条件
系统中删除一条商品信息
根本事件流
确认已选择商品信息→删除商品
第一异常事件流
删除的商品不存在
用例规格说明:
修改订单
内容管理员
前提条件
内容管理员已登录,修改的订单存在
后置条件
系统中修改一条订单信息
根本事件流
确认已选择订单信息→修改商品
第一异常事件流
要修改的订单不存在
第二异常事件流
修改订单信息错误
用例规格说明:
取消订单
内容管理员
前提条件
内容管理员已登录,取消的订单存在
后置条件
系统中一条订单取消
根本事件流
确认已选择订单信息→取消订单
第一异常事件流
要取消的订单不存在
用例规格说明:
退货
内容管理员
前提条件
内容管理员已登录,用户申请符合要求,收到退回来的货品,检查完好
后置条件
顾客退货成功
根本事件流
登录→查看退货申请→符合退货条件→收到退回来货品→退货成功
第一异常事件流
未登录
第二异常事件流
退货申请不存在
第三异常事件流
商品已过保质期
第四异常事件流
商品未寄回
用例规格说明:
顾客信息修改
内容管理员
前提条件
顾客存在,管理员已登录
后置条件
修改顾客信息成功
根本事件流
选择用户→确认修改信息→顾客信息修改成功
第一异常事件流
管理员未登录
第二异常事件流
顾客不存在
第三异常事件流
输入信息错误
与顾客有关的用例规格说明
用例规格说明:
顾客注册
顾客
前提条件
无
后置条件
顾客注册成功
根本事件流
确认打开注册页面→确认用户名输入正确,两次密码一样且正确→顾客注册成功
第一异常事件流
用户名存在
第二异常事件流
用户名或密码输入错误
用例规格说明:
顾客登录
顾客
前提条件
无
后置条件
顾客登录成功
根本事件流
确认打开登录页面→确认登录名、密码→顾客注册成功
第一异常事件流
用户名不存在
第二异常事件流
用户名或密码错误
用例规格说明:
浏览
顾客
前提条件
无
后置条件
商品页面打开成功
根本事件流
确认打开→商品页面打开成功
第一异常事件流
商品已下架
用例规格说明:
搜索
顾客
前提条件
无
后置条件
显示搜索结果
根本事件流
确认搜索内容→显示搜索结构
第一异常事件流
输入搜索内容错误
用例规格说明:
参加购物车
顾客
前提条件
商品存在,购物车未满
后置条件
顾客注册成功
根本事件流
确认参加购物车商品和购物车→商品成功参加购物车
第一异常事件流
商品已下架
第二异常事件流
购物车已满
用例规格说明:
参加收藏
顾客
前提条件
商品存在,顾客已登录,收藏夹未满
后置条件
商品参加收藏夹成功
根本事件流
确认参加收藏夹的商品和收藏夹→商品参加收藏夹成功
第一异常事件流
商品已下架
第二异常事件流
用户未登录
第三异常事件流
收藏夹已满
用例规格说明:
结算
顾客
前提条件
用户已登录,购物车中有商品,余额充足
后置条件
结算成功
根本事件流
确认结算信息→确认余额充足→结算成功
第一异常事件流
购物车为空
第二异常事件流
未登录
第三异常事件流
余额不足
用例规格说明:
退货
顾客
前提条件
购置商品未过保质期,用户已登录
后置条件
顾客退货成功
根本事件流
登录→勾选商品→确认未过保质期→寄回商品→退货成功
第一异常事件流
未登录
第二异常事件流
商品不存在
第三异常事件流
商品已过保质期
第四异常事件流
商品未寄回
用例规格说明:
顾客信息修
顾客
前提条件
顾客已登录
后置条件
修改顾客信息成功
根本事件流
确认修改信息→顾客信息修改成功
第一异常事件流
顾客未登录
第二异常事件流
输入信息不合法
2.3类图
图2.3-1类图
类描述如下:
(1)coustomer
用户可以更改自己的某某、密码和其它个人信息,也可以查看自己的购物车并在其上添加删除商品,其后对购物车中的产品进展结算。
用户还可以对订单中已付款的商品按照要求进展退货操作。
用户还可以发表商品评价和查看商品的来自其他人的评价。
(2)Manager
管理员所具有的属性并不多,管理员主要实现对商品的增、删、改,对用户个人信息的管理,对订单的处理协助用户退货。
(3)good
描述商品对象的抽象。
商品的唯一标识是商品ID,商品还有品名、价格、类型编号、图片、描述、数量、评价。
(4)shoppingcart
用户的购物车类,在用户进展网上浏览和准备交易时,可将商品参加购物车,查看购物车,删除或取消交易。
进展交易时会将交易信息入时间、金额、商品列表、优惠方式等记录为购物历史。
购物车对象自带了计算优惠的方式,同时购物车要记录用户购置商品时的运送信息。
(5)Order
订单记录了订单编号,订单生成时间和用户ID,订单通过一个LIST类型记录了购置的商品。
类之间的关系:
Coustomer与shoppingcart为聚合关系,manger与order是聚合关系;manger、coustomer类同good类是关联关系,其中coustomer与good的关联类是shoppingcart类;shoopingcart与order为关联类。
2.4顺序图
支付的顺序图如如下图所示,首先是用户登录系统,然后用户通过界面在商品类中查看到自己想要买的商品,然后将商品参加购物车,然后提交订单,支付订单,最后进展存档。
图2.4-1用户支付顺序图
图2.4-2新增商品顺序图
图2.4-3删除商品顺序图
图2.4-4修改商品顺序图
退货的顺序图如如下图所示,首先是用户登录系统,然后用户通过界面在订单中查看到自己已买的商品,然后申请退货,最后进展退货。
2.4-5用户退货顺序图
2.5协作图
根据顺序图获得协作图如下:
图2.5-1用户支付协作图
图2.5-2新增商品协作图
图2.5-3删除商品协作图
图2.5-4修改商品协作图
图2.5-5用户退货协作图
2.6状态图
订单状态图。
主要包括订单为空状态、订单处理状态、增加完成状态、删除完成状态、修改完成状态,支付订单状态,订单存档状态。
图2.6-1订单状态图
3.系统总体设计
3.1系统体系结构设计
3.3设计数据管理子系统
表用户表
表3.3-2管理员表
表
表
表
图3.3-1数据表关系图
3.4设计人机交互子系统
图3.4-1注册界面
图3.4-2注册成功界面
图3.4-3登陆界面
图3.4-4主页界面
图3.4-5购物车界面
图3.4-6提交订单界面
图3.4-7提交订单成功界面
4.详细设计
提示:
对于复杂的方法给出详细设计,可以使用伪代码描述,也可以使用程序流程图来描述。
goodsearch()
{
创建一个List类型以与标志位flg=false;
获取搜索类型
If〔按名字查询〕
{
获取窗口中的关键字;
创建数据库查询语句sql;
创建SQLBean对象bean;
Rs=bean.exacuteQuery(sql);
Try{
将rs中的信息存入到List中;
}
Catch〔SQLExceptione〕
{
输出异常信息;
}
}
If〔按分类查询〕
{
获取商品类型;
创建数据库查询语句sql;
创建SQLBean对象bean;
Rs=bean.exacuteQuery(sql);
Try{
将rs中的信息存入到List中;
}
Catch〔SQLExceptione〕
{
输出异常信息;
}
}
返回List
}
packageServlet_Contorlller;
//登录
publicclassloginCheckextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException
{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriterout=response.getWriter();
response.setContentType("text/html");
Stringusername=request.getParameter("username");
Stringpassword=request.getParameter("password");
System.out.println("输入的密码:
"+password);
Stringradio=request.getParameter("logintype");
//username=newString(username.getBytes(),"gb2312");
intreginfo=-1;
if("".equals(username)||username==null){
reginfo=4;//用户名不能为空
System.out.println("用户名为空");
}else{
if(radio.equals("0"))//个人登录
{
StringsqlString="selectpasswordfromcustomerwhereusername='"
+username+"'";
List
SQLBeansearch=newSQLBean();
try{
search.executeQuery(sqlString);
System.out.println(sqlString);
list=search.getSelectRt();
search.close();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
if(list.size()==0){
reginfo=3;//用户不存在
response.sendRedirect("index.jsp?
reginfo=3");
}else{
for(Stringitem:
list){
if(item.equals(password)){
System.out.println("sadasdsa");
reginfo=1;//登录成功
HttpSessionsession=request.getSession(true);
session.setAttribute("user",username);
response.sendRedirect("pagedivide");
}
}
}
}
}
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException
{
this.doGet(request,response);
}
}
.3注册界面代码实现
packageServlet_Contorlller;
publicclassregisterCheckextendsHttpServlet
{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException
{
this.rtcheck(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException
{
//response.sendRedirect("registerCheck.jsp");
this.rtcheck(request,response);
}
publicvoidrtcheck(HttpServletRequestrequest,HttpServletResponseresponse)
{
try{
request.setCharacterEncoding("utf-8");
}catch(UnsupportedEncodingExceptione2){
//TODOAuto-generatedcatchblock
e2.printStackTrace();
}
response.setCharacterEncoding("utf-8");
Stringname=request.getParameter("cuserid");
Stringpassword=request.getParameter("cpassword");
Stringtel=request.getParameter("ctel");
Stringemail=request.getParameter("cemail");
Stringsex=request.getParameter("select");
Stringage=request.getParameter("cage");
Stringrepeatpassword=request.getParameter("repeatpassword");
int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 网上 购物 系统 课程设计