需求分析和开发文档
2024-06-21 本文已影响0人
温岭夹糕
写在开头
非原创,仅用于自身学习系统设计
文集目录
1.当需求不明确时,系统如何设计
当需求方对于系统需求不太明确时,比较可行的方式是:
- 先把不太会变化的核心系统搭建出来,即尽量简单的实现一个最小化的系统
- 然后再逐步迭代完善
那么以电商系统为例,它的核心系统(流程)是什么样的?
1.1.需求阶段
遵照软件工程的一般规律,我们先从需求阶段开始。那么需求分析怎么做,或者换句更糟糕的话来讲,当产品经理将需求分析工作扔给开发者(一两句话打发),为了避免项目交付以后,用户不满意,需要不停改这种情况的出现,我们为了减少自己的工作量,如何做需求分析?
1.1.1业务需求
首先在设计功能前,我们需要回答以下问题:
1.这个系统或者功能是给哪些人(群体)用的
- 该群体使用这个系统解决什么问题
即用户是谁?帮助这些人解决什么问题,这两个问题的答案我们称之为业务需求
那么对于电商系统,用户无非就是两种,买东西的顾客和卖东西的运营人员,后面可能再多一个看报表的老板
对于要各自解决的问题可以用下图表示
这个图是我们在需求分析时需要画的第一张图。
1.1.2 用户购物流程分析
然后很显然,一个电商系统的最主要业务流程,一定是顾客的购物流程,我们使用一个流程图总结 image.png- 圆角矩形表示开始/结束
- 矩形表示一个流程
后面我们需要做的就是根据流程来划分功能模块
1.1.3功能模块划分
我们画一个时序图来解释 image.png- 用户浏览商品,需要一个商品模块给用户展示
- 商品存入购物车,需要一个购物车模块
- 下单需要一个订单模块,订单创建好后将商品从购物车中删除,订单状态为未支付
- 订单创建好后需要引导用户支付,需要支付模块,支付完成后更新订单状态为已支付
- 运营人员负责从库存中发货,需要一个库存模块,发货后更新订单状态为已发货
6.最后用户收获确认,更新订单状态为已收货
以上几个模块组成了电商系统的核心功能模块--购物,相比购物流程,剩下就没那么复杂,我们就省略分析过程
image.png其中这里需要特别注意促销模块,它是电商最复杂的一个模块,各种优惠卷满减规则组合叠加,常常复杂到制定者都没搞清,因此我们需要把促销的变化和复杂性封禁在促销模块内部,不能让它把电商系统搞得非常复杂,否则很难去设计和实现,比如订单模块把商品和价格信息传给促销模块,再由促销模块返回一个可以使用的促销列表,用户选择好促销和优惠后,订单模块再次回调给促销模块,由促销模块返回促销价格,即最终生成的订单,只需记录使用哪几种促销和最终促销价格
2.项目文档
曾看过这样一个投票,关于盘点程序员喜欢和不喜欢的事,有两条和文档相关:
- 不喜欢写文档
- 不喜欢项目文档太少
2.1项目文档的重要性
没错,看似很矛盾,确实很现实。不喜欢写文档的原因无非就是懒或者不知道怎么写,但现实又是--写文档对个人、项目和团队都非常重要:
- 帮助写文档的人理清思路。写作过程就是一个思考的过程,先写文档就会抛开代码细节,去站在全局思考,通常写不出代码,也是意味着真正的障碍没想清楚,在心里只有一些未成形的混乱的想法和概念,我们必须要努力把这些模糊的想法确定化和具体化才能写出来,即如果你连文档都写不出来,那么怎么指望代码写得好
- 便于未来维护和交换
- 便于团队更好协作沟通
2.2如何写好文档
首先我们要对文档有一个正确认识--文档写作的关键就是通过文档把你的想法表达出来,就和表达沟通一样,你的脑子是乱的,那么你说出来的话就是乱的,你就算技巧再好那也是一个糟糕的表达。所以我们写文档不需要追求太多华丽的词藻,只要简明的利用文字和图像表达就行,下面推荐一些可行的方式:
- 从模仿开始
- 从小文档开始,比如一两句话的笔记,记录别人对你问题的回答,甚至截图
3.从粗到细,从脑图到ppt,再到文档,还一个例子就是如上面的需求分析