扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
获取到主要的对象,还可以帮助我们对系统有整体的认知。从以上的用例和主流程中进行抽象,我把得到的一级对象按业务分成6类:采购、销售、快递、系统管理、仓库、财务,对象内容如图9。

图9 一级对象
上图无法描述对象之间的关系,在下图展示对象的关联关系(有连线代表有关系)。
由于对象太多,关系线太多,无法绘制到同一张图中,所以有些对象会重复出现。延续采购和退货、销售和售后、系统管理5个主流程,并补充了用例中提到的仓库仓内管理、财务管理业务相关的对象关系。
①采购和采购退货,包含采购入库、采购退货出库、库存更新、结算付款,如图10;

图10 采购和采购退货相关对象
②销售和售后,包含销售出库、售后入库、库存更新、收款,如图11;

图11 销售和售后相关对象
③系统管理,如图12左一;
④仓库仓内管理,如图12左二;
⑤财务管理,如图12右一。

图12 系统管理/仓库仓内管理/财务管理相关对象
二、系统详细设计系统详细分析,分析粒度变小,保持在增删改查功能的粒度,目的是获得全部系统用例。
第一节,把系统全局分析里的用例进行细化,即用例流程分析,可以发现基本的二级用例;
第二节,搜集所有的二级用例,即在流程中体现的用例以外,再补充其他必要的二级用例,例如删除、导入、导出;
第三节,为了满足高可配置化,还需要引入配置对象,例如商品自定义属性;
第四节,找到配置对象的用例,我称为三级用例,例如创建商品自定义属性,以满足配置需求。
1. 用例流程分析用例流程就是用例的实现方式,是常用的需求细化方法,即细化上述一级用例的粒度,流程分析的目的是可以从中发现下级用例,现在开始分析流程,下图列出一级用例和对应的流程图,如图13。

图13 一级用例对应流程图

图14 基础信息维护相关流程

图15 采购相关流程

图16 销售相关流程

图17-1 管理库存流程

图17-2 仓库管理相关流程

图18-1 预收款单和收款单流程

图18-2 预付款单和付款单流程

图18-3 财务相关流程

图19 系统管理和用户相关流程
2. 二级用例完成流程分析后,已经获得一部分细化的二级用例,但对于整个系统的闭环还是不够的,这节就补充完善二级用例。
现在获取的用例粒度,保持在主要对象的增删改查即可。获取二级用例从两个角度分析,一是从上述的流程中进行提取用例;二是专注分析的对象,然后围绕该对象设想一些场景以获得需求,例如删除、导出、打印、批量处理等在流程中找不到的需求,开始获取二级用例。
沿着一级对象的6个业务类别:采购、销售、快递、系统管理、仓库、财务,把业务类别中的对象一个个进行分析。
1. 采购
如图20。

图20 采购相关二级用例
供应商,补全供应商的新增、查看、修改、停用、启用、删除,另支持设置供货商品、导入供应商、导出供应商、导入供货商品;
采购订单,补全采购订单的新增、查看、修改、关闭,提供审核功能:提交审核、审核、查看审核信息,另支持复制、导入、导出、批量关闭、打印采购单;
采购入库单,补全采购入库单的新增、查看、修改,另支持快速导入、直接入库、导出;
采购退货单,补全采购退货单的新增、查看、修改、关闭,提供审核功能:提交审核、审核、查看审核信息,另支持复制、导出;
采购退货出库单,补全采购退货出库单的新增、查看,支持直接出库、导出;
采购结算单,采购结算有两种类型:采购结算、采购退货结算,提供新增采购结算单、新增采购退货结算单,支持查看详情、导出。
2. 销售
如图21。

图21 销售相关二级用例
店铺,补全店铺的新增、查看、修改、停用、启用,需获得淘宝店铺的授权才可以同步线上的商品、订单、售后单,所以支持店铺授权;
客户,补全客户的新增、查看、修改,支持复制、导入;
销售订单,①订单操作,创建销售订单有两种方式:系统新增销售订单、下载店铺线上订单,另支持查看、修改、审核、打回、挂起、恢复、拆单、合单、提交异常、关闭订单、导入订单、批量修改、指定操作员;②发货操作,支持整个发货流程:生成快递单、打印快递单、打印发货单、打印配货单、配货、拣货、验货、打包、称重、发货;
销售出库单,补全销售出库单的新增、查看,支持打印出库单、导出;
销售售后单,创建销售售后单有两种方式:新增售后单、下载店铺线上售后单,支持售后流程操作:查看详情、同意换货、同意退货、同意退款、拒绝申请、审核、打回审核、入库、换货下单、关闭售后、售后完成,另支持批量操作:批量入库、批量换货下单、导入售后单、导出售后单、指定操作员;
销售售后入库单,补全销售售后入库单的新增、查看、修改,支持导入、导出。
3. 快递
如图22。
图22 快递相关二级用例
a)快递公司,补全快递公司的新增、查看、修改、停用、启用,支持运费成本设置、导出;
b)快递单,补全快递单的新增、查看,支持打印快递单。
4. 系统管理
如图23。

图23 系统管理相关二级用例
公司,补全公司的新增、查看、修改;
角色,补全角色的新增、查看、修改、删除,支持编辑角色权限:修改操作权限、修改数据权限;
员工,①补全管理员维护员工的操作:新增、查看、修改、删除、停用员工,还有其他新增用户的方式:复制员工、邀请员工、同意员工加入,还有管理员设置:设为管理员、取消管理员、转让超级管理员;②另支持用户视角的用例:激活员工账号、注册账号并申请加入公司、登录、忘记密码、修改密码、修改手机号;
消息,触发系统规则后发送消息、用户收到消息并查看;
商品,为了支持线上的业务,除了维护系统商品外,还需要关联淘宝店商品,进行对应。①维护系统商品:补全商品的新增、查看、修改、删除、停用、启用,提供“复制商品”的快捷新增操作,提供批量、导入导出、打印操作:批量修改、导出条码、打印条码、导入商品、导入商品价格、导出商品;②关联淘宝店商品:“下载线上商品”并“关联系统商品”,系统没有的商品支持直接根据线上商品“生成系统商品”,建立好关联商品后,可以查看关联商品、更换对应关系、解除对应关系、导出对应关系、导入对应关系。
5. 仓库
如图24。

图24 仓库相关二级用例
仓库,补全仓库的新增、查看、修改、停用、启用,支持导出仓库信息;
库存,库存是管理商品的数量,实际库存代表实际仓库中拥有的库存量;在途库存是尚在运输途中,还未入库的库存数量;锁定库存是待出库的数量,不可操作;①因此需要提供三类库存的更新:增加锁定库存、减少锁定库存、减少实际库存、增加在途库存、减少在途库存、增加实际库存,②还需设置期初库存:设置期初库存、导入期初库存、导出期初库存,③提供基础查看库存、导出库存功能,④库存需要同步至淘宝店,提供上传库存功能;⑤库存不足时发送预警消息,提供库存预警功能;
库存盘点单,补全盘点单的新增、查看、修改、审核、关闭,另支持导入、导出、打印;
成本调价单,补全调价单的新增、查看、修改、审核、删除,另支持导入、设置期初成本均价;
调拨单,实际调拨,需要发快递进行出入库,虚拟调拨不需要发快递,直接调整仓库的库存。支持新增实际调拨、新增虚拟调拨、查看调拨单、修改、关闭、审核、导入、导出、打印调拨单;
调拨出库单,补全调拨出库单的新增、查看,另支持打印调拨出库单、导出;
调拨入库单,补全调拨入库单的新增、查看,另支持打印调拨入库单、导出。
6. 财务
如图25。

图25 财务相关二级用例
资金账户,补全资金账户的新增、查看、修改、停用、启用,支持设置初始余额、设为默认账户;
预收款单,预收款单有三种类型:充值、消费和提现,提供新增预收款充值单、新增预收款消费单、新增预收款提现单,另支持查看、打印、导出;
收款单,补全收款单的新增、查看,另支持打印收款单、收期初欠款;
预付款单,预付款单有三种类型:充值、消费和退回,提供新增预付款充值单、新增预付款消费单、新增预付款退回单,另支持查看、导出;
付款单,付款单有两种类型:付款给供应商、付款给快递公司,提供新增供应商付款单、新增快递付款单,另支持查看、打印、付期初欠款;
快递对账单,补全快递对账单的新增(导入)、查看、修改、删除,另支持结算、查看快递单对账结果;
转账单,补全转账单的新增、查看;
资金流水,资金流水有两种类型:收入和支出,提供记收入流水、记支出流水,另支持查看和导出。
3. 补充对象以上的二级用例,基本已经解决业务的需求,业务可以闭环流转了。但还需要考虑一些非功能性需求,例如系统的配置需求、安全需求等。
万里牛ERP提供的是SaaS服务,使用一套系统服务所有客户,就需要提供强大的配置化功能,以满足不同客户的个性化需求,一般有两个配置方向,一个是对象的上下级对象和属性配置,二是配置一些用例场景的规则。
从之前获取到的对象进行分析,聚焦每个对象的场景,得到以下对象有强烈的可配置化需求,并提取补充对象,如图26。

图26 补充对象
供应商,①供应商需要分组来归类,引入供应商分组;②为了适应更多用户各自的业务,引入供应商自定义属性;
采购订单,①审核采购订单时,不同企业的规则不同,需要设置有几级审核,以及每级的审核人员,引入采购审核规则;
店铺,①店铺需要分组来归类,引入店铺分组;
客户,①为了适应更多用户各自的业务,引入客户自定义属性;
销售订单,①不同企业的发货流程可能不同,大企业发货流程较长,小企业发货流程较简单,支持设置发货流程,引入发货流程;②订单出库会附带发货单,支持配置发货单的内容项,引入发货单模板;③订单配货时,需要配货单,支持配置配货单的内容项,引入配货单模板;④为了加快销售订单审核的效率,希望无异常的订单可以自动审核通过,引入订单自动审核规则进行设置;⑤有些订单需要拆单发货,例如大件商品,或者商品在不同仓库,希望可以自动拆单,引入自动拆单规则进行设置;⑥有些订单可以合单进行发货,例如同一客户下了两个地址一样的订单,希望可以自动合单,引入自动合单规则进行设置;
售后单,①用户的售后单审核通过后,退货地址希望自动匹配到某个最适合的收货仓库,引入退货仓库匹配规则;
快递公司,①每个快递公司都需要设置运费,而快递的运费规则差别不大,为了方便设置运费时调用模板,引入运费模板;②用户下单支付后,希望自动匹配到某个最适合的快递,引入发货快递匹配规则;
快递单,①销售订单出库时,需要打印快递单,但是每家公司的快递单都不同,所以支持配置快递单的内容项,引入快递单模板;
商品,①店铺的商品存在分类,引入商品分类;②不同商品的规格可能不同,例如衣服的规格是颜色、尺码,手机的规格是颜色、内存,所以规格支持自定义,引入规格;③不同商品的品牌也不同,所以品牌支持自定义,引入品牌;④不同商品的计量单位也不同,例如饮料最小单位是1瓶,12瓶一箱,而零食最小单位是1包,25包一箱,所以计量单位支持自定义,引入计量单位;⑤为了适应更多用户各自的业务,引入商品自定义属性;
仓库,①一个仓库很大,一般会分为3级,分别是区域-库区-库位,区域和库区统称库区,用于业务隔离和区分作业功能,引入库区;②库位就是仓库中最小的定位标识,一般属于某库区下,引入库位;③仓库需要分组来归类,例如属于华东仓、华南仓等,引入仓库分组;④用户下单支付后,希望自动匹配到某个最适合的发货仓库,引入发货仓库匹配规则;⑤为了适应更多用户各自的业务,引入仓库自定义属性;
库存,①库存中有二级用例是上传商品库存至线上店铺,由于用户可能同时运营多家店铺,每家店铺有订单出库了是会影响到其他店铺的库存的,需要配置上传库存的规则,所以引入上传库存规则,;
资金流水,①记录资金流水时,需要记录收支科目,为了适应更多用户各自的业务,引入自定义收支科目;
最后,还考虑一些简单的配置项,某些功能、规则的开关,例如出库单、入库单是否需要审核的开关。这样简单配置项有很多项,如果设计一大堆对象,但每个对象永远只有一条记录值,每增加一个配置项,就新增对象,还是永远只存一条记录值。所以这类配置项不适合分别单独作为对象管理,需要引入一个通用的配置项对象进行管理,配置项一般是系统内置的规则,进行规则的开关、或者选用某种规则。
4. 三级用例得到补充对象后,就继续分析以上补充对象的用例,我称为三级用例,这样就完成该粒度层次的分析。
三级用例粒度是补充对象的增查改删,例如新增商品分类,是新增商品分类供商品调用,达到配置的目标。该粒度的用例比较有规律,大概有新增、查询、编辑、 删除、复制、排序、停用、启用、默认等功能。如图27,列出了补充对象的用例。

图27 三级用例
三、原型设计系统原型设计,分析粒度变小,保持在页面和元件交互,目的是获得可交付的原型和标注。在原型设计前,需要梳理功能清单,一来可以展示系统的全貌,二来可以了解工作量和分配各模块的执行人。
1. 功能清单功能清单就是把上文分析的所有用例按某种展现逻辑组织起来,而这种展示逻辑就是导航设计,所以在列功能清单前先进行导航设计,然后把用例放置到相应的导航菜单中,即可完成功能清单。
导航设计的粒度保持在一个比较高的层级,可对照到上文系统全局分析中的主流程和一级用例,以及系统详细设计中的补充对象,站在用户的角度,把主流程、一级用例、补充对象进行分类结构化。
功能清单的粒度则保持在操作的层级,可对照到上文系统详细设计中的二级用例和三级用例,站在用户的角度,把二级用例、三级用例放置到相应的导航菜单中。这样上文的所有分析就发挥作用了,功能清单被自然的推导出来了,如图28。
在完成功能清单后,即完成产品规划的部分,就可以按模块分配给多名产品经理,设计各个模块。

图28 功能清单设计思路
1)导航设计参考5个主流程:采购主流程、采购退货主流程、销售主流程、销售售后主流程、系统管理主流程,可以看出电商日常高频率的工作是销售和采购,伴随着仓库和财务管理。采购工作的正向流程和退货流程合并成一个菜单(采购),所以常用的业务菜单如图29。
图29 常用业务菜单
c常用业务菜单但在开展业务之前,需要设置基础数据及系统配置,所以加入基础信息、商品、设置、个人中心四个菜单放置系统管理主流程的功能。另外,店长需要关注经营情况,需要看报表,增加一个报表菜单,最终的一级导航菜单如图30。
图30 一级导航
把上文系统全局分析中一级用例,和系统详细设计中的补充对象归类放到一级导航下,就是完整的导航菜单,如图31。

图31 导航菜单
2)功能清单
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流