系统设计中识别业务的“变与不变”

一、如何在系统设计中识别变化

       其实在系统设计的过程中,识别出变化的主要目的是进行分离,减少变化的业务对整个系统框架和层次影响,减少对设计和编码的冲击,保证软件的质量。

如何识别业务流程中变化的部分,主要有以下几种方法来进行识别。

       第一,在进行需求调研的过程中,要详细了解客户的业务发展的过程,以及如何客户的业务发展会向何方向进行调整和发展。客户公司业务流程其实是跟随业务发展而进行变化的过程,所以要比较仔细的研究客户的业务发展历史,从中找出些规律来,设计到软件工程中。

       第二,在调研的过程中,和业务人员进行深入的业务交流,特别是一线的业务人员和主管,他们是真正业务的执行者和建设者,对业务非常熟悉。从中可以了解到这些一线的人员对当前业务的不合适的地方,以及待改进的地方的诉求和期望。这些都是业务流程中变化的部分。

       第三,收集行业内同样类型公司的业务流程,对比这些公司的业务流程和正在使用的IT系统,业务软件是什么样的。这样可以有个对比和参考,提供借鉴。

       第四,了解行业专业知识,专业知识中会对变化的业务进行必要的说明,对其中的变化的内容是长期积累的经验,需要对专业知识进行认真的学习和研究。比如在数字电视中的DVB的标准,它是指导数字电视系统开发和实施的主要技术标准,其中信号的传输有DVB-S/DVB-S2/DVB-C/DVB-T等传输形式,在设计中就需要将信号传输作为变化的部分,产品可以是其中的一种或多种传输链路,将链路作为单独的链路模块,可以随时更改和替换链路模式。

       第五,在设计过程中,也要充分考虑到代码实现,设计上有时虽然有了分离的设计,但代码实现中也要十分清楚,在代码工程中也要进行有效的分离,最后的代码实现才是落脚点,编写代码的程序员不一定知道这些变化业务的设计或者是思路,系统设计人员要将此类的内容着重解释给代码编程人员。

 

二、如何在设计中有效分离变化

       通过对业务流程变化有效的识别后,需要在设计中进行分离,经验的做法有以下几种方式。

       方式一:将变化的部分形成单独的模块,提供接口给其它模块使用,通过接口和其它模块进行交互,只要接口不变化,对其它的业务影响就比较小。

      方式二:适配层接口设计,进行接口转换;

      方式三:设计注册机制,允许通过注册,将变化的业务挂接到业务执行流程中;

        例如在数字电视的系统设计中,UI的变化是非常多的,但数字电视业务本身的流程变化是不大的,每一个广电客户比较常见的需求就是UI界面定制和码表信息,以及节目编排的不同,针对这三个经常变化的要求,需要不同的设计方法,其中UI节目定制就需要和底层的业务流程相脱离,形成单独的模块,UI和实际的数字电视流程进行分离,通过API接口进行控制和数据获得,以及状态上报。PSISI码表的定制需求通过适配接口或者是业务流程注册的方式进行,通过将码流处理的流程通过注册回调的方式来进行,处理流程放到回调中进行处理,不影响解复用的大模块;节目内容的分类和编排,需要通过适配层接口进行适配,转换成需要的格式。通过三种不同的设计方法可以有效控制客户的定制需求,最大限度地复用系统设计和代码。

 


版权声明:本文为DQWKLC原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。