“从产品做出原型到研发编程实现,中间有一条鸿沟。需求越复杂,这条鸿沟就越大。”如何弥补这个“鸿沟”呢?我们需要进行两个工作:系统分析与架构设计。本篇 Chat 先讲其中的系统分析。
系统分析强调对问题的调查,要解决的是系统必须做什么的问题。
此次交流以一个零售企业的实际项目为例,讲述如何进行系统分析。内容包括:
- 软件系统分析全过程
- 定义系统的目标和范围
- 分析系统流程
- 需求规格描述
系统分析能力是架构师必备的,希望通过本次交流,为学员成为系统架构师打好专业基础。
移动支付的使用已经非常广泛。不管是线上的电商平台,还是线下的实体零售,都支持多种支付方式,这就给企业财务人员的核账工作带来极大的挑战。拿实体零售来说,没有移动支付前,只能付现金,财务人员只要核对实收现金和营业额。如今,支付方式繁多,每一种支付都需要财务人员去核对。以我们公司为例,我们有 400+ 实体店,每天是几十万的支付流水,而一个运作良好的电商平台,每天会产生上百万的支付流水。面对巨量的支付数据,财务人员依赖于手工核账显然是不行的,不光工作量大,还容易出错。这时,财务部门会要求建立对账系统,由系统来完成核账。
在业务部门或者产品经理(互联网公司设有产品岗,一般需求来自产品经理) 提出需求之后,我们首先要分析业务逻辑抓住核心需求,理清系统的边界,知道系统能做什么,不能做什么。然后,才能设计出满足业务方要求的系统。一种常见的情况是,职场新人拿到需求就开始设计数据表结构,写代码了,想到哪写到哪。另一种情况是,一些有工作经验的人,凭着自己的经验去设计,要么是考虑不周,要么就是漏掉一些功能。这都是设计系统之前缺少系统分析而造成的问题。
下面我们通过零售企业的对账系统,介绍系统设计前如何做好系统分析。
需求分析
需求分析的目的是确定系统目标和范围。有了清晰的目标和范围,我们才知道系统要建成什么样,成功与否的衡量标准是什么。社交平台上,经常看到有人说学习静不下心,没看几页书心就不知道飘到哪去了。这就是典型的没有目标的学习,学到什么程度可以结束没有清晰的界定。
首先是定义系统目标,就是说我们为什么要建立这个系统?系统目标最好用一句话能