抓住三个点:根,生命周期,以及结构化;
所谓根,就是根本,底层;对于需求分析而言,这个根就是这个项目的基本概念,比如对于机务维修系统而言,基本概念就是定期检修检,预提,预算,直接成本,间接成本;至于和海波龙系统交互等等,都是基于这些大的概念进行的;做到架构设计,这个根本,很大程度上就是对业务流程的抽象化理解,比如在中广核项目中,是一个订单,发货,运输,到货检验最后库存的过程;感觉上中间的环节非常多,但是其实他的根就是两个,商品(UP)和库存;商品是根中之根,几乎所有的流程节点都是围绕这个来进行的,只不过商品被不断的封装而已,早起订单的生成UP,到供货商发货,把UP进行打包(package)/封箱,到了目的地开箱,最后入库存,还有后来的出库,调拨,其实所有的操作无不是围绕着商品创建,打包,以及商品的打包检验,以及仓库见转移,还有后来的返运,也是对于仓库商品的增加,不过需要另外增加对于返运商品的管理和跟踪而已;所以在业务层其实可以划分为三层:上层是功能,比如创建订单,CCC之类,中层对"根"的抽象,商品的处理以及仓库增减,仓库的状态改变以及仓库间操作;可以理解是原子操作的封装;底层是字典表,基本表维护;有了中间层的抽象,上层的压力减轻了很多,代码也有很多重用;
生命周期,是基于根生长出来的,相当于树干,还是拿中广核那个项目为例,生命周期概念就是一个能够把一个项目穿起来的概念,订单,供应商接单,发货,运输,开箱,CCC,ECC,入库,出库,调拨等等;分析生命周期对于项目本身全局的理解有很大;
结构化,就是树的枝干,很多时候业务复杂了,当几个业务同时发生会有干扰,要看清楚,再复杂,关键要一根一根捋清楚,结构化有很多方法,麦肯锡推荐的树状分析法,还有温玉在《一下架构师》中讲述的需求分析的二维表法以及目标-场景-解决方案法;对于接单可能就需要再进行细化:分场景,是正常的接单,还是返运创建订单,不同的类型都有哪些处理,这样的话将会画出一个很大的分支来,这是有好处的,一旦调拨,出库入库混杂在一起的时候,就是用这个大分支进行捋清;做架构设计就是对鲁棒图以及分层进行细化,细化的角度就是逻辑视图,数据视图,物理视图以及开发视图进行结构化。