“一个人了解的业务逻辑越多越细,他就是越好的需求分析师。”
花了一下午攻坚一个难题:什么是业务逻辑?
业务是指一个实体单元向另一个实体单元提供的服务。
逻辑是指根据已有的信息推出合理的结论的规律。
业务逻辑是指一个实体单元为了向另一个实体单元提供服务,应该具备的规则与流程。就像你家的规矩–“吃饭前必须洗手”“有客人来要起立”“睡觉前各自说晚安”-就是业务逻辑的生活化实例。
在软件系统架构中,软件一般分为三个层次:表示层、业务逻辑层和数据访问层:
表示层:负责界面和交互;
业务逻辑层:负责定义业务逻辑(规则、工作流、数据完整性等),接收来自表示层的数据请求,逻辑判断后,向数据访问层提交请求,并传递数据访问结果,业务逻辑层实际上是一个中间件,起着承上启下的重要作用;
数据访问层:负责数据读取。
业务逻辑的内容包括四个部分:
领域实体:定义了业务中的对象,对象有属性和行为;
业务规则:定义了需要完成一个动作,必须满足的条件;
数据完整性:某些数据不可少;
工作流:定义了领域实体之间的交互关系。
以大毛网购裤子为例
领域实体:大毛、资金账户、订单、裤子、发货单
业务规则:大毛点击购买就会生成订单,但必须付了钱,才会发货,生成发货单。
数据完整性:淘宝网下订单必须登录账号,没有账号就不能成功购买。
工作流:搜索裤子-找到合意裤子-下单购买-付账-收货。
业务逻辑:搜索“裤子”-找到合意裤子-下单-必须登录账号-结算-付账-收货。
当当必须登录账号才能下单成功,亚马逊就不需要,今天发现淘宝也不需要登录账号就能购买商品了,所以每个网站的规则的不同,就形成了不同的业务逻辑,业务逻辑不仅仅包括规则,还包括实体、数据完整性、工作流。如图:
业务逻辑图
业务逻辑也需要画图,叫做业务逻辑图,它跟业务流程图有什么区别呢?
业务流(工作流)是业务逻辑的一部分,它定义了对象之间的交互关系,但不涉及到规则的制定,数据的完整性方面。
其实,我们平常画的业务流程图多数是业务逻辑图。
按照《人人都是产品经理》一书介绍的需求规格书模板,业务逻辑图在需求规格说明书中,一般放在第一章的概要说明当中,画一张核心业务的业务逻辑图,以让读者理解项目大概的业务流程。在第二章的各个用例中会具化业务逻辑图中的步骤。