在软件开发阶段,我们常常说到一个词“业务流程”。但是这个词具体是什么意思,好像没有几个人能够说得清楚。
近期,为了研究设计模式,朋友发来一个他们公司开发的软件产品供我学习参考。拿到这款产品后, 我思考了如下的问题:
(1)怎样才能快速熟悉这款软件产品,并能够向他人描述这款产品?
(2)怎样评价这款产品的设计模式是否合理?依据什么样的标准呢?
(3)这款产品的设计模式还有改进的余地吗?怎样改进?
想来想去,无从入手。脑子里不断盘旋的是这么几个词“业务流程”、“模块”、“功能”、“流程图”、“业务”、“UML”、“业务模型”。很乱,没有头绪。
终于,在和另外一位朋友闲聊软件设计模式的时候,突然领悟。
业务和流程是两码事。业务是指一款软件产品提供哪些服务,用市场化的语言就是,有哪些功能。而流程是指这些业务具体是按照什么样的步骤实现的。
也就是说,业务是按类分的,而流程是按步分的。流程是对业务具体实现的描述。
认识到了这个层面,我们就知道该如何分析一款陌生的软件产品,或者全新的客户需求了。
拿到一款陌生的软件产品,我们首先要做的工作是观察它为用户提供哪几种服务(业务),然后再逐个针对每一种服务,分析具体的流程。
拿到客户需求也可以按照上面的方法进行分析。
这样,我们就可以输出如下几种文档。
第一个:需求分析文档
第二个:业务分析文档
第三个:针对每个业务的流程文档
在具体的开发过程中,开发人员如何设计一款软件,最终的参考就是流程文档。有了具体的流程文档,开发人员就知道,哪些流程是共通的,可以公用的,哪些是个性化的,只能私有的。
基本上,只要流程文档分析完毕,开发人员就可以动手开发业务层和数据层的代码了。表现层的事情,可以等待具体确定完界面展现方式再说。