软件开发模型的选取和应用

2017-10-17 17:01林萍
软件和集成电路 2017年9期
关键词:收单项目组银行卡

林萍

由于项目组都开发过国内的银行卡这些功能,所以对银行卡一般的业务比较熟练,但是外卡第一次接触,涉及外国如Master等组织和中国银联的对接。

随着全球经济一体化,很多企业需要将自己的业务发展为国际业务,银行更是不能例外,需要满足对内对外的所有银行业务,某商业银行因业务发展需要,提出建设外卡收单项目,要求在不影响现在银行系统业务的情况下,结合原有框架设计和开发此项目。

外卡即国外储蓄卡或者信用卡(以下简称外卡)到国内消费的项目,要求在不影响现有银行业务的前提下,凡外卡上有美国运通(America express)、万事达(Master)、日本(JCB)标志的卡,均可在境内ATM机上查询、取现,在境内POS机上消费和在境内柜台的操作功能,项目需要另外配备专门的外卡服务器,接入到原来的大型机上,外卡服务器称作外卡前置机,主要采用Unix操作系统和Oracle数据库,负责将大型机发送过来的联机交易信息、清算信息转换为国际组织规定的格式,向国际组织的系统传送,并接收国际组织返回的相关信息,转换成综合业务系统规定的格式,向综合业务系统返回信息的前置处理系统。项目还需要配备管理监控人员的Web监管系统,以备随时检查外卡业务的运行情况。

由于项目组都开发过国内的银行卡这些功能,所以对银行卡一般的业务比较熟练,但是外卡第一次接触,涉及外国如Master等组织和中国银联的对接,分润等业务,项目组首先采用了原型模式获取相关功能:ATM查询、取现、冲正,pose机消费、冲正,pose机消费、消费取消、消费取消、冲正,以及pose预授权、预授权取消、预授权未知、预授权撤销、预授权未知、预授权确认和柜面取款、柜面取消提取现金等功能。了解了系统的大致要求后,需要选取相对较好的开发模型来完成此项目的开发。

多种模型的比较

软件开发模型比较经典的有瀑布模型、螺旋模型、V模型、快速应用开发、敏捷开发等,瀑布模型是最早的也是理论比较成熟的模型,要求分六个阶段完成:软件计划、需求分析、软件设计、程序编码、软件测试和运行维护。虽然我们的系统功能需求比较明确,但是后期还需要应对很多需求变化,显然选取瀑布模型不太适合,同时项目组对外卡的了解还不太深入,很难做好详细无变化的需求工作,因此项目组一直认为瀑布模型不太适合本次开发。

同理,螺旋模型是瀑布模型的一个演化,不同的是它增加了一个风险管理,由一次次的迭代来完成最终的项目,由于螺旋模型在启动时要求每次制定计划、风险分析、实施工程和客户评估四个方面的工作,因此耗时比较长,迭代次数太多,会让客户产生烦躁。V模型在瀑布模型的每个阶段的基础上,都增加了测试,如需求阶段增加了验收测试,设计阶段增加了概要测试,从而提高了软件的质量,V模型也是需要前期将需求工作做得很完美,后期不能太多改动,因此也不适合本项目。最后,项目组根据本项目特点选择了快速开发模型和敏捷开发相结合的方法。

敏捷方法选取

根据本项目的特点,通过分析功能的紧迫性,可以规划分两期迭代开发,一期实现ATM和POS机的收单处理,二期完成柜面机的收单处理,两期功能都涉及外卡前置机的软件开发、Web服务器的开发和监控客户端的开发工作,由于这些开发工作实现先后顺序,并要求尽快实现POS的收單处理,所以我们选择了敏捷开发模型,小版本的增量发布特别适合本项目,敏捷开发强调的是快速而敏锐的反应变化,小版本的增量发布,少而且精简的文档、短平快的会议等,一切都以快速为中心,其中的结对编程看似浪费人力,其实不然,结对编程可以很好地结合思想,避免出错,而且一人编写另一个人一直在审查和代码查询,会避免很多项目风险,还为开发组提供了很好的人力资源储备。

另外,银行业务必须具有很高的可靠性和可用性,程序代码必须保证错误极少,至少在数字运算方面必须零错误,基于以上考虑,项目组一直认为敏捷开发模型很适合外卡收单项目,而且在中途确实也遇到了人员调整方面的问题,由于采用结对编程,新增的人员也被安排在熟练的成员中很快熟悉了项目,从而使项目开发缩短了时间并保证了质量。

另外,根据功能的使用等级来决定迭代的划分,某些功能需要尽快投入的使用,比如POS消费就是必须第一步要实现的功能,因为外籍人员到境内主要是出差,需要住宿等,需要使用POS消费功能,因此这个功能必须第一个开发出来,所以使用敏捷的迭代开发也是优势之一,POS消费核心业务功能先开发先使用,后续功能逐渐迭代增加,达到快速应用的目的。

并且先开发的功能会得到后续开发的功能的多次测试,会进一步提高核心功能的准确性和可靠性。敏捷开发专注于功能的实现,很少再去操心繁琐的文档建设,也很少再去召开大规模的会议,这些都为快速开发出项目做了很好的铺垫工作。

快速应用开发与敏捷开发相结合

由于之前项目组也做过很多国内银行卡项目,所以积累了一些构建,有些构建不需要做修改就可以使用,比如分润功能做好后,产生账单等业务都可以利用以前所构建来完成,既保证了安全性又缩短了开发时间。某些业务只需要做很小的改动就可以达到新的功能,比如有的构建是专门针对国内银行卡的功能,现在只需简单的修改为适应外卡就可以立即使用。由于这些经验的积累已得到使用,因此为整个项目的可靠性和性能提供了有力的保证。

Web监控的开发,也是在原有的国内监控系统上增加外卡的监控功能,因此利用原有的成熟监控构建进行快速接口修改、安装和测试,功能也很快完成并投入使用。没有现成的构建可使用的时候,我们采用敏捷开发模型来快速开发构建。

由于选取开发模型得当,并且采取了有效措施来完善其中某些模型的不足,第一版本在半年左右的时间投入使用,外卡收单系统最后按计划顺利投产,不但保证了系统的可用性、可靠性,也取得了良好的社会效益和经济效益,而且我们的开发模型也得到了同行的高度认可和赞同,为后续的系统开发打下了良好的基础。endprint

猜你喜欢
收单项目组银行卡
The Sound of Tennis 网球之声
银行机构商户收单业务面临的主要风险简析
谁划走了银行卡里的款
统计学理论教学与实践相结合道路探索
计算机应用基础教学的项目化设计
支付机构银行卡收单业务违规行为与治理