换个角度看软件建模


领域建模的目的
用一句话讲领域建模的根本目的就是统一认识、减少沟通成本。
这句话听起来很简单,但其实有两个层面的含义:一是工程技术规范,指的是业内规范;二是业务认识,指统一业务、开发、测试、产品的认识。
然而要做到统一与规范是很难的,开发喜欢从技术层面去描述问题,产品习惯从业务层面描述问题,双方沟通成本较大,此时领域建模就能够起到“一图胜千言”的作用。
领域建模的关键
领域建模的关键是找到业务的流程节点,找到业务流程节点就成功了一半。正如在小学做阅读理解一样,重要的是概括文章中心思想和段落划分。
其中段落划分就是业务流程中的节点,所以每个段落分层一定有核心点,而核心点就是组成文章中心的一部分。抓住这几个核心要点就等于掌握了整个文章的主旨,再深入分析每个支撑要点。这样一来,既能站在主层次看整个流程,又能深入细节看具体内容。
如何建模
那么到底该如何建模,我们需要先理解关键概念,即领域是什么,模是什么,再来学习方法。
领域和模的定义
首先来看领域是什么,百科中将它解释为“学术思想或社会活动的范围”,“的”字前面都是修饰作用,重点需要关注“范围”这个词,谈建模一定要限定范围。比如商品领域建模、优惠券领域建模等。
其次,模是模型,反映到业务上,模就是业务场景的映射,换言之,通过模型就能推导出业务场景,反之也一样,通过业务场景也能推导出模型,所以,不懂业务无法建模。
建模的前提
在了解怎么建模之前,我们需要认识到:
- 业务是建模之母
- 任何业务都存在一条稳定的业务流程
- 业务流程中,流程节点的产物就是业务骨架
以上结论在实际操作中会不断用到。下面就具体从实际可操作的方法上分析领域建模。
建模的具体步骤
第一步:找出业务主流程
这是业务的生命周期,不管怎么讲,任何业务都有一套稳定的业务流程。
类似优惠券业务,业务流程就是建券、发券、用券。
业务主流程的每个流程节点都会有一个产物出现,这个产物就是业务的骨架,在这个业务下,它的产物是券批次、优惠券实例。
注意,它仅仅是一个骨架,但至少需要找到两个关键领域对象。
第二步:细分业务主流程
这一步是在主流程基础上继续分析子流程,主流程能让我们知道整体的业务流程,但还有些细节流程是在子流程中,比如建券是一个大流程,那么我们马上会问,这个券长什么样?有哪些关键属性?等等,多问几个为什么就可以深入到业务细节了。
再比如发券过程,需要经过一些检查,如规则检查、风控检查,最后才是发券,这样分析下来,我们对业务掌握得越来越深入。
第三步:抽象
从第二步中,我们得到更多具体对象,但此时要进行合并整理,并不是直接加到券模板或者优惠券实例关联部分上,这个过程是不断打磨的过程。