一种解决传统软件开发痛点的开发模式的实现方法
技术领域
本发明涉及一种解决传统软件开发痛点的开发模式的实现方法,应用于软件业务需求开发领域。
背景技术
传统的软件开发模式中, 经常会出现软件开发无法提高效率,开发人员之间经常出现A等B的问题,依赖过重,依旧趋于单线程式开发,不能完全释放和利用编码劳动力, 同时存在代码耦合冗余,没有形成很好的细粒度划分,导致功能测试以及进度监控的难度提升,虽然在后期的演变历史中出现了很多从特定点出发的软件开发模式的解决方案,常见的有瀑布模型、快速原型模型、增量模型、迭代模型、螺旋模型等这些模型所能针对的变化情况都不一样,产生的交集不多,例如瀑布模型是主要针对需求易于完善定义且不易变更的软件系统,而快速原型模式针对的是需求复杂、难以确定、动态变化的软件系统等等;它们虽然在各自应用的范围里面能够或多或少的有效解决一些问题,改善一些情况,但没有一个很全能的去实现减轻开发人员花在了解需求上的精力,降低开发人员编程难度的同时又能够以最小的代价、最快的速率去应对频繁的需求变更,实现开发人员无冲突并行化开发,加速软件开发效率的开发模式。
发明内容
本发明是针对传统软件开发模式的不足,本发明的目的在于提供一种解决传统软件开发痛点的开发模式的实现方法,从而达到业务需求开发中的低耦合、高扩展、低成本、高效率。
本发明为了实现上述目的,采用如下技术方案:
一种解决传统软件开发痛点的开发模式的实现方法,其特征在于:
在传统的需求文档确认和实际编码开发的过渡段之间会再执行一步处理,该处理的步骤如下:
(a)、通过需求文档执行拆分和细化,并将其转换成业务模块、业务线的形式表示;
(b)、为每个模块内的每条业务线定制一个客户端可识别名称,用于实现交互定位;
(c)、利用传统过程式思维的划分业务线成一个一个的业务点形式,同时针对业务线上的每一个业务点提前设定好输入数据和输出数据的标准键值结构以及对应的键值内容;
(d)、将业务模块、业务线、业务点之间的关系生成实际的配置文件,以此份配置作为开发人员的业务逻辑流程编写的依据;
上述步骤中所提及的业务模块、业务线、业务点的关系:一个业务模块具备多条业务线,并且业务线是不相交的, 每条业务线上都包含着多个业务点执行组装;
业务模块,是为了衔接传统的需求划分中按模块划分的理念,能保证传统模式下的用户比较平缓衔接至并行插拔的开发模式;
业务线,是有起点和终点的;
业务点是每条业务线的必须组成,在并行插拔开发模式中它分为开始点、分支点、处理器点、分支处理器点、并行点、合并点、结束点。
进一步的,业务线工作流程步骤如下:
(1)、用户执行一个服务端业务请求操作;
(2)、通过网络传输该业务请求信息;
(3)、服务端入口接收到并解析该业务请求信息,通过识别该请求的业务标识之后将客户端用户传递来的待处理的业务数据进行过滤;
(4)、将过滤完的业务数据传入业务逻辑处理区域;
(5)、待业务逻辑处理完毕后会输出业务处理后数据,这数据会通过服务端出口再输出到用户的客户端上。
在业务线的概念内又提出了一个业务点的概念,所谓的业务点是按照传统大众都能接收的面向过程式的思维方式而提取出的,用户在执行业务的时候都会想好当前的业务操作第一步做什么第二步做什么,而这种一步一步构思一步一步实现就可以同比的看做一条线上按序排好的一个又一个的点,这些点在并行插拔模式中我们称为业务点。
业务点是每条业务线的必须组成,进一步的,业务点中开始点、分支点、处理器点、分支处理器点、并行点、合并点、结束点具体如下:
(1)、开始点:负责定义统一入口来保证不同结构的客户端输入数据转换成能够被业务线识别的数据结构标准;
(2)、分支点:负责根据上一个节点的输出数据并结合对应的判断标准来判断下一个业务点的走势;
(3)、处理器点:负责实际的业务处理,是执行数据的变换,涉及数据库操作、缓存操作、日志操作、邮件或支付第三方操作;
(4)、分支处理器点:结合处理器点和分支点的特性,是为了节省业务线上业务点的跳跃次数;
(5)、并行点: 负责分配业务流程中的需要同时执行的业务点,将上一个业务点的输出数据根据并行数据分配的规则来将该输出数据执行拷贝或重组操作,同时将这些操作后的数据转换成为下一批业务点的输入数据结构;
(6)、合并点: 负责针对在业务线上游出现了并行分流之后,需要重新将业务分支流程合并到主线上的操作;
(7)、结束点: 负责将上一个业务点的输出数据执行过滤操作,将其根据不同客户端的适应的数据结构。
进一步的,所述业务逻辑处理区域中涉及到业务线与业务点是如何一起搭配实现业务运转的的步骤如下:
(1)、业务线A中:A是应用中的某个业务操作名称的代名词,下方的A1、A2、A3、A4、A5、A6都是业务线中的业务步骤名称的代名词;
(2)、业务数据经由业务开始点A1去执行业务线数据结构标准的预处理统一;
(3)、到达处理器点A2之后会在业务点内执行一些数据转换操作,并见数据按照输出标准输出;
(4)、判断类型的业务点A3会将A2点的输出标准数据与本身节点的判断标准来决定跳转到步骤(4)还是步骤(5);
(5)、当A3的判断结果是将业务流程转向了处理器类型的业务点A4,会在这里执行业务数据的转换操作,转换完成后跳转到步骤(8);
(6)、当A3的判断结果是将业务流程转向至处理器类型的业务点A5, A5在做完内部的数据转换之后,将业务数据按照输出标准转换,并跳转至步骤(7);
(7)、A6紧接着A5点的流程执行,将业务数据执行内部转换,并将转换的业务数据按照输出标准转换,转换成功后跳转至步骤(8);
(8)、业务结束点负责将数据执行最后过滤,,并对外输出处理后的业务数据。
进一步的,所述业务逻辑处理区域中涉及到业务线与业务点是如何一起搭配实现业务运转的的步骤如下:
业务线B中: B是应用中的某个业务操作名称的代名词,下方的B1、B2、B3、B4、B5、B6、B7都是业务线中的业务步骤名称的代名词;
(1)、业务数据经由业务开始点B1,将业务数据结构标准的预处理统一,并跳转至步骤(2);
(2)、到达处理器点B2之后会在业务点内执行一些数据转换操作,并见数据按照输出标准 输出,并转至步骤(3);
(3)、判断类型的业务点B3会将B2点的输出数据执行拷贝,并将此业务数据同时发送至步骤(4)、(5)、(6)中的业务点;
(4)、在处理器点B4中执行业务数据的转换操作,转换完成后跳转到步骤(7);
(5)、在处理器点B5中执行业务数据的转换操作,转换完成后跳转到步骤(7);
(6)、在处理器点B6中执行业务数据的转换操作,转换完成后跳转到步骤(7);
(7)、合并类型的业务点B7负责将步骤(4),(5),(6)中的输出数据按照当前配置的数据合并规则去执行合并操作,合并成功之后跳转至步骤(8);
(8)、业务结束点负责将数据执行最后过滤,并对外输出处理后的业务数据。
本发明的有益效果:
本发明是一个专门为解决软件开发中出现的高度耦合、开发难度无法平衡、开发人员无法实现隔离无阻碍的并行化开发这些情况的开发模式,具备的技术优势如下:
1.开发难度降低
在并行插拔模型中提出了业务点概念,并且针对业务点我们设定了输入标准、输出标准、面向接口式的服务插件三个概念来极大程度的降低业务点的开发难度(见图6),每个业务点实际上可以对应为一位开发人员,通过将业务需求所需的数据入口和出口形成标准,可以让开发人员只需明白当前要编写的业务代码只要将入口数据如何变成成出口数据,很大程度的将业务需求的耗时了解环节减轻,同时针对这种数据变化所需的其他辅助操作(例如数据库操作、缓存操作、邮件发送、短信发送、支付等)形成接口化的服务插件,利用面向接口编程的思想,让开发人员只需通过服务总线去调用所需使用的服务插件的接口即可,无需关心该服务插件的实现细节,极大程度的将开发难度降低。 开发难度一降低,直接带来的是成本的减少和时间的节省。并且在此基础上,通过不断的积累,业务点内所需的服务插件可以慢慢形成丰富的插件资源库,在将来的开发中能够达到事半功倍的地步,效率也会递进式的提升。
提示:图6中的(1)是表示业务点A1的输出在流转到业务点A2的输入过程中,并行插拔模式的实现框架会将其做对应的转换和过滤操作,来实现A1与A2的无缝对接,
2.开发无限趋于并行化
在上述优势中提到的业务点会设定输入标准、输出标准和面向接口式服务插件的概念来实现开发难度的降低,其中输入标准和输出标准在并行插拔模式中如何能够保证当前业务点与业务点之间是隔离的 ,但当两个点在某些情况下连接在一起又是满足业务需求流转的。首先输入标准和输出标准在并行插拔模式下是一种键值对的数据结构, 此结构能对开发人员很友好的说明功能需求,保证了一个需求层级上的隔离, 而图6中的(1)环节是表示业务点A1的输出在流转到业务点A2的输入过程中,并行插拔模式的实现框架会将其做对应的转换和过滤操作,来实现A1与A2的无缝对接, 当(1)环节去除之后并不会影响A1或者A2的单独运转,保证了业务点一个代码运层级上的隔离。在发现业务点在需求开发过程中能够使需求和代码层级上出现隔离,便能保证开发人员在按照业务点开发的前提下实现一种类似面向接口的依托标准接口、互不干扰内部实现形式的业务开发。这样的话便能够保证相同时间内开发人员能够同时去做不同项目的不同业务,而不形成干扰。使其能够无限接近理想的并行化人员开发。
3.平缓应对频繁的需求变更
在并行插拔模式下按照业务模块、业务线、业务点的形式去实现传统需求与编程开发之间的过度, 同时通过在业务线上的业务点设定输入和输出标准来实现并行化开发,为此我们能够做到如果需求出现了变更,会出现如下几种情况的改动:
(1)修改某个功能
(2)删除某个功能
(3)增加某个功能
第(1)种情况下并行插拔模式会通过修改业务线上的某个业务点的条件,这个条件可以直接映射到输入和输出标准的更改,或者是直接替换掉待修改的业务点,只要保证新加入的业务点的输入和输出标准一致能够无缝对接的即可,同时测试的时候只需执行该业务点的单独测试即可;
第(2)种情况下并行插拔模式会通过删除业务线或删除业务线上的一个或多个业务点来实现变更,由于业务线与业务线之间是隔离的,所以不会产生任何的功能依赖问题; 删除业务点只需要将剩余业务点的输入和输出重新进行无缝对接配置,调整输入输出标准即可,完全不影响其他业务线以及当前业务线内的其他业务点,可以实现无依赖风险的功能退级;
第(3)种情况下并行插拔模式会通过新增业务线或在业务线上新增一个或多个业务点;新增业务线可以实现单独开发而不影响整个项目运作,新增业务点只要规定好给定当前待插入的业务点的输入标准和输出标准,同时将其与要插入位置的业务点的输入标准和输出标准通过并行插拔模式的实现框架来配置业务连接规则即可,完全不会影响原有的其他业务点功能,而且能够实现快速功能叠加;
综和上述情况,并行插拔模式能够以最小的变化最快的效率和更好的测试质量保证来脱离让传统模式头痛的需求变更的地狱,并且利用业务点可插拔特性来实现随时更换业务的方式,实现以最小成本换回最希望的变化;
4.大数据前提下自动化智能开发
并行插拔模式由于通过给业务点设定了标准之后,让开发人员在业务需求理解上花费的精力减少,同时利用面向接口式思维来一起达到降低软件开发难度,加快软件开发效率的特点,为此在不断的项目历练和累积之后,我们可以通过大数据分析出不同行业里面的业务模块、业务线、业务点的通性, 总结出业务点的输入和输出标准与行业之间的关联的通性, 为此我们便能够利用智能匹配的特性去实现无开发人员全程智能系统的业务点编码、业务点组装成业务线,业务线堆积成业务模块的智能软件开发。
附图说明
图1是本发明中业务模块、业务线、业务线的关系示意图;
图2是本发明中业务线在业务执行流程中概念体现的一个流程示意图;
图3是本发明中业务线与业务点搭配如何实现业务流程的细节演示示意图;
图4是本发明中所有类型业务点的示意图;
图5是本发明中业务线与业务点在实际业务流程的案例示意图;
图6是本发明中业务点设定输入标准、输出标准、服务插件的示意图。
具体实施方式
下面结合附图对本发明进行详细描述:
本发明的特点就是在传统的需求文档确认和实际编码开发的过渡段之间会再执行一步处理,该处理的步骤如下:
(a)通过将客户的需求执行拆分和细化,并将其转换成业务模块、业务线的形式表示。
(b)为每个模块内的每条业务线定制一个客户端可识别名称(用于实现交互定位)。
(c)利用传统过程式思维的划分业务线成一个一个的业务点形式,同时针对业务线上的每一个业务点提前设定好输入数据和输出数据的标准键值结构以及对应的键值内容。
(d)将业务模块、业务线、业务点之间的关系生成实际的配置文件,以此份配置作为开发人员的业务逻辑流程编写的依据。
上述步骤中所提及的业务模块、业务线、业务点的关系如图1所示:一个业务模块具备多条业务线,并且业务线是不相交的, 每条业务线上都包含着多个业务点执行组装。
业务模块,它的主要作用之一是为了衔接传统的需求划分中按模块划分的理念,能保证传统模式下的用户比较平缓衔接至并行插拔的开发模式。
在业务模块的基础上,我们提出了业务线的概念,这个线是有起点和终点的。业务线这个概念落实到具体实际应用中一个流程步骤如图2所示:
(1)用户执行一个服务端业务请求操作,例如在web页面上点击一个登录按钮操作;
(2)通过网络(http或tcp)传输该业务请求信息;
(3)服务端入口接收到并解析该业务请求信息,通过识别该请求的业务标识之后将客户端用户传递来的待处理的业务数据进行过滤;
(4)将过滤完的业务数据传入业务逻辑处理区域;
(5)业务逻辑处理区域的处理细节见图3所示;
(6)待业务逻辑处理完毕后会输出业务处理后数据,这数据会通过服务端出口再输出到用户的客户端上;
在业务线的概念内又提出了一个业务点的概念,所谓的业务点是按照传统大众都能接收的面向过程式的思维方式而提取出的,用户在执行业务的时候都会想好当前的业务操作第一步做什么第二步做什么,而这种一步一步构思一步一步实现就可以同比的看做一条线上按序排好的一个又一个的点,这些点在并行插拔模式中我们称为业务点。
业务点是每条业务线的必须组成,在并行插拔开发模式中它分为开始点、分支点、处理器点、分支处理器点、并行点、合并点、结束点(具体见图4):
(1)开始点:负责定义统一入口来保证不同结构的客户端输入数据转换成能够被业务线识别的数据结构标准。
(2)分支点:负责根据上一个节点的输出数据并结合对应的判断标准来判断下一个业务点的走势;
(3)处理器点:负责实际的业务处理,主要是执行数据的变换等,一般会涉及数据库操作、缓存操作、日志操作、邮件、支付等第三方操作;
(4)分支处理器点:结合处理器点和分支点的特性,主要是为了节省业务线上业务点的跳跃次数;
(5)并行点:负责分配业务流程中的需要同时执行的业务点,将上一个业务点的输出数据根据并行数据分配的规则来将该输出数据执行拷贝、重组等操作,同时将这些操作后的数据转换成为下一批业务点的输入数据结构;
(6)合并点:负责针对在业务线上游出现了并行分流之后,需要重新将业务分支流程合并到主线上的操作;
(7)结束点:负责将上一个业务点的输出数据执行过滤操作,将其根据不同客户端的适应的数据结构;
在实际业务中例如图5中,登录就是一条业务线,判断用户名是否存在、判断用户名密码是否匹配、匹配成功的登录日志记录、匹配不成功的结束都是一个一个的业务点。
在图2所示的业务线流程处理步骤(5)中涉及到业务线与业务点是如何一起搭配实现业务运转的, 正如图3所示的步骤:
业务线A中: (A是实际应用中的某个业务操作名称的代名词,下方的A1、A2、A3、A4、A5、A6都是实际业务线中的业务步骤名称的代名词)
(1)业务数据经由业务开始点A1去执行业务线数据结构标准的预处理统一;
(2)到达处理器点A2之后会在业务点内执行一些数据转换操作,并见数据按照输出标准 输出;
(3)判断类型的业务点A3会将A2点的输出标准数据与本身节点的判断标准来决定跳转到步骤(4)还是步骤(5);
(4)当A3的判断结果是将业务流程转向了处理器类型的业务点A4,会在这里执行业务数据的转换操作,转换完成后跳转到步骤(7);
(5)当A3的判断结果是将业务流程转向至处理器类型的业务点A5,A5在做完内部的数据转换之后,将业务数据按照输出标准转换,并跳转至步骤(6);
(6)A6紧接着A5点的流程执行,将业务数据执行内部转换,并将转换的业务数据按照输出标准转换,转换成功后跳转至步骤(7);
(7)业务结束点负责将数据执行最后过滤,,并对外输出处理后的业务数据;
业务线B中: (B是实际应用中的某个业务操作名称的代名词,下方的B1、B2、B3、B4、B5、B6、B7都是实际业务线中的业务步骤名称的代名词)
(1)业务数据经由业务开始点B1,将业务数据结构标准的预处理统一,并跳转至步骤(2);
(2)到达处理器点B2之后会在业务点内执行一些数据转换操作,并见数据按照输出标准 输出,并转至步骤(3);
(3)判断类型的业务点B3会将B2点的输出数据执行拷贝,并将此业务数据同时发送至步骤(4)、(5)、(6)中的业务点;
(4)在处理器点B4中执行业务数据的转换操作,转换完成后跳转到步骤(7);
(5)在处理器点B5中执行业务数据的转换操作,转换完成后跳转到步骤(7);
(6)在处理器点B6中执行业务数据的转换操作,转换完成后跳转到步骤(7);
(7)合并类型的业务点B7负责将步骤(4),(5),(6)中的输出数据按照当前配置的数据合并规则去执行合并操作,合并成功之后跳转至步骤(8);
(8)业务结束点负责将数据执行最后过滤,并对外输出处理后的业务数据。
本发明是一个专门为解决软件开发中出现的高度耦合、开发难度无法平衡、开发人员无法实现隔离无阻碍的并行化开发这些情况的开发模式,具备的技术优势如下:
1、开发难度降低
在并行插拔模型中提出了业务点概念,并且针对业务点我们设定了输入标准、输出标准、面向接口式的服务插件三个概念来极大程度的降低业务点的开发难度(见图6),每个业务点实际上可以对应为一位开发人员,通过将业务需求所需的数据入口和出口形成标准,可以让开发人员只需明白当前要编写的业务代码只要将入口数据如何变成成出口数据,很大程度的将业务需求的耗时了解环节减轻,同时针对这种数据变化所需的其他辅助操作(例如数据库操作、缓存操作、邮件发送、短信发送、支付等)形成接口化的服务插件,利用面向接口编程的思想,让开发人员只需通过服务总线去调用所需使用的服务插件的接口即可,无需关心该服务插件的实现细节,极大程度的将开发难度降低。 开发难度一降低,直接带来的是成本的减少和时间的节省。并且在此基础上,通过不断的积累,业务点内所需的服务插件可以慢慢形成丰富的插件资源库,在将来的开发中能够达到事半功倍的地步,效率也会递进式的提升。
提示:图6中的(1)是表示业务点A1的输出在流转到业务点A2的输入过程中,并行插拔模式的实现框架会将其做对应的转换和过滤操作,来实现A1与A2的无缝对接,
2、开发无限趋于并行化
在上述优势中提到的业务点会设定输入标准、输出标准和面向接口式服务插件的概念来实现开发难度的降低,其中输入标准和输出标准在并行插拔模式中如何能够保证当前业务点与业务点之间是隔离的 ,但当两个点在某些情况下连接在一起又是满足业务需求流转的。首先输入标准和输出标准在并行插拔模式下是一种键值对的数据结构, 此结构能对开发人员很友好的说明功能需求,保证了一个需求层级上的隔离, 而图6中的(1)环节是表示业务点A1的输出在流转到业务点A2的输入过程中,并行插拔模式的实现框架会将其做对应的转换和过滤操作,来实现A1与A2的无缝对接, 当(1)环节去除之后并不会影响A1或者A2的单独运转,保证了业务点一个代码运层级上的隔离。在发现业务点在需求开发过程中能够使需求和代码层级上出现隔离,便能保证开发人员在按照业务点开发的前提下实现一种类似面向接口的依托标准接口、互不干扰内部实现形式的业务开发。这样的话便能够保证相同时间内开发人员能够同时去做不同项目的不同业务,而不形成干扰。使其能够无限接近理想的并行化人员开发。
3、平缓应对频繁的需求变更。
在并行插拔模式下按照业务模块、业务线、业务点的形式去实现传统需求与编程开发之间的过度, 同时通过在业务线上的业务点设定输入和输出标准来实现并行化开发,为此我们能够做到如果需求出现了变更,会出现如下几种情况的改动:
(4)修改某个功能
(5)删除某个功能
(6)增加某个功能
第(1)种情况下并行插拔模式会通过修改业务线上的某个业务点的条件,这个条件可以直接映射到输入和输出标准的更改,或者是直接替换掉待修改的业务点,只要保证新加入的业务点的输入和输出标准一致能够无缝对接的即可,同时测试的时候只需执行该业务点的单独测试即可;
第(2)种情况下并行插拔模式会通过删除业务线或删除业务线上的一个或多个业务点来实现变更,由于业务线与业务线之间是隔离的,所以不会产生任何的功能依赖问题; 删除业务点只需要将剩余业务点的输入和输出重新进行无缝对接配置,调整输入输出标准即可,完全不影响其他业务线以及当前业务线内的其他业务点,可以实现无依赖风险的功能退级;
第(3)种情况下并行插拔模式会通过新增业务线或在业务线上新增一个或多个业务点;新增业务线可以实现单独开发而不影响整个项目运作,新增业务点只要规定好给定当前待插入的业务点的输入标准和输出标准,同时将其与要插入位置的业务点的输入标准和输出标准通过并行插拔模式的实现框架来配置业务连接规则即可,完全不会影响原有的其他业务点功能,而且能够实现快速功能叠加;
综和上述情况,并行插拔模式能够以最小的变化最快的效率和更好的测试质量保证来脱离让传统模式头痛的需求变更的地狱,并且利用业务点可插拔特性来实现随时更换业务的方式,实现以最小成本换回最希望的变化;
4、大数据前提下自动化智能开发
并行插拔模式由于通过给业务点设定了标准之后,让开发人员在业务需求理解上花费的精力减少,同时利用面向接口式思维来一起达到降低软件开发难度,加快软件开发效率的特点,为此在不断的项目历练和累积之后,我们可以通过大数据分析出不同行业里面的业务模块、业务线、业务点的通性, 总结出业务点的输入和输出标准与行业之间的关联的通性, 为此我们便能够利用智能匹配的特性去实现无开发人员全程智能系统的业务点编码、业务点组装成业务线,业务线堆积成业务模块的智能软件开发。