二手交易平台设计与开发.docx
- 文档编号:18453411
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:52
- 大小:2.04MB
二手交易平台设计与开发.docx
《二手交易平台设计与开发.docx》由会员分享,可在线阅读,更多相关《二手交易平台设计与开发.docx(52页珍藏版)》请在冰点文库上搜索。
二手交易平台设计与开发
XX理工学院
本科毕业设计
题目:
二手交易平台的设计与开发
——商品信息及管理模块的设计与开发
二手交易平台的设计与开发
——商品信息及管理模块的设计与开发
摘要:
本论文针对二手交易平台进行了设计与开发,实现了二手交易网站的一些基本功能。
项目应用UML进行分析和设计,使用了J2EE开发技术,整合了几大流行的JAVA开发框架,包括SSH2框架,Junit4单元测试,Ant自动化,sitemesh控制总体界面结构等。
系统采用了Struts2的MVC设计模式,使得各模块耦合度低,稳定性好且易于扩展。
关键词:
电子商城;二手交易;J2EE;SSH2框架;MVC模式
Designanddevelopmentofsecondarytradingplatform
——Productmanagementmoduledesignanddevelopment
Abstract:
Thisthesisfocusesonsecondarytradingplatformdesignanddevelopment,toachievesomeofthebasicfunctionsofthesecondarytradingwebsite.TheprojectapplicationUMLanalysisanddesign,useJ2EEdevelopmenttechnology,integrationofseveralpopularJavadevelopmentframework,includingthetheSSH2framework,Junit4,unittest,Antautomation,Sitemeshlayout.ThesystemusesaStruts2MVCdesignpattern,makingeachmodulecouplinglow,goodstabilityandeasyexpansion.
Keywords:
electronicmall;secondarytrading;J2EE;SSH2;MVC
第1章引言
1.1选题背景与问题概述
1.1.1选题背景
本课题“二手交易平台的设计与开发”是电子商务平台开发的一个典型代表。
在国内,基于web的“二手货”交易系统是近年来倍受用户青睐的一种交易方式,它不仅促进电子商务在各行各业中的进一步推广,提高商品的利用率,更是给卖家和买家提供了有用即时的信息,给双方带来真正的实惠和经济效益。
1.1.2问题概述
大多数的毕业生在大学毕业的时会留下许多物品,而大多数的学生是很乐意变卖自己这些东西的。
但是由于缺乏一个交易场所或中介交易,很多人将这些东西当垃圾处理,没有发挥其可再利用价值。
另一方面,低年级的同学则是希望购买到物美价廉的商品却无从获知此类信息。
此外,当代人的消费观念及消费心理也随着时代的改变而不断在改变,目前主要趋于实惠、经济和多样化发展。
网上购物和二手交易支持的人也越来越多,大多数在校大学生都有过从他人那里购买或出售使用过的诸如教材书之类的二手物品的经历。
1.2研究的意义及重要性
1.2.1研究的意义
从前景来看,在国家大力提倡“建设节约型社会”的背景下,二手交易领域也是大有发展前途。
比如学生的书本,自行车,体育用具等闲置东西可能通过交易,在需要的人手上循环再用,自己又能换取些别的东西或是金钱,可谓一举两得。
1.2.2研究的重要性
信息实用,学生可以在二手网站上方便地提供各种与学习和生活的信息,如二手书籍,台式机,笔记本,饮水机和电磁炉等。
这些都可以在大学生活结束时,变卖给低年级同学。
其中旧自行车在新生中还是相当抢手,而高年级就很少用了,很多都摆在停车点生锈,给人可惜,放着又会坏掉,最后居然批量地给保安按去了。
而且大学校园面积不小,跑来跑去费时又辛苦,有时偶尔上街,外出游玩等。
至于买新的,价格高,还容易丢,所以还是“二手”的好。
在学期开始,很多学生也可以先到网站上搜寻与课程要求相同的教材,而不用去买新书,这在大二以上的年级还是很普通的。
如英语教材,新书40元左右,而二手书仅10元。
况且,在旧书中还有高年级的笔记,更加实用。
网站还可以由卖家出售其它各类商品:
MP3、电脑配件、台灯、衣架、体育器材等。
此外还能培养学生的经营意识。
过去一到期末,或临近毕业,书籍、生活用品几本上都成废品,很便宜的卖给收废品的或是直接扔掉或送人。
而现在,学生可以将这些物品信息挂在校园二手网站,以便学生之间双向选择,创造一定的经济价值。
有的学生还可以对这些信息和物品进行收集和整理,再进行经营,体验下做“老板”的感觉。
1.3研究的内容和主要工作
1.3.1研究的内容
●学习并掌握基本的二手交易网站的原理和设计方法;
●学习Web开发的工具和语言:
包括JAVA[[]],HTML[],CSS[],JavaScript[]等前台语言和JSP服务器端开发语言[];
●整合SSH2(Struts2,Spring3,Hibernate3)框架[],熟悉其框架下MVC模式[]应用开发的流程和过程;
●在项目中加入和常用的Java组件:
如Ant自动化[],JUnit进行单元测试[],Log4J进行日志控制8等;
1.3.2本人主要工作
●搭建开发平台,下载并安装jdk,tomcat服务器和eclipse开发工具,建立SVN服务器进行项目的版本控制[],为后面开发做好基本的准备;
●用UML对系统进行建模[],分析需求,系统分析和设计,设计出类的基本功能;
●编码。
系统整体了采用MVC设计模式:
其中使用hibernate3进行类和关系的映射[],解决重复烦琐的数据库编程;spring3进行对象管理[],通过依赖注入来减少各模块的依赖;struts2[]则充当控制角色,实现各WEB请求对应的处理和JSP页面的选择;
●采用Junit4进行单元测试和部分集成测试,Log4j日志记录,用于及时发现错误和系统设计的不足和多余,完善设计,利于迭代开发;
●进行系统的部署、运行和功能测试,其中完成了一些基本的系统功能:
商品的上传、显示、搜索、加入购物车和下订单功能,用户的登陆、注册、修改功能,管理员的日志浏览功能。
1.4论文组织结构
本文由以下几章内容组成:
第1章介绍本文的研究背景,概述了所要解决的问题,并讨论项目的研究意义与重要性,阐述了论文的主要内容以及本人完成的主要工作。
第2章是本文的核心内容之一,针对系统的业务需求、功能需求、数据需求和非功能需求等进行了详细分析,给出了主要的业务流程图和用例图,并对核心用例进行了详细描述,同时进行了基础数据的概念设计。
第3章是本文的重点,在进行了系统总体设计的基础上,采用UML的包图、类图、顺序图和活动图11等对系统的子模块进行了功能性详细设计,并给出了主要功能的界面设计,同时通过实体类图、E-R图和数据字典对数据库进行了详细设计。
第4章总结了本文所做的工作,同时对进一步的工作进行了展望。
第2章需求分析
2.1业务需求
需求就是以一种清晰、简明、一致且无二义性的方式对一个待开发系统中的各个方面有意义的陈述的集合。
以下以UML中的活动图进行简单描述11。
2.1.1业务描述
(一)实现用户注册登陆、商品展示、商品检索、商品选择、网上订货等功能,对网上购物的基本过程进行管理;
(二)实现对网上购物过程中产生的所有业务数据的管理,如订货单、支付记录、发货信息的管理与维护;
(三)具有配套的系统后台管理维护功能,能够对商品信息、用户信息、系统日志等信息进行管理与维护,并能够进行对应的权限管理;
(四)响应速度合理,安全性较高;
(五)系统运行稳定,并且应易于维护。
2.1.2业务流程
(六)用户注册和登陆,实现流程如图21所示:
图21用户注册和登陆
(七)商品展示活动图,见图22:
图22商品展示活动图
(八)网上订货活动图,具体流程见图23:
图23网上订货活动图
(九)货款支付活动图,见图24:
图24货款支付活动图
(十)发货活动图,见图25:
图25商品发货活动图
(十一)退货处理活动图,见图26:
图26退货处理活动图
2.2功能需求
功能需求刻画系统行为,定义了必须实现的软件功能,使得用户通过这些功能完成他们的任务,满足业务需要。
下文将以UML中的用例图进行描述11。
2.2.1业务功能
(十二)商品选购,用例图见图27:
图27商品选购用例图
(十三)货款支付,见图图28:
图28货款支付用例图
(十四)商品发货,见图29:
图29商品发货用例图
(十五)退货处理,见图210:
图210退货处理用例图
(十六)网上订货,见图211:
图211网上订货用例图
(十七)订单管理,见图212:
图212订单管理用例图
(十八)发货信息管理,见图213:
图213发货信息管理用例图
2.2.2管理功能
(十九)用户管理,见图214:
图214用户管理用例图
(二十)日志管理,见图215:
图215日志管理用例图
(二十一)商品信息管理,见图216:
图216商品信息管理用例图
2.3数据需求
(二十二)商品选购,见图217:
图217商品选购
(二十三)货款支付,见图218:
图218货款支付表示
(二十四)商品发货,见图219:
图219商品发货表示
(二十五)退货处理,见图220:
图220退货处理表示
(二十六)用户管理,见图221:
图221用户管理表示
(二十七)日志管理,见图222:
图222日志管理表示
(二十八)商品信息管理,见图223:
图223商品信息管理表示
2.4非功能需求
非功能需求包括产品必须遵从的标准、规范和合约;外部界面的具体细节和性能要求;设计或实现的约束条件及质量属性。
2.4.1环境需求
1.Web服务器使用的Tomcat;
2.服务器能在Linux平台下部署10,能跨平台在其它OS下部署更佳;
3.数据库使用Mysql或Oracle。
2.4.2性能需求
4.可维护性。
提供对自身的集中操作维护的功能,实现数据的备份和恢复。
5.易操作性。
界面尽可能美观实用、方便和直观,充分考虑用户的体验。
6.可扩展性。
能满足用户今后系统扩充和扩大使用范围的要求。
7.开放性。
确保应用程序具有良好的互操作性和移植的可能。
2.4.3安全需求
1.容错性。
用户输入或误操作时,系统应给出相关的响应,提示用户重新输入或者进行自动的修复校正。
2.系统的外在环境安全。
充分考虑硬件和软件的安全因素,包括:
网络的安全,系统的备份,防火墙,用户权限设置等;
3.系统内部安全。
确保授权用户的合法使用。
4.系统运行安全。
系统应具有抵抗非法入侵的能力,支持定期自动和手动数据备份,能在数据损坏或丢失的情况下有一定的恢复能力。
第3章系统设计
软件设计是软件开发的关键步骤,要解决“怎么做”的问题,主要着手对软件系统的功能结构、数据结构和用户界面等进行设计。
3.1总体设计
3.1.1系统设计的原则
本系统设计尽可能地遵循实用性,先进性,规范性,安全性,易于集成,可扩展性等几大设计原则。
3.1.2系统体系结构设计
B/S(Browser/Server)体系结构如下图31:
图31体系结构
B/S体系结构利用Web技术,通过浏览器实现软件应用的跨平台,节约了开发成本和维护成本。
其应用程序以静态或动态网页的形式存放于Web服务器上,在一定程度上具有集中特征,并且安装、修改和维护全在服务器端解决,很容易在运行时自动升级。
3.1.3系统功能架构设计
系统功能架构设计定义软件系统各主要部件及成分之间的关系。
可以通过UML的包图来表示,系统功能简单对应需求分析中的用例。
3.1.4系统实现框架图
系统采用MVC设计模式7,并对SSH2开发框架进行了整合,按层次划分为:
PO,DAO,Manager,Action,JspPage五大模块8,如图32:
图32系统模块划分
3.1.5包的内容及作用
3.1.5.1po(persistentobject)包
po包是业务数据的抽象,如用户,商品等,包内容见图33。
它主要用于持久化存储和各层间数据的传递。
其中用hibernate框架对实体进行持久化,通过配置对象—关系的映射来实现(见图34),过数据库的操作语句和会话维护等烦锁重复的编程便由框架代为实现12。
图33po包
图34hibernate对实体类的配置
3.1.5.2dao(dataaccessobject)层
图35dao层
dao层为数据访问接口层,主要包括四个包,见图35。
其作用是进行底层数据的更新、查找、增删等数据库操作的实现。
以下将介绍dao层内各包的内容和作用:
3.1.5.3dao包
dao包使用了模板方法,为po包中实体类都定义了对应的dao接口,见图36,提供了各实体相应的数据库操作接口。
图36dao包
3.1.5.4dao.impl.hibernate包
dao.impl.hibernate包是dao包中接口的具体实现,这遵循了“接口实现相分离”的原则1来降低系统的耦合度,提高灵活性,见图37。
设计充分考虑了以后可能的扩展和修改的需要。
例如采用jdbc包来实现而不采用hibernate框架,则提供类似的实现包即可,而上层对外的功能接口没有变化,其它的代码也就不受影响。
图37dao.impl.hibernate包
3.1.5.5dao.facade包
dao.facade包采用了外观模式7进行设计,对各种不同类型的dao进行封装(如图38所示),使得dao包的使用更方便和集中,修改和管理更容易;
图38dao.facade
图39dao.facade.impl
3.1.5.6Service层
图310service层
service层为业务逻辑实现层,层中各包见图310。
该层采用的设计技术和dao层十分类似。
层中的各manager类进一步封装了dao包的各种操作,同时还增加了各种业务逻辑功能8。
该层的另一作用就是使action层和dao层解耦,这些正是MVC模式设计的好处。
3.1.5.7Manager包
manager包定义了各种业务对象管理接口,如用户管理,商品管理等业务逻辑管理类,见图311;
图311manager包
3.1.5.8manager.impl包
manager.impl包是manager包接口的具体实现,如图312,其设计思想和dao的impl包类似;
图312manager.impl包
3.1.5.9manager.service
manager.service也采用外观模式进行设计,对所有的manager进行封装,进行统一生成和管理,见图313;
图313manager.service包
图314manager.service.impl包
3.1.5.10视图控制层
该层使用struts2的MVC设计模式实现,结构见图315。
struts2.action包中的类充当控制器的角色,而视图显示则采用JSP动态页面。
图315视图和控制层
3.1.5.11Action包
struts2.action包充当MVC设计模式中的控制器角色14,处理各种客户端请求,见图316。
它实现了用例中各种业务功能和处理的动作调用,如注册对应RegisterAction,登陆对应LoginAction等,这通过配置文件struts.xml进行映射完成,如图317。
图316action包
图317struts.xml配置login和register
3.1.5.12Jsp模块
JSPPage模块实现系统的各个WEB视图界面5,见图318。
struts2各种action的处理结果都会返回对应的视图,如注册成功就调用注册成功的JSP页面,错误则调用错误的JSP页面等;
图318系统JSP包
3.1.5.13Spring充当的角色
Spring在整个系统中并未显式出现,但它充当了极大的作用。
如各个对象的成员变量、hibernate的会话工厂等的初始化都是通过spring注入13,即spring创建了对象,然后调用成员的setter进行了设置,下图319便是对部分Action类的配置情况。
这样就不用在代码中显式地调用new生成,降低了耦合度,并提高模块的灵活性,适应变化的能力更强。
图319spring对action类的配置
3.1.6系统运作原理
下面以“产品关键词搜索”用例来说明系统的大体运作原理,如图320。
图320产品搜索的系统调用流程
8.当客户端浏览器发出请求链接时,Struts控制器将业务请求映射到对应的SearchAction类进行业务处理;
9.SearchAction实例生成时,成员service是由spring注入的,在图中没有体现;接着通过service.getGoodInfoManager(),便能得到IGoodInfoManager的一个实例;
10.SearchAction会通过Paging实例的paing(IGoodInfoManager)进行分页查找,在paing中调用了goodInfoManager.searchByLimit(),该函数将通过IGoodInfoDao的findBylimit()进行实际的数据库操作,最后获得并返回对应页的产品数据列表List
11.上面的manager的操作只是进一步封装了dao层的接口,使得各层分明,耦合更低,而返回的数据由po包的实体类封装传递。
3.2数据库设计
3.2.1实体关系设计
(二十九)实体关系图[]
图321实体类关系图
(三十)实体关系图(E-R图)15
图322在线购物E-R图
图323系统管理E-R图
3.2.2数据库表设计
(三十一)GoodCategory(商品类别表)
保存商品类别的基本信息。
字段名
数据类型
长度
主键否
描述
为空否
默认
CategoryId
int
主键
商品分类ID
NOTNULL
CategoryName
varchar(20)
20
否
商品分类名称
NOTNULL
Level
int
否
分类层次级别
NOTNULL
1
Parent
int
否
上一级分类
NOTNULL
0
表31商品信息表
(三十二)GoodInfo(商品信息表)
保存商品的基本信息。
字段名
数据类型
长度
主键否
描述
为空否
默认
Id
Int
主键
ID
NOTNULL
Name
varchar(150)
150
否
名称
NOTNULL
Price
int
否
单价
NOTNULL
Amount
int
否
库存量
NOTNULL
Description
varchar(255)
255
否
描述
NULL
Photo
Blob
否
照片
NULL
PhotoUrl
Varchar(50)
否
照片路径
NULL
Category
varchar(50)
50
否
所属分类
NOTNULL
Status
varchar(10)
10
否
促销状态
NOTNULL
User
Int
否
所属商家
NOTNULL
1
表32商品类别表
(三十三)ShoppingCart(购物车表)
保存购物车记录的基本信息。
字段名
数据类型
长度
主键否
描述
为空否
默认
Id
Int
主键
购物车对应的ID
NOTNULL
OwnerId
Int
否
车主的Id
NOTNULL
GoodId
Int
否
所放商品的Id
NOTNULL
Quantity
int
否
所购买商品数量
NOTNULL
CreateDate
Datetime
否
购物车创建日期
NOTNULL
Money
int
否
车中商品总额
NOTNULL
表33购物车表
(三十四)OrderDetail(订单项表)
保存订单项的基本信息。
字段名
数据类型
长度
主键否
描述
为空否
默认
OrderDetailId
Int
主键
订单项ID
NOTNULL
OrderId
Int
否
所属订单的ID
NOTNULL
GoodId
Int
否
所记录的商品Id
NOTNULL
Quantity
int
否
所买商品数量
NOTNULL
Money
int
否
所记录的商品总额
NOTNULL
表34订单项表
(三十五)Order(订单表)
保存订单的基本信息。
字段名
数据类型
长度
主键
描述
为空否
默认
Id
Int
主键
订单的Id
NOTNULL
UserId
Int
否
所属买家的Id
NOTNULL
SumMoney
int
否
订单最终总额
NOTNULL
OrderDate
Datetime
否
下订单的日期
NOTNULL
PaymentStatues
varchar(10)
10
否
订单支付状态
NOTNULL
GoodsDeliverStatus
varchar(10)
10
否
订单发货状态
NOTNULL
EndDate
Datetime
否
订单完成日期
NOTNULL
表35订单表
(三十六)User(用户信息表)
保存用户的基本信息。
字段名
数据类型
长度
主键否
描述
为空否
默认
Id
Int
主键
ID
NOTNULL
Type
Int
否
类型
NOTNULL
Name
varchar(10)
10
否
姓名
NOTNULL
Code
varchar(20)
20
否
登陆帐号
NOTNULL
Password
varchar(20)
20
否
登陆密码
NOTNULL
varchar(50)
50
否
电子邮件
NOTNULL
MobilePhone
varchar(50)
50
否
手机号码
Tel
varchar(50)
50
否
电话
Address
varchar(255)
2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二手交易 平台 设计 开发