首页 软件建模——分享我的业务建模经历
文章
取消

软件建模——分享我的业务建模经历

分享我的业务建模经历

我感触最多的是为公司开发一款进销存系统。

项目介绍

公司概况

东莞市久源建材贸易有限公司是一家小微企业,成立于2017年,注册资本100万元。主营业务为五金建材、建筑材料、五金配件、螺杆的加工制作。目前公司在职员工达30人,客户群体规模达300人。

系统功能简介

进销存系统功能是对公司产品采购、商品销售、产品生产、库存管理、财务汇总、数据分析等工作进行信息化管理,目的是提高进、销、存三方面工作的效率。主要功能包括客户跟踪、销售记录、成本核算、库存盘点、财务分析、员工薪酬等功能。

image-20220323144255523

参与人员

  • 开发者只有我一人,负责系统分析-设计-实现-维护整个流程。

  • 利益相关方有3~4人,同时也是系统最终用户。按用户建模可分为两类角色,员工和老板。

    • 员工:主要职能是录入系统数据并核对数据,包括销售单,进货单,付款记录等等。最开始员工只有一人,随着业务扩展员工变成三人。
    • 老板:不关心系统如何运行的,只关心数据大盘,包括客户欠款报表,月销售报表,利润表。

时间进度

  • 2019年12月底项目启动,和老板讨论可行性,和员工讨论业务需求。

  • 2020年3月初,系统上线第一版并开始试运行,只有销售模块。
  • 2020年5月底,系统上线财务、员工、进货模块,销售模块相对成熟。
  • 2021年2月底,系统上线库存模块,进货模块大改动。
  • 2021年7月初,系统更新财务模块,新增银行卡概念,细分开销费用类别。
  • 2022年1月底,系统上线生产模块和操作记录,记录每日生产活动,员工系统操作记录。

业务流程建模经历

以销售模块的业务流程建模为例,站在开发者视角,谈谈我对公司销售流程建模的发展过程。

第一版

最开始的我设计的销售模块功能很简单,可以在系统上录入销售单,然后可以打印纸质单据送货。这是当时最主要的需求

当时的业务流程建模如下图所示(但实际上公司的需求远不止这莫简单,他们的销售流程比这复杂的多,只是当时的我不理解)

第一版

第二版

随着系统使用,我开始意识到销售单是需要做状态管理的,销售单有新建,已送货,未付款,已付款,归档等状态。

因此在系统开发的第二版中,增加了财务模块,支持针对每一张订单进行付款,生成一条付款记录(付款证明)。付款确认后订单会变成归档状态。下图是当时的业务流程模型

第二版

第三版

很快用户就反映,订单许多时候并不是按单付款的。对于许多批发客户,是每一季度或者某一个周期进行付款,一次性结清多张订单。系统目前是认为一张订单一条付款记录,这样与实际情况不同,而且会导致公司对账的时候弄不清楚。

总结而言,就是客户有两大类付款方式,一类是下单立即付款,每单结清,针对零售客户。另一类是按期付款,针对批发客户,针对这类客户往往还需要开对账单和开发票。

因此新的业务建模如下,客户付款的时候将根据实际业务发生情况生成收款记录。

第三版

第四版

第三版业务建模满足公司需求,稳定了大概一年左右。

随着公司客户的增多,业务量变大,公司开始反映会出现纸质送货单与系统记录对不上的情况。系统上存在某些销售单,但实际却找不到纸质单据。

公司送货主要有两类情况,一类是客户自己到公司仓库提货,当场确认签字。第二类是物流送货,需要委托货运司机将货物送到客户工地,然后客户签字后,由货运司机将签字的送货单带回。经过排查发现,单据缺失的情况主要出现在第二类情况

因此公司要求对每一张销售单,都要增加确认收到回执的过程。回执是指经过客户签字确认的送货单,代表客户确认收货。新的业务建模如下

第四版

前后系统对比

第一版:仅支持录入客户和产品名,可以开出销售单。

image-20220323151433851

系统目前版本

销售单支持状态管理,利润计算,销售报表,检测异常订单,记录操作日志,对接库存模块和财务模块。

image-20220323151453730

本文由作者按照 CC BY 4.0 进行授权

白盒AES-tutorial 论文阅读笔记

网络安全——DDoS拒绝访问攻击与防御