本文大纲

《我的敏捷软件项目管理实践》

概要设计文档模板

第五章 如何做好设计

1.项目介绍

当前子系统业务场景要解决的核心问题领域是……

【 在这里介绍项目的背景】

1.1本项目涉及的主要人员角色

【 重要,让参与者对项目有一个全局的了解,有带入感】

  1. 平台方:管理员、运营者、客服。
  2. 买家(个人):个人买家通过交易平台以零售价购买商品。
  3. 卖家(企业):企业商户有自己的商标品牌,入驻本交易平台,开品牌旗舰店,把产品卖出去。
  4. 卖家(个人):一般企业商户入驻本交易平台,开店普通店,把产品卖出去。

1.2本项目涉及的主要子系统

【 重要,让参与者对项目有一个全局的了解,有带入感】

  1. PC商城前台系统
  2. 会员中心系统
  3. 商家后台系统
  4. 管理后台系统
  5. 移动端商城系统

【 重要,什么人,在什么系统,做什么操作】**

image2021-1-28_14-21-16.png

2总体设计【可选】

2.1 系统框架设计、核心业务流向

【总体性的描述:什么人,在什么系统,做什么操作*,相互之间的联系】*

【 核心数据流向图】等等

image2021-1-28_14-14-54.pngimage2021-1-28_11-58-17.pngimage2021-1-28_11-59-10.png

2.2设计要求

【 性能要求、安全性要求、扩展性要求】

  • 系统中的XX功能点具备可扩展性
  • 系统中的XX功能点具备可复用性
  • 系统中的XX功能点易于后期拆分
  • 安全性方面能防止sql注入攻击
  • 防止缓存穿透……

3.系统子模块设计

3.1 支付模块设计

3.1.1支付模块业务流程图、时序图、用例图

【请根据实际需要,放任意类型的图】

image2021-1-28_14-38-42.png

3.1.2支付模块的设计

图中虚线标识商户链路,实线标识支付宝链路。
第4步:调用支付接口:此消息就是本接口所描述的支付宝客户端SDK提供的支付对象PayTask,将商户签名后的订单信息传进payv2方法唤起支付宝收银台
第5步:支付请求:支付宝客户端SDK将会按照商户客户端提供的请求参数发送支付请求。
第8步:接口返回支付结果:商户客户端在第4步中调用的支付接口,会返回最终的支付结果(即同步通知)
第13步:用户在支付宝APP或H5收银台完成支付后,会根据商户在手机网站支付API中传入的前台回跳地址return_url自动跳转回商户页面,同时在URL请求中附带上支付结果参数。同时,支付宝还会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果作为参数通知到商户系统

特别注意:

  • 构造交易数据并签名必须在商户服务端完成,商户的应用私钥绝对不能保存在商户APP客户端中,也不能从服务端下发。
  • 同步返回的数据,只是一个简单的结果通知,商户确定该笔交易付款是否成功需要依赖服务端收到支付宝异步通知的结果进行判断。
  • 商户系统接收到通知以后,必须通过验签(验证通知中的sign参数)来确保支付通知是由支付宝发送的。建议使用支付宝提供的SDK来完成

3.2 订单模块设计

3.2.1订单模块业务流程图、时序图、用例图

【请根据实际需要,放任意类型的图】

image2021-1-28_14-37-38.png

3.2.2订单模块的设计

下单流程描述:

  1. 买家在shop商城平台上购买商品,订单状态是“待付款”状态;
  2. 商家可在商家后台的“商品–>订单管理”列表中修改价格和修改运费;
  3. 买家在会员中心的“交易中心–>订单管理”列表中点击“付款”按钮进行付款,付款成功后订单状态变为“待发货”;
  4. 商家在商家中心的“商品–>订单管理”列表中点击发货按钮填写发货信息,发货成功后订单状态变为“待收货”;
  5. 买家收到货后,在会员中心的“交易中心–>订单管理”列表中点击“确认收货”按钮,收货成功后订单状态变为“已完成(待评价)”;
  6. 买家确认收货完成后,可在会员中心的“交易中心–>订单管理”列表中点击“评价”按钮,对商品和商家进行评价,评价完成后订单状态变为“已评价”。

4.影响范围和服务升级内容

本次方案影响原有那些业务,ONE级功能点必须标清

举例:改动订单审核原有业务为XXXXX

举例:改动XX接口逻辑为XXXXX

5.对外提供的接口列表

1 查询城市列表接口

接口描述

a) GET请求,baseUrl/goods-service/outer/film/region

b) 接口描述:获取城市列表的接口

请求参数

Identifier Type Remark
channelId number 渠道id
sign string 签名
pinyin string 城市首字母(可选)
regionName string 城市名称(可选)
timestamps string 当前时间戳

返回参数

Identifier

Type

Remark

message

string

错误描述

success

boolean


code

string

错误码,0:成功 其他:失败

data

array<object>


cityCode

string

---城市编码

regionName

string

---城市名称

parentId

number

---父id

id

string

---城市Id

pinYin

string

---拼音

Json样例

{"success":true,"code":"0","message":"","data":[{"id":"3643","version":"0","cityCode":"513200","regionName":"阿坝","pinYin":"ABA","parentId":0,"goodsId":736},{"id":"403","version":"0","cityCode":"520300","regionName":"遵义","pinYin":"ZUNYI","parentId":0,"goodsId":736}]}

6.依赖外部系统的接口【可选】

举例:依赖于ERP系统的某些接口

7.依赖第三方系统的接口【可选】

举例:调用百度OCR识别接口

举例:依赖腾讯地图接口

举例:支付宝的支付接口

8.性能设计&安全设计&降级策略设计&扩展性设计等等【可选】

举例:所有页面响应时间在500ms之内;

举例:A接口调用频率高于多少如何处理;

举例:请求B系统的b接口多久没有返回如何处理;

9.前端/APP相关方案【可选】

xxxxx

模板

需要模板的读者,请下载附件。

image2025-3-12_20-11-1.png