虚拟商品在线交易系统UML分析与设计文档

本小组项目任务是开发一个虚拟商品在线交易系统。卖家需要一个全新的在线交易系统,用于向网络买家提供一个集在线购买和在线下载功能于一身的网络交易平台,销售的物品主要是正版软件和网络游戏充值卡等非实体的虚拟商品。本系统需要支持和集成支付宝公司的“虚拟商品交易服务”接口,并通过该接口收取买家费用,在交易完成后返回到本系统界面下给买家下载软件安装程序、软件激活码或充值卡密码等。

系统允许卖家在系统后台对商品进行维护,卖家可以在后台管理系统中对所销售的软件产品和充值卡商品进行修改、添加和删除,并可以查询所有买家信息。

系统允许买家在注册后对个人信息进行修改和维护,并查阅自己的购买记录;对于没有注册的临时买家,也可以直接购买,在交易完成后把其信息记录到数据库,但不会为临时买家注册系统ID。

系统允许买家在交易完成后通过网页界面在线下载软件安装程序,但需要做到防盗链,即防止软件的下载地址被公开或盗用,此项主要针对不需要激活码激活的软件产品。而对于软件激活码或充值卡密码,除了在交易完成后会在页面上显示外,也会自动E-MAIL一份到买家的电子邮箱里去。

同时,服务器使用Linux系统,安装有Apache、PHP和MySQL,需要把销售情况记录到MySQL数据库中,以便业务人员查询销售情况和进行管理。

系统需要对每周和每月销售的情况进行统计,并列印成报表,同时允许在线生成Excel及PDF格式文件以便保存。

2 需求分析

2.1 用例图

虚拟商品在线交易系统的用例图如图2-1所示,包括:用户登陆系统、商品展示系统、购物车、结算付款、支付宝服务接口、用户及定单管理系统、商品管理。

wps_clip_image-15689

图2-1. 虚拟商品交易系统用例图

2.2 术语表

User:用户、顾客;

Shop Administrator:网上商店管理员、商家;

Products:商品、虚拟商品、非实体的商品;

Shopping Cart:购物车;

Payment:结算付款;

Alipay.com Server:支付宝服务器、与我方制作支付宝收款接口相连;

Order:在线定单。

2.3 活动图

2.3.1结算付款系统活动图

如图2-2所示,对应的用例规约请见表2.4-1:

wps_clip_image-5185

图2-2. 结算付款系统活动图

2.4 用例规约

2.4.1用例规约Login

表2.4-1. 用例规约Login

主要参与者

用户及网上商店管理员

前置条件

输入正确的用户名、密码

后置条件(成功后的保证)

登入系统

基本流程(主要成功场景)

1) 输入用户名、密码

2) 验证用户名、密码

3) 如验证正确,登入系统

辅助流程(替代流程)

输入用户名或密码不正确:

1) 统显示错误信息

2) 提示用户重新输入

2.4.2用例规约Payment

表2.4-2. 用例规约Payment

主要参与者

用户或游客

前置条件

用户或游客已经把商品加入到购物车,并按下结算按钮

后置条件(成功后的保证)

返回商品结算清单及所需费用

基本流程(主要成功场景)

1) 户按下结算按钮

2) 系统显示购物列表及总价

3) 系统询问游客是否注册或登陆

4) 定单提交到支付宝接口

5) 用户通过支付宝或信用卡完成付款

6) 支付完成返回网上商店,显示下载地址及产品注册码、或点卡密码

辅助流程1(替代流程)

游客不登陆或注册:

1) 以游客身份把定单提交到支付宝接口

辅助流程2(替代流程)

游客以注册用户名登陆或注册:

1) 登陆后返回购物车

2) 以注册用户身份提交定单到支付宝接口

辅助流程3(替代流程)

用户或游客未完成支付或支付出错:

1) 返回网上商店

2) 显示定单未结算,不能下载虚拟商品

(*对应的活动图请参考图2-2)

2.4.3用例规约Shopping Cart

表2.4-3. 用例规约Shopping Cart

主要参与者

用户或游客

前置条件

用户或游客已经挑选商品,并且商品已经为勾选状态。

后置条件(成功后的保证)

返回商品名称、数量、价格及总计

基本流程(主要成功场景)

1) 系统显示购物列表及总价

2) 系统提供对所购物品的修改处理,或继续购物的功能选择

3) 转到结算模块

4) 转回购物网站

辅助流程1(替代流程)

游客不登陆或注册:

1) 以游客身份显示购物列表

辅助流程2(替代流程)

游客以注册用户名登陆或注册:

1) 登陆后返回购物车

2) 以注册用户身份显示购物列表

辅助流程3(替代流程)

用户或游客未完成挑选物品:

1) 返回提示未进行购物

2) 选择返回购物网页

2.4.4用例规约User Management

表2.4-4. 用例规约User Management

主要参与者

管理员

前置条件

以管理员身份登陆,并按下管理按钮。

后置条件(成功后的保证)

返回管理后台首页

基本流程(主要成功场景)

1) 显示已注册用户列表

2) 在列表中选择一个要操作的用户

3) 选择一种操作

4) 显示操作页面

5) 完成操作,并保存操作中更改的信息

辅助流程1(替代流程)

选择以显示的方式进行操作

1) 显示用户的注册信息

辅助流程2(替代流程)

选择以修改的方式进行操作

1) 显示用户的可修改的信息

2) 对信息进行修改

3) 显示修改的项目信息,对修改进行确认

辅助流程3(替代流程)

选择以删除的方式进行操作

1) 对删除进行确认

辅助流程4(替代流程)

选择以搜索的方式进行操作

1) 显示搜索页面

2) 填写需要搜索的关键字

3) 选择搜索方式(按名字,按注册日期,等)

4) 显示搜索后的内容

2.4.5用例规约Products Management

表2.4-5. 用例规约Products Management

主要参与者

管理员

前置条件

以管理员身份登陆,并按下管理按钮。。

后置条件(成功后的保证)

返回管理后台首页

基本流程(主要成功场景)

1) 显示商品分类

2) 添加、修改、删除商品(添加软件程序、点卡激活码等)

1、 商品查询

2、 库存管理

3、 商品批量修改

4、 商品评论浏览

5、 完成操作,并保存操作中更改的信息

辅助流程1(替代流程)

选择以显示的方式进行操作

1、显示商品分类

辅助流程2(替代流程)

选择以修改的方式进行操作

1、 商品的可修改的信息

2、进行修改

3、显示修改的项目信息,对修改进行确认

辅助流程3(替代流程)

选择以添加、删除的方式进行操作

1、 添加商品,并确认

2、 删除商品,并确认

辅助流程4(替代流程)

选择以搜索的方式进行操作

1、显示搜索页面

2、填写需要搜索的关键字

3、选择搜索方式(按商品名称,按修改日期,等)

4、显示搜索后的内容

2.4.6用例规约Order Management

表2.4-6. 用例规约Order Management

主要参与者

用户或管理员

前置条件

用户或管理员已经登陆

后置条件(成功后的保证)

返回管理后台首页

基本流程(主要成功场景)

1、检查以何种身份登陆

2、进入所属权限的订单管理页面

3、对订单进行管理操作

4、保存管理操作的结果

5、返回订单管理页面

辅助流程1(替代流程)

用户对已完成购买的订单进行历史记录查看

1、显示已完成购买的订单

辅助流程2(替代流程)

用户对未完成购买的订单进行记录查看

1、显示未完成购买的订单

辅助流程3(替代流程)

用户对未完成购买的订单进行记录删除

1、删除未完成购买的订单

2、对删除进行确认

辅助流程4(替代流程)

管理员对已经销售的订单进行历史记录查看

1、显示已完成销售的订单

辅助流程5(替代流程)

管理员对未完成销售的订单进行操作记录查看

1、显示未完成销售的订单

2、进入管理员人工销售操作页面

辅助流程6(替代流程)

管理员对未完成销售的订单进行人工销售操作

1、人工完成未完成销售的订单,订单确认

2、订单转到已经销售部分

2.5 补充文档

2.5.1 补充规约:支付接口的选择

由于支付宝接口在10月20日起对所有支付宝接口实施包年套餐的租借方式,严重影响项目的开发和调试,所以系统再Payment处增加一个对应中国贝宝(PAYPAL)的支付接口,使用户可以自由选择付款接口,对应的用例规约如下表2.5-1:

表2.5-1. 补充用例规约:支付接口的选择

主要参与者

用户或游客

前置条件

用户或游客已经把商品加入到购物车,并按下结算按钮

后置条件(成功后的保证)

返回商品结算清单及所需费用

基本流程(主要成功场景)

1、用户按下结算按钮

2、系统显示购物列表及总价

3、用户选择支付接口(PAYPAL中国或支付宝)

辅助流程1(替代流程)

用户选择PAYPAL:

1、系统把定单提交到PAYPAL.COM.CN接口。

辅助流程2(替代流程)

用户选择支付宝:

1、系统把定单提交到ALIPAY.COM接口。

3 分析与设计

3.1 架构分析

本系统使用B/S架构,以三层架构组成,由上到下分别是:界面层、业务流程层、数据库层。系统架构分层如图3-1。

wps_clip_image-14014

图3-1 系统架构分层图

3.1.1 界面层

界面层向客户或系统管理员展示系统前台及后台操作界面,它集成的界面有:系统前/后台登陆界面、购物车、系统管理界面、在线支付结果界面等。

3.1.2 业务逻辑层

业务流程中与用户提交信息相关的服务在这一层中被定义。界面层的用户信息通过业务逻辑层访问数据库,对所指定的业务进行查询、增加、修改和删除等操作。

3.1.3 数据库层

数据库层由业务逻辑层访问,并返回结果到界面层。

3.2 关键抽象

本系统的关键抽象包括客户类、管理员类、提交信息类、界面类、结算类和数据库类,如图3-2所示。

wps_clip_image-8202

图3-2. 关键抽象

3.3 用例实现

3.3.1 客户购买商品的用例实现

客户购买商品的用例中包括客户类(User)、界面类(UI)、信息提交类(File Offering)、数据库类(Database)、结算接口类(Alipay.com: Payment),用顺序图表示出来,如图3-3所示:

wps_clip_image-23826

图3-3 客户购买商品的用例实现顺序图

对应的协作图如图3-4所示:

wps_clip_image-14755

图3-4 客户购买商品的用例实现协作图

3.3.2 管理员操作的用例实现

管理员操作的用例中包括管理员类(Admin)、界面类(UI)、信息提交类(File Offering)、数据库类(Database),用顺序图表示出来,如图3-5所示:

wps_clip_image-11684

图3-5 管理员操作的用例实现顺序图

对应的协作图如图3-6所示:

wps_clip_image-9846

图3-6 管理员操作的用例实现协作图

4 用例分析

4.1 分析类

分析类包括:

1) 界面类:管理员类、用户类、界面类。

2) 控制类:提交信息制类。

3) 实体类:数据库类、支付接口类。

4.2 分析类的功能

4.2.1 管理员类

职能:login();update_profile()。

属性:WebManager;UI。

4.2.2 用户类

职能:login();update_profile();AddtoCart()。

属性:WebManager;UI;CartDetail。

4.2.3提交信息制类

职能:count_totalprice();user_management();order_management();products_management();download()。

属性:SubmitInfo;UI。

4.2.4 数据库类

职能:alipay_service();verify_result()。

属性:userId;OrderId;OrderDetail。

4.2.5支付接口类

职能:return_url()。

属性:OrderNumber;OrderStatus;Date。

4.3 类图及类之间的关联

根据关键抽象及类的功能,得出类之间的联系如图4-1:

wps_clip_image-10160

图4-1 系统类图

4.4 数据库设计

4.4.1 Admin Table

Table Name

admin

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

admin_id

INT

11

Not Null

auto_increment

PRIMARY KEY

admin_email_address

VARCHAR

96

Not Null

Login name for admin login page.

admin_password

VARCHAR

40

Not Null

permission

tinyint

1

NULL

1 for admin

admin_logdate

datetime

Last login date & time.

4.4.2 User Table

Table Name

customers

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

customers_id

INT

11

Not Null

auto_increment

PRIMARY KEY

customers_email_address

VARCHAR

96

Not Null

Login name for UI

customers_telephone

VARCHAR

32

Not Null

customers_password

VARCHAR

40

Not Null

customers _logdate

datetime

Last login date & time.

4.4.3 Shopping Cart Table

Table Name

customers_basket

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

customers_basket_id

INT

11

Not Null

auto_increment

PRIMARY KEY

customers_id

INT

11

Not Null

0

products_id

INT

11

Not Null

0

customers_basket_quantity

INT

3

Not Null

0

products quantity

final_price

decimal

10,2

Not Null

0.00

customers_basket_date_added

VARCHAR

8

4.4.4 Categories Table

Table Name

categories

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

categories_id

INT

11

Not Null

auto_increment

PRIMARY KEY

categories_name

VARCHAR

32

Not Null

categories_image

VARCHAR

64

商品分类图片

parent_id

INT

11

Not Null

0

上级商品目录ID

sort_order

INT

3

4.4.5 Manufacturers Table

Table Name

manufacturers

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

manufacturers_id

INT

11

Not Null

auto_increment

PRIMARY KEY

manufacturers_name

VARCHAR

32

Not Null

manufacturers_url

VARCHAR

255

Not Null

manufacturers_image

VARCHAR

64

4.4.6 Orders Table

Table Name

orders

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

orders_id

INT

11

Not Null

auto_increment

PRIMARY KEY

customers_id

INT

11

Not Null

0

payment_method

VARCHAR

32

Not Null

last_modified

datetime

date_purchased

datetime

orders_status

INT

5

Not Null

0

orders_date_finished

datetime

4.4.7 Orders Detail Table

Table Name

orders_products

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

orders_products_id

INT

11

Not Null

auto_increment

PRIMARY KEY

orders_id

INT

11

Not Null

0

products_id

INT

11

Not Null

0

final_price

decimal

10,2

Not Null

0.00

products_quantity

INT

3

Not Null

0

4.4.8 Orders Products Download Table

Table Name

orders_products_download

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

orders_products_download_id

INT

11

Not Null

auto_increment

PRIMARY KEY

orders_id

INT

11

Not Null

0

orders_products_id

INT

11

Not Null

0

orders_products_filename

VARCHAR

255

Not Null

0

URL for download products

download_maxdays

INT

2

Not Null

0

download_count

INT

2

Not Null

0

4.4.9 Products Table

Table Name

products

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

products_id

INT

11

Not Null

auto_increment

PRIMARY KEY

products_name

VARCHAR

64

Not Null

products_description

TEXT

products_quantity

INT

4

Not Null

0

库存数量

products_image_small

VARCHAR

64

产品小图片

products_image_large

VARCHAR

64

产品大图片

products_filename_download

VARCHAR

255

Not Null

0

same as orders_products_filename

products_price

decimal

10,2

Not Null

0.00

products_status

tinyint

1

Not Null

0

manufacturers_id

INT

11

categories_id

INT

11

4.4.10 Products in Categories Table

Table Name

products_to_categories

Field Name

Field Type

Size

Not Null

Default

Value

Extra

Description

products_id

INT

11

Not Null

0

PRIMARY KEY

categories_id

INT

11

Not Null

0

PRIMARY KEY

*此表作用是可使一个商品从属于多个不同分类。

4.4.11 数据库结构及各表间的关系

数据库结构及各表间的关系如图4-2:

wps_clip_image-25182

图4-2 数据库结构图

发表评论