软件系统设计方案
一、概述
本批发平台是一个基于互联网,采用B2C模式。本平台在开发设计过程中参考了国内现有的网上货物批发平台,不但可以扩大商户与生产商的收益,而且可以在预测中减少生产者销售者及平台的风险,同时使三方受益。在本系统中,用户可以进行资料修改、注册,购物车管理等功能,管理员可以实现价格预测、用户信息管理、商品管理等功能。在设计上,本平台采用B/S三层结构,在页面设计上采用了现行主流的JSP技术,在考虑到安全性和代码可重用性后,决定采用用JavaBean对程序的代码进行封装。在数据库方面,选择更为轻便且免费的Mysql数据库。价格预测模块采用多元线性回归分析,从历年各因素对价格影响出发,确定影响因子。
二、项目设计及开发方案
1.设计目标
本平台使用现行最为广泛的的JSP+MYSQL架构,同时使用机器学习模型实现。本平台像大多数电商平台一样,具有前端和后台。前端即具有良好交互操作的页面,用户可以在其中进行商品选购,商品查询,账户服务,购物车服务等功能。后台即只有管理员可以访问的页面,管理员可以在其中进行商品添加,用户管理,价格预测,分配采购等功能。本设计可以使得双方更加便捷的进行操作,在提供给消费者方便的同时,也方便管理员维护商品的定价及广告的投放,提高其效率。
2.设计规则
该平台也有一定的设计规则,其规则有:
(1) 实用性:该平台具有一般的电商平台的功能,同时具有价格预测功能,具有一定的实用性。
(2) 针对性:该平台针对批发定向设计,具有很强的针对性
(3) 简单性:在实现批发功能的同时,也要使得用户及管理员操作更加简便。
3.开发技术的选择
我们需要选择最为合适的技术使得系统的开发更加的高效快速,同时作为信息技术初学者,我们所选用的技术应具有大量参考资源。
在进行比较之后,得出出JSP对于本批发平台更加合适,尤其它在安全性和跨平台性等方面有较其他两种有明显的优势。所以,我决定选用基于Java的JSP作为本系统的开发技术。
4.系统平台主要架构及开发模式
使用什么样的架构,对于一个系统来说是非常重要的。架构就好像一个系统的骨骼。参考现行的类似网络商城的架构,我们决定采用B/S,一种基于浏览器的架构。其优势在于可以充分的考虑和满足大量的访问与操作。同时,其作为现行主流技术,可有大量的参考资源。其原理在于使得大量的数据处理工作在服务器端进行处理,减轻了用户端的负载,使得用户只需要一个浏览器便可以在本平台进行一定的消费。在便于管理的同时,又方便了客户。同时JAVA可以更好的处理后台,J2EE规范也更加使得开发流程清晰、安全,使得开发层次更为清晰
5.基于B/S的体系结构
B/S架构即浏览器和服务器架构模式,使伴随着信息技术的发展,技术人员对C/S架构进行的改进之后的技术。在这种架构下,用户只需要浏览器便可进行操作,极少部分事务在前端实现,主要事务逻辑在服务器端实现。
图1.1 B/S三层架构示意图
这种结构使得用户仅需要极少的资源,便可进行高效率的访问。使得其不需要高端的硬件设备,同时也不需要更新和维护自身的设备,仅需要高速的网络便可进行一系列操作。服务器端承担了几乎所有的事务逻辑操作,使得客户端十分“苗条轻便”,只考虑处理前端的交互事务,页面的显示部分,而将大量的计算负荷交予服务器。基本不需要维护客户端,维护人员仅需要关注对于服务器端的更新和维护。
同时,这三层结构之间具有相互独立性,这就大大降低了耦合性,使得维护更加方便。
6.基于MVC的应用开发模型
以往传统的web系统里,开发人员经常把数据逻辑、业务逻辑、表示逻辑混合,不利于调试,也不具备可扩展性。在需要扩展时,不能依赖已经有的应用和代码,只能重写,非常的繁琐,不符合现在网络的高速性和实时性。而MVC恰好可以对这些弊端进行改变,具有很多优势。
所以我们选择了MVC模式,不仅可以具有更低的耦合性,即多层分离互不干扰,而且具有高重用性和可适用性。
图1.2应用服务器之上采用MVC开发的逻辑示意图
图1.3 MVC业务流程示意图
7.数据库设计
本系统数据库采用mysql数据库,为之设计了如下表:
用户消费信息数据表如表1-1所示:
表1-1用户消费信息数据表
列名 |
数据类型 |
数据长度[字节] |
是否允许为空 |
键类型 |
id |
int |
0 |
否 |
主键 |
fid |
varchar |
20 |
否 |
|
username |
varchar |
20 |
否 |
|
pname |
varchar |
20 |
否 |
|
proprice |
double |
15 |
是 |
|
count |
int |
0 |
是 |
|
time |
varchar |
32 |
是 |
|
summoney |
double |
15 |
是 |
|
用户信息表记录了用户的各类信息及注册时间,用户信息表如表1-2所示:
表1-2用户信息数据表
列名 |
数据类型 |
数据长度[字节] |
是否允许为空 |
键类型 |
username |
varchar |
20 |
否 |
主键 |
password |
varchar |
20 |
否 |
|
|
varchar |
20 |
否 |
|
tel |
varchar |
20 |
是 |
|
address |
varchar |
20 |
是 |
|
sex |
varchar |
20 |
是 |
|
age |
int |
0 |
是 |
|
regtime |
varchar |
30 |
是 |
|
商品信息表记录了商品的各类属性,具体如表1-3所示:
表1-3商品信息数据表
列名 |
数据类型 |
数据长度[字节] |
是否允许为空 |
键类型 |
pid |
varchar |
20 |
否 |
主键 |
pname |
varchar |
20 |
否 |
|
price |
double |
15 |
否 |
|
pcount |
int |
0 |
是 |
|
imgpath |
varchar |
80 |
是 |
|
支付信息用来进行用户支付核算,即记录下单信息等,如表1-4所示:
表1-4支付信息数据表
列名 |
数据类型 |
数据长度[字节] |
是否允许为空 |
键类型 |
logid |
varchar |
20 |
否 |
主键 |
username |
varchar |
20 |
否 |
|
money |
double |
15 |
是 |
|
time |
varchar |
30 |
是 |
|
8.执行视图
9.实现视图
DAO包
DAO包里面封装工程接口,用于满足用户的需求,实现代码的再处理。如下图所示:
DBC包
此包用来处理系统与数据库链接。如下图所示:
Impl包
此包用于实现DAO包中接口,用于完成操作现有的数据库。如下图所示:
9.分解视图
10.依赖视图
11.软件运行环境及技术选型
软件环境:windows10,JDK8,MATLAB,python2.7
开发环境:IDEA
前端:HTML,CSS,JQuery
数据库:mysql
12.概念模型的核心工作机制
用户通过注册和登录进入页面,对商品进行检索,添加购物车,进行支付操作
管理员通过管理员账户登入后台,查看价格预测,对商品进行添加及定价管理。检查库存管理是否出错。