一个小型商务网站的分析与设计数据处理子系统.docx
- 文档编号:29359791
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:45
- 大小:1.78MB
一个小型商务网站的分析与设计数据处理子系统.docx
《一个小型商务网站的分析与设计数据处理子系统.docx》由会员分享,可在线阅读,更多相关《一个小型商务网站的分析与设计数据处理子系统.docx(45页珍藏版)》请在冰豆网上搜索。
一个小型商务网站的分析与设计数据处理子系统
小型商务网站数据处理系统
摘要:
本文主要介绍了一个小型商务数据处理系统的设计与开发过程。
使用本系统,可以查看网站的销售额走势图,可以分析出各个商家之间销售额及产品的对比,观察出本外卖网整体收入的分析图。
该系统由数据统计模块和日志分析两大模块组成。
数据统计模块主要包括按日统计分析、按月统计分析、以及汇总统计分析功能;日志分析模块主要包括日志上传和日志错误分析功能。
本系统采用主流的SSH框架进行设计,以MyEclipse作为开发平台,以JAVA作为开发语言,利用DreamwareCS6计用户界面,采用MySQL作为数据库;结构用的是目前流行的B/S结构。
前台利用后台传入的JSON数据进行展示,另外前台采用了Ztree动态树和Echars动态图表,本系统具有较高的系统可靠性与可扩展性。
关键字:
JAVA,MyEclips,SSH,MySQL,数据处理
前言
这是一个创业梦想井喷的年代,今年4月,美国在线外卖网GrubHub在纽交所上市。
这是餐饮O2O行业继Groupon和Yelp之后的第三家上市公司。
而这三家公司分别代表了团购、点评和外卖三个不同业务方向。
这意味着外卖很有可能成为下一座O2O金矿。
作为新兴领域,通过一些数据和案例,可以判断出,外卖网这一市场潜力很大。
商务部表示,“十二五”期间力争餐饮业保持年均16%的增速,到2015年零售额突破3.7万亿元。
英敏特公司报告显示,中国快餐和外卖市场规模,预计2017年达到1.8万亿元。
另外美国在线外卖公司GrubHub在IPO当日,股价一度上涨50%,市值一度超过40亿美元。
由此可见在线外卖市场是一个很有潜力的市场。
现在,数据已经成为了一种商业资本,一项重要的经济投入,可以创造新的经济利益。
事实上,一旦思维转变过来,数据就能被巧妙地用来激发新的产品和新型服务。
数据的奥秘只为谦逊、愿意聆听且掌握了聆听手段的人所知。
新一代的数据收集,不仅仅是数据工具,数据本身都会有很大的发展。
未来大数据与科技发展有很大的关系,如果将新的企业软件和新的大数据结合,再引用人工智能等技术,未来若干年都将有非常好的发展前景。
在数据每时每刻都在产生的今天,还需要一种手段快捷的为你或为你的客户直观形象的呈现那些能够反应当前状态或洞悉未来趋势的数据。
或许我们应该利用互联网技术快速甚至实时的获取你所关心的数据,然后提供可以辅助分析,辅助人们进行视觉化思考的数据可视化输出。
传统商务网站一般缺少数据处理子系统,本系统通过数据处理系统来更好的分析销售数据,通过数据处理系统不仅能够观察各商家之间销售情况的对比,还能够看出网站收入走势图。
外卖网站每天都会产生很多日志,当日志越来越多时,网站管理员很难及时发现日志中的错误文件,数据处理系统可以对海量日志文件进行分析和处理,可以让管理员及时发现日志错误的地方,然后进行相应的修正和处理。
本文重点分析了开发数据处理系统的体系结构、数据库应用以及整个软件的设计与实现,全文共分为5个章节,具体安排为:
第1章开发技术简介,简单介绍开发数据处理系统所用到的技术,有SSH、JAVA、Echarts、Ztree,Memcached等。
第2章系统分析,主要描述系统分析的概念、数据处理系统的业务流程以及各类需求分析。
第3章系统设计,主要写了系统的模块设计和数据库的设计。
第4章系统实现,主要写了各个功能模块的实现及部分关键代码。
第5章系统测试,对系统进行了一些测试及最后的测试结果。
第1章开发技术简介
本系统后端开发过程在Myeclipse上完成,前端用DreamwareCS6开发完成。
DreamweaverCS6是世界顶级软件厂商adobe推出的一套拥有可视化编辑界面,用于制作并编辑网站和移动应用程序的网页设计软件。
它支持代码、拆分、设计、实时视图等多种方式来创作、编写和修改网页。
页面还采用了Echarts图表,Echarts图表基于HTML5的Canvas,是一种纯JavaScript图表库,它提供了直观,生动,可交互,可个性化定制的数据可视化图表。
创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。
1.1SSH框架
SSH为Struts加Spring加Hibernate集成的一个框架,它是当今比较主流的一种Web应用程序开源框架。
框架图如图1-1所示:
图1-1SSH框架
Struts实际上是一个MVC的架构,在控制器、视图和模型这几个方面都有其特定的组件,SSH框架中,更多的利用了Controller组件。
Spring实现了控制反转(InversionofControl)和面向方面编程(Achievement-OrientedProgramming)。
Spring框架的能实现应用的分层架构,在应用中要使用的对象可以被一个简单的XML文件连在一起,这个XML文件含有到像事务管理器、对象工厂、包含业务逻辑的服务对象、和数据存取对象这些对象的引用。
Hibernate属于一种ORM映射工具,它不但提供了从Java类到数据表之间的映射,而且提供了数据查询和数据恢复机制。
相对于使用JDBC和使用SQL来手工操作数据库的DBA来说,使用Hibernate,可以很大的减少操作数据库的工作量。
1.2JAVA
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface)构成,Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1x版发展到1.2版。
目前常用的Java平台基于Java1.4,最近版本为Java1.7。
Java语言属于一种不仅支持网络计算,而且是一个面向对象程序设计的语言。
Java语言结合了Smalltalk语言和C++语言的优点,并且增加了其它一些特性,例如支持网络通信、和多媒体数据控制等。
主要有健壮、安全、可移植、高性能、动态等特性[1-3]。
1.3Echarts
Echarts基于HTML5的Canvas,是一种纯JavaScript图表库,它提供了直观,生动,可交互,可个性化定制的数据可视化图表。
创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。
1.4Ztree
zTree是一个依靠jQuery实现的多功能“树插件”。
优异的性能、灵活的配置、多种功能的组合是zTree最大优点。
专门适合项目开发,尤其是树状菜单、树状数据的Web显示、权限管理等等使用。
Ztree有如下特点:
●兼容IE、FireFox、Chrome、Opera、Safari等浏览器
●支持JSON数据
●支持静态和Ajax异步加载节点数据
●支持任意更换皮肤/自定义图标(依靠css)
●支持极其灵活的checkbox或radio选择功能
●提供多种事件响应回调
●灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽
●在一个页面内可同时生成多个Tree实例
●简单的参数配置实现灵活多变的功能
1.5Memcached
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
Memcached基于一个存储键/值对的hashmap。
其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
运行如图1-2所示:
图1-2Memcached运行图
1.6Bootstrap
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。
它由Twitter的设计师MarkOtto和JacobThornton合作开发,它是一个CSS/HTML框架。
Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。
Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的BreakingNews都使用了该项目。
1.7AJAX
AJAX即“Asynchronous JavaScript+ XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,AJAX是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换。
AJAX可以使网页实现异步更新。
这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
1.8JSON
JSON(JavaScriptObjectNotation)是一种较轻量级的数据交换格式。
它属于JavaScript的一个子集。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。
这些特性使JSON成为理想的数据交换语言。
不仅方便于人阅读和编写,同时也易于机器解析和生成。
第2章系统分析
系统分析(SystemsAnalysis)是软件工程系统开发生命周期中的重要组成部分。
系统分析先于系统设计,是系统开发前期不可或缺的工作。
负责这个阶段的关键人物是系统分析员,完成这个阶段任务的关键问题是开发人员和用户沟通。
系统分析主要有用户对系统功能的需求、数据流程及所要开发系统的模型等。
系统分析所确定的内容是今后系统设计、系统实现的基础。
目前常用的系统分析方法有基于数据流的结构化方法、面向对象的方法、面向领域的方法等。
本系统采用了面向对象的分析与设计方法,分析技术使用了目前比较流行的面向对象的方法,并使用面向对象领域中普遍采用的UML建模语言给出了分析结果——系统业务流程图及系统总体用例图。
2.1系统目标
数据处理系统是本系统的一个子系统,主要进行该网站的数据统计和日志分析处理。
本系统的开发目标是开发出一个操作方便、显示美观的系统,在页面方面通过使用echarts图表更加生动直观的来展示数据。
2.2系统业务流程
本系统分为数据统计和日志分析两个模块,数据统计模块主要用于数据的分析和汇总,日志分析模块主要用于日志的上传和日志的分析。
业务流程如图2-1所示。
2.3可行性研究
可行性研究主要包括技术可行性、经济可行性、和操作可行性三大方面。
其中,技术可行性是基础,决定了系统功能是否能够实现;经济可行性是保障,决定了系统的核心价值;操作可行性是必要条件,良好的操作环境可以促进系统的使用和推广。
技术可行性方面,我们是一个团队,在开发方面可以进行互补。
本人通过大学本科四年的学习,能够掌握一般的软件工程设计思想,加上外出参加培训,对JAVA开发也有了更深一步的了解。
在设计该系统的时候已经实习半年,已经具备一定的软件开发能力。
能够按照要求实现预期功能。
经济可行性方面,本网站采用的是抽成模式,在本网站成功的每一笔订单从中抽取一定的提成进行盈利,另外通过店家竞价排名的方式对前几名商家收取一定的费用,由此可见,经济方面是可行的。
图2-1系统业务流程图
操作可行性方面,在系统设计环节,本人充分考虑到操作的方便和更好的体验。
界面设计比较简洁,易于用户的操作。
图表采用了炫丽多彩的Echarts图表,Echarts图表提供直观,生动,可交互,可个性化定制的数据可视化图表。
创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。
2.4功能需求
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
本系统一共分为两个模块,数据统计模块和日志分析模块,其用例图分别如图2-2和图2-3所示。
1.数据统计模块功能:
(1)根据商家按日进行统计。
(2)根据商家进行汇总统计
(3)根据产品进行汇总统计。
(4)导出Excel(所有统计均可导出)。
图2-2数据统计模块用例图
2.日志分析模块功能:
(1)日志上传。
(2)日志分析。
图2-3日志分析模块用例图
2.5性能需求
在确定好功能需求后,需要对系统的性能作详尽的分析,为系统设计提供技术基础。
系统设计遵循实用、先进、标准、易维护、可扩展、稳定可行,保证系统的可实施性。
2.5.1硬件需求
开发工具硬件需求:
中央处理器:
Intel酷睿I3以上处理器;
内存:
2G以上;
硬盘:
20G以上可用硬盘空间;
其他:
鼠标、键盘;
2.5.2软件需求
软件运行环境软件需求:
操作系统:
WindowsXP及以上版本;
浏览器:
IE8.0以上版本
2.5.3灵活性
SSH实现底层封装,开发人员可以更专注于业务处理,开发效率高,层次清晰,易于维护及扩展,另外,SSH把数据库,实体,配置都整合,封装层次的结构偏于MVC模式,而且框架的融合,代码的耦合都不错,对于编程的持续化,扩展化,维护化也都不错。
2.5.4安全性
只有管理员账号才能登陆进该系统,没有给普通用户开发权限。
2.5.5可维护性
系统要求负责人每半年维护一下,看一下系统的使用情况,保证产品的正常使用,另外及时发现一些问题,然后进行改善。
第3章系统设计
系统设计是在系统分析的基础上,设计出能满足预定目标的系统的过程。
根据系统分析阶段所确定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案,即建立新系统的物理模型。
系统设计的方法主要包括结构化生命周期法(又称瀑布法)、原型化方法(迭代法)、面向对象方法。
为了增强系统的可维护性与可扩展性,本次设计采用的是面向对象的设计方法,各个类用UML中的实体类图表示,各功能模块用顺序图进行分析展示。
3.1实体类图
根据功能需求,分析系统结构,用AstahCommunity软件画出本系统实体类如图3-1到图3-7所示,类图右侧为类属性的详细说明。
图3-1省份类图图3-2学校类图
图3-3产品类图图3-4活动类图
图3-5订单类图图3-6店铺类图
图3-7日分析类图图3-8种类类图
3.2模块顺序图
确定好需求后,根据软件模块的不同特性,描述对象交互过程。
此部分采用顺序图进行描述,它可以表示用例的行为顺序,显示多个对象之间的动态协作。
1.数据统计模块。
模块顺序图如图3-8所示。
图3-8数据更新模块顺序图
2.日志分析模块。
模块顺序图如图3-9所示。
图3-9日志分析模块顺序图
3.3数据库模型设计
3.3.1类之间的关系
UML中的类图主要由类及其关系组成,而类之间的关系又可以细分为:
(1)泛化:
在UML类图中,如果子类型的接口包括超类型的接口中的每个:
在UML类图中,关联表示类的实例之间存在的某种关系。
它通常可以有1对1、1对多和多对多等情形。
(3)聚集:
在UML类图中,聚集描述了部分与整体之间的关系。
(4)组成:
在UML类图中,组成由聚集演变而成,它表示一个部分对象仅属于一个整体,并且部分对象通常与整体对象共存亡。
3.3.2类映射成表时的关系实现
在将类映射成表的过程中,有以下的这几种关系的实现。
1.将类图中的属性类型映射成表的域
域的使用提高了设计的一致性,且优化了应用的移植性。
简单的域是非常容易实现的,在映射时仅需替换相对应的数据类型和数据尺寸。
但要注意:
有时可能要求在域的约束中加入SQL的Check串(如限定域的取值范围等)。
2.将类的属性映射成表的字段
一般地,可将类的属性直接映射成表的字段,但要注意以下两种特殊情况:
(1)并不是类中的所有属性均是永久的。
例如,订单中的“总价”属性可由计算所得而不需保存在数据库中,此时,该类属性(称为派生属性)映射成个0个字段。
(2)一般地,类中的属性是单值的,但如果在类中存在多值属性,则该属性映射成多个字段。
3.将类直接或间接地映射成表。
首先,在关系数据库中,一个关键问题是表主键的唯一性策略的选取。
适当的方案能优化继承、组成等类之间的关系的实现。
为此,可以在处理数据库关系时嵌入对象标识符(OID)的概念,即采用对象标识符OID(对象唯一的标识符)作为相应的数据库中所有表的主键,从而简化关系数据库的主键方案,使数据库发生更新时,不会出现完整性问题,并且还可以避免在数据库操作时的诸多限制。
通过以上的描述,最后采用了第三种方式,将类直接或间接地映射成表,类映射成表结构及表之间的关系如图3-10所示。
图3-10各个类映射成表后的关系图
3.3.3数据字典表
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明用实体类的映射出数据库表,本系统一共有8个数据库表,具体如下:
表3-1province的列清单
名称
数据类型
注释
provinceID
int
主键
provinceName
varchar(50)
省份名称
表3-2school的列清单
名称
数据类型
注释
schID
int
主键
cityID
int
外键,对应city表主键
schName
varchar(50)
学校名称
表3-3activity的列清单
名称
数据类型
注释
actID
int
主键
shopID
int
外键,对应shop表主键
actName
varchar(50)
活动名
actDesc
varchar(300)
活动描述
表3-4product的列清单
名称
数据类型
注释
productID
int
主键
prateID
int
外键,对应prate表主键
actID
int
外键,对应activity表主键
shopID
int
外键,对应shop表主键
productCode
varchar(10)
产品编号
productName
varchar(30)
产品名称
productTitle
varchar(50)
产品标题
productImg
varchar(100)
产品图片地址
productDetails
varchar(200)
产品详情
productPrice
float
产品单价
productNum
int
产品数量
productState
int
产品状态
表3-5shop的列清单
名称
数据类型
注释
shopID
int
主键
srateID
int
外键,对应srate表主键
userID
int
外键,对应user表主键
shopName
varchar(30)
商铺名称
shopNo
varchar(10)
商铺编号
minPrice
float
最低消费,即起送价
shopDesc
varchar(200)
商铺描述(简介)
shopNotice
varchar(500)
商铺公告
shopStartTime
time
开店时间
shopEndTime
time
打烊时间
shopLocation
varchar(100)
商铺地址
表3-6orders的列清单
名称
数据类型
注释
orderID
int
主键
userID
int
外键,对应user表主键
shopID
int
外键,对应shop表主键
orderNo
varchar(40)
Order编号
orderGenTime
datetime
Order生成时间
orderPrice
float
Order的总价
orderMsg
varchar(100)
Order的留言
orderState
int
Order的状态
orderPayWay
varchar(30)
Order的支付方式
orderSendTime
datetime
Order的送货时间
orderSendSite
varchar(100)
Order的送达地址
表3-7category的列清单
名称
数据类型
注释
categoryID
int
主键
categoryName
varchar(30)
类别名称
表3-8day_analysis的列清单
名称
数据类型
注释
dayID
int
主键
dayTime
date
日期
shoppid
int
店铺ID
shoppname
varchar(30)
店铺名称
daySales
float
日销售量
dayNum
int
第几天
第4章系统实现
4.1开发环境配置
1.服务器环境:
(1)操作系统:
MicrosoftWindows8.1专业版
(2)数据库系统:
MySQL5.5
(3)开发语言:
JAVA
(4)硬件环境:
CPU主频为2.5GHz以上,内存1GB以上
2.服务器环境搭建
安装Myeclipse和mysql,打开Myeclipse,点击File—Import—General—ExistingProjectsintoWorkspace打开17fan项目工程,连接到数据库,项目首次运行时需要配置memcached,项目截图如图4-1所示。
图4-1项目运行截图
4.2数据统计模块
4.2.1根据商家按日进行统计
该功能主要用于统计各商家之间销售额按日进行对比,采用的是Echarts图表库中的混搭图来显示数据。
运行截图如图4-1所示:
图4-1根据商家按日统计截图
统计方式选择按日,点击“统计”按钮,把已选择的信息和其它信息封装的数据通过AJAX提交给服务器,然后服务器根据提交的内容进行处理,并把处理结果封装后通过JSON的方式返回到页面,最后根据返回的结果生成Echarts图表。
左边使用Ztree树动态的选择商家,关键代码如代码4-1所示:
functiondayOption(objs){
varshops=function(){
varlist=[];
for(vari=0;i list.push(objs[i].name); } returnlist; }(); varoption; option={ title: { text: '各商店日销售情况表', x: 'center', y: 'top' },tooltip: { trigger: 'axis' },legend: { data: shops, orient: 'horizontal',
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 小型 商务 网站 分析 设计 数据处理 子系统