一个软件自动化过程中可能会设计到的几个概念:
    业务模型建模
    表单配置引擎
    业务流程引擎
    规则引擎
    参数校验引擎
    流程编排和服务编排
    模板引擎
    代码引擎

    彼此之间的关系:
    业务流程和业务数据建模可能是最基础也是最常见的两个设计工具;
    一个业务流程的每个节点可能都会设计到具体的表单配置;
    一个负责的业务节点也可能涉及到规则引擎;
    每个业务节点可能也会涉及到参数校验和业务校验;

    以一个业务流程中可能会涉及到流程流程编排,流程编排中又涉及到不同服务的系统又设计到服务编排;

    所有的这些最终都要呈现再代码层模,又设计到代码生成引擎;代码生成引擎又依赖于代码模板引擎;

    这里面需要的支持还有:
    数据字典的建设:比如表单配置需要用到的数据源;
    基础数据和组件的建设:用户,部门,角色,权限,功能等;
    参数校验规则的完善:用户名,密码,地址,电话,mail,单据编码规则等;
    业务规则的建设:唯一性校验,互斥规则,包含规则,上下级规则,状态扭转规则等;

    举例:比如订单支付流程:
    涉及到的数据模型有,商品,SKU,订单,支付记录,地址,购物车;
    涉及到的流程是:选择商品加入购物车,计算价格,结算,选择地址,生成订单,支付;每一个环节都需要想应的表单,也都需要设计到具体的数据的读取,计算,改变和呈现;
    中间也会触发积分规则,优惠券发放和使用规则,根据选择的商品触发不同的优惠策略;规则和规则也存在互斥和叠加使用等;
    最后这些,需要通过流程编排进性实现,并在进一步基于服务编排进性实现;