网上商城系统地分析报告及设计Word格式文档下载.docx
《网上商城系统地分析报告及设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《网上商城系统地分析报告及设计Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
真正意义上的网上购物,即货款的结算在网上进行,已在国内实现。
深圳无虹商场去年5月开办了我国第一家实行计单和支付一体上的网上商店,上网的消费者只要拥有一张招商银行的“一卡通”,便可轻松购物,24小时内商家送货上门。
商家投资网上商店目的是赚钱。
但从目前网上商店的运营情况来看,上网者不购物、购物者不上网的现象非常普遍,网上生意渗淡已是目前各大网上商店共同的困惑。
上海首家网上商店——上海亿样购物中心由于经营不善,开业不到半年即关门停业,北京的一些大型零售商场,其网上商店“门庭冷落”。
结算方式的原始落后是网上购物致命的弱点。
在国外,计算机一般都与银行的帐户相联,消费者和网络商店只需和网上银行打交道,不必当面直接支取现金。
在我国目前除淘宝、拍拍等几家网上商店进行网上购物结算外,大部分商家结算只能采取“送货上门、到货付款”或“邮寄上门、贷款邮资先付”的方式。
这样不但浪费了时间和人力,而且限制了网络的覆盖范围和商品的结构种类。
因此,安全、快捷、方便的电子支付手段将是今后网上商店健康发展的主要要素。
1.2系统开发意义
从系统的背景来看,可以看出开发一个网上购物系统有以下几点重大的意义:
a.投资少,回收快。
一项针对中国中小企业的情况调查显示,个人在网下启动销售公司的平均费用至少5万元,而网上开店建店成本非常小。
一般说,筹办一家网上的商店投入很小,不用去办营业执照,不用去租门面,不用囤积货品,所需资金不过1500元左右;
网上商店比同等规模的地面商店“租金”要低得多,同时租金不会因为营业面积的增加而增加,投资者也不用为延长营业时间而增加额外的费用。
b.基本不需要占压资金。
传统商店的进货资金少则几千元,多则数万元,而网上商店则不需要压资金。
c.24小时营业时间。
网上商店延长了商店的营业时间,一天24小时、一年365天不停地运作,无须专人值班看店,都可照常营业。
传统店铺的营业时间一般为8-12小时,遇上坏天气或者老板、店员有急事也不得不暂时休息。
d.不受店面空间的限制。
哪怕只是街边小店,在网上却可以拥有百货大楼那么大的店面,只要投资者愿意,可以摆上成千上万种商品。
目前国内最大的专业拍卖网站同时在线的商品要超过10万件,已超过一些大超市。
e.不受地理位置影响。
不管客户离店有多远,也不管顾客是国内还是国外,在网上,客户一样可以很方便地找到并购买商品。
这令消费群体突破了地域的限制,变得无限广阔了。
1.3网上购商城系统的技术现状分析
目前在国内购物系统的开发,PHP与ASP技术应用最为广泛。
但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。
采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。
首先,PHP缺乏规模支持。
其次,缺乏多层结构支持,对于大负荷站点,解决方法只有一个:
分布计算。
数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列,而PHP则缺乏这种支持。
还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。
ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统,即只能运行于微软的服务器产品,IIS(InternetInformationServer)(windowsNT)和PWS(PersonalWebServer)(windows98)上。
Unix下也有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。
JSP则没有以上缺陷,JSP可以通过SUNJava的JavaClass和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。
三者中,JSP应该是未来发展的趋势。
世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。
比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;
西方另外一个非常著名的电子商务软件提供商Intershop,它原来的产品Intershop1,2,3,4占据了主要的电子商务软件份额。
它们都是通过CGI来提供支持的。
但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务ApplicationServer,而且声言不再开发传统软件。
总的来说,ASP、PHP、JSP三者都有相当数量的支持者,而这三者也各有所长,在开发过程中,我们应该根据实际的需要来使用最合适的技术,本系统则采用较JSP技术,一方面JSP的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。
2.网上商城管理系统需求分析
2.1可行性分析
经济可行性:
小型的系统,只需要在网络上下载所需的软件设备,所需成本较低,同时前期准备相对充分,经济成本低。
技术可行性:
软件技术可行性——本系统使用JSP.net语言编写网上商城的框架,后台数据库使用MySQL,服务器主要采用tomcat。
现有的技术及软硬件设备都是实习对软件的开发,因此在软件技术上具备条件。
同时,本系统中程序与数据集中存放,可以系统维护成本低,服务器处理任务的速度较快。
操作可行性:
系统开发人员在具备一定的开发语言基础,同时对数据库的操作比较熟练,时间安排以及人员分工上配合较好。
2.2系统功能需求
(1)用例图:
系统的使用者主要有普通用户,顾客和后台管理员,主要用例如下。
通过对淘宝网,拍拍等网上购物的认识和分析,我对网上购物有了基本的了解,我觉得该系统至少应该具有以下的一些基本功能:
注册管理:
能够对用户名,密码的简单验证。
商品浏览:
分类显示商品;
显示商品详情,提供购买链接;
可以对商品进行模糊查询。
浏览商品时不要求用户登录,但下订单前用户必须登录,对于浏览过的商品有历史记录。
(前台用户的功能)
购物车管理:
欲购买商品可以增添到购物车;
也可以从购物车退回商品,清空购物车;
对于同一件商品的多次购买只能在原来的商品上增添数量,还可以修改购物车中某个商品的数量,统计商品总金额。
订单管理:
只有登录的用户可下订单;
用户可以查看自己的订单。
管理员可以修改订单的状态。
商品管理:
管理员可以增添商品分类;
修改商品基本信息;
增添商品时候可以上传图片。
统计信息管理:
对所有信息的统计和分析,按照管理的需要生成各种报表。
基于上述分析,设计出该网上商城的系统功能模块图:
3.网上商城管理信息系统分析
(1)用户状态图分析
(2)时序图
会员下订单的时序图:
管理员处理订单的时序图
(3)类图分析:
4.网上商城管理信息系统设计
4.1数据库设计
User表
Category表
Product表
Saleorder表
Salesitem表
4.2界面设计
4.2.1网站首页
.
4.2.2.用户注册
注册模块的IPO
1.功能
在首页点击“注册”超链接就进入用户注册页面。
用户填写注册信息并提交,系统将用户的注册信息插入数据库,提示注册成功。
2.输入
输入用户名、密码、确认密码、地址、联系电话。
3.处理
(1)输入用户资料。
在register.jsp页面显示等待用户输入的表单。
用户填写相应的资料,点击“提交”按钮,数据被提交给register.jsp页面并传递参数。
(2)获取数据。
register.jsp根据参数的值(add)判断当前为添加数据操作,register.jsp读取表单提交的数据。
(3)连接数据库。
将用户填写的资料插入到数据库中。
(4)系统显示用户注册成功信息。
提示用户注册成功并在页面中显示用户的注册信息。
4.输出
输出注册成功页面。
部分代码:
<
%
request.setCharacterEncoding("
GBK"
);
Stringaction=request.getParameter("
action"
if(action!
=null&
&
action.trim().equals("
register"
)){
Stringusername=request.getParameter("
username"
Stringpassword=request.getParameter("
password"
//Stringpassword2=request.getParameter("
password2"
Stringphone=request.getParameter("
phone"
Stringaddr=request.getParameter("
addr"
Useru=newUser();
u.setUsername(username);
u.setPassword(password);
u.setPhone(phone);
u.setAddr(addr);
u.setRdate(newDate());
u.save();
out.println("
注册成功!
恭喜!
"
return;
}
%>
4.2.3.会员登录
Stringusername=request.getParameter("
Stringpassword=request.getParameter("
try{
Useru=User.check(username,password);
session.setAttribute("
user"
u);
}catch(UserNotFoundExceptione){
out.println(e.getMessage());
}catch(PasswordNotCorrectExceptione){
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"
:
//"
+request.getServerName()+"
+request.getServerPort()+path+"
/"
;
%>
4.2.4.下单
购物车模块的IPO
1.功能
用户在查看商品详细信息页面点击“购买”按钮,该商品就被加入到用户的购物车中。
用户在购物车页面可以查看已购买的商品、修改数量或删除商品。
2.输入
用户选择点击购物车页面的某个商品链接。
3.处理
(1)显示用户已购买的商品。
显示商品的名称、数量、单价、和总价。
用户在修改商品数量或删除商品后,如果点击“继续购物”链接则返回到浏览商品页面继续购物,如果点击“确认订单”链接就将表单数据提交给confirmOrder.jsp进行处理。
confirmOrder.jsp和数据库连接,然后生成SQL语句将数据插入到数据库中。
之后清空用户购物车中的数据,生成订单。
(4)显示提示信息。
弹出对话框提示用户订单已经确认。
4.输出
输出显示已经生成的订单信息。
request.setCharacterEncoding("
Useru=(User)session.getAttribute("
if(u==null){
response.sendRedirect("
UserLogin.jsp"
return;
}
Cartc=(Cart)session.getAttribute("
cart"
if(c==null){
c=newCart();
session.setAttribute("
c);
intorderId=u.buy(c);
session.removeAttribute("
单已下!
号:
%=orderId%>
4.2.5.管理员登陆
action.equals("
login"
if(!
username.equals("
admin"
)||!
password.equals("
)){
out.println("
usernameorpasswordnotcorrect!
"
response.sendRedirect("
admin/AdminIndex.jsp"
4.2.
6.类别管理
4.2.7.产品管理
添加商品模块的IPO
本模块主要实现管理员为商城添加新商品的功能。
输入商品名称、商品规格、商品价格、折扣、商品库存、商品图片和详细说明。
(1)输入商品资料。
管理员在addProduct.jsp填写表单输入商品的相关资料,点击“提交”按钮将表单提交给addProduct.jsp页面。
addProduct.jsp读取表单数据和参数进行添加数据操作。
建立数据库连接,将数据插入到数据库中。
显示商品添加成功页面。
输出新商品添加成功页面。
List<
Category>
categories=CategoryService.getInstance().getCategories();
for(inti=0;
i<
categories.size();
i++){
Categoryc=categories.get(i);
StringpreStr="
for(intj=1;
j<
c.getGrade();
j++){
preStr+="
--"
4.2.8.订单管理
订单管理模块的IPO
本模块主要实现网站订单管理功能,包括分页显示所有订单、查看订单信息、修改订单状态和删除订单。
选择不同的订单。
(1)显示所有订单。
显示数据库中的所有订单信息供管理员浏览。
(2)获取查询的订单。
ordersManage.jsp以分页的方式显示所有用户的订单信息,其中的“订单状态”是管理员可以修改的字段。
管理员可以对订单进行修改和删除操作。
建立数据库连接,根据提交的订单id生成SQL语句执行查找或删除操作。
(4)显示操作结果。
显示操作结果提示页面。
输出操作结果提示页面。
%!
privatestaticfinalintPAGE_SIZE=2;
StringstrPageNo=request.getParameter("
pageno"
intpageNo=1;
if(strPageNo!
=null){
pageNo=Integer.parseInt(strPageNo);
if(pageNo<
1)pageNo=1;
//getalltheusers
SalesOrder>
orders=newArrayList<
();
inttotalRecords=OrderMgr.getInstance().getOrders(orders,pageNo,PAGE_SIZE);
inttotalPages=(totalRecords+PAGE_SIZE-1)/PAGE_SIZE;
if(pageNo>
totalPages)pageNo=totalPages;
intid=Integer.parseInt(request.getParameter("
id"
));
SalesOrderso=OrderMgr.getInstance().loadById(id);
modify"
intstatus=Integer.parseInt(request.getParameter("
status"
so.setStatus(status);
so.updateStatus();
学习总结
1.收获很大案例+看书,反复几次,学的会更好
2.个人认为结构化分析方法长处在于系统分析,通过对数据流的把握,能够很好的定位系统功能。
而面向对象的方法优势在设计,最终设计的结果就是类图,包括属性和方法,直接供程序员使用。
3.对于uml中的类图,顺序图可以用在系统分析,也可以用在系统设计。
类图在系统分析阶段叫做概念类,在系统设计阶段叫设计类。
顺序图可以分析用例图的一个功能概况,也可以分析程序类之间的消息调用。