系统分析师论文范文-论软件过程的改进
【摘要】
2010年6月我参加了**人民银行E户通电子转账系统的建设项目,该系统是一个银行间的电子转账业务支撑平台,实行7×24小时连续运行,支持银行间的跨行转账业务、定期借、贷记业务(如代收水电费、代发工资、柜面缴费业务等)。该项目由我们科技处自主开发,我担任项目开发工程组组长。我们在项目的开发建设中,汲取原先项目建设过程中的一些经验教训,参考CMM要求,对一些重点环节采取切实有效的改进措施,如进行CMM基础培训,提高工程组的统一认识,建立统一的开发规范、采用标准的软件工具、加强测试管理和配置管理等,使软件的质量得到了提高、建设周期得到了保证,项目建设取得了成功。但是,CMM是一个持续改进的过程,我们在该项目中,还存在着人员习惯与CMM改进要求不符、缺乏测试工具等不足,有待今后进一步改进。 【正文】
软件过程的改进是一个相对长期的过程,需要较长时间的积累和实践。以我本人的经历而言,原先存在手工作坊式的项目模式-接到项目后直接进入“多快好省”的开发阶段,到按照软件工程的要求先进行结构化的分析和设计,再到运用CMM相关理念指导项目实践是一个渐进的过程,也是软件过程能力逐步提高的过程。 一、项目简介 2010年6月,我参加了**人民银行E户通电子转账系统的建设项目,该项目是我们单位的年度重点项目,需要建设一个银行间的电子转账业务支撑平台,实行7×24小时连续运行,满足银行间的跨行转账业务、定期借、贷记业务(如代收水电费、代发工资、柜面缴费业务等)需求,并支持各商业银行在此基础上建设新的中间业务。该项目时间紧,要求在年底前完成测试,明年初进入试运行。当时,该项目是采取外包方式还是自行开发有待领导最终决策。我与几个技术骨干经过仔细商议,认为经过若干项目积累。我们应该能够自行完成该项目,并提交了详细的项目计划书。领导经过慎重考虑,决定由我们科技处独立开发,我担任项目开发工程实施组负责人,组建了12人的项目建设团队。 该项目有几个重点的环节:一是我们的系统处于核心位置,需要设计出一套符合SWIFT要求的报文接口,与各家联网银行进行数据交换;二是要实现与不同银行间的异构环境相连;三是要保证交易数据的可靠性和安全性。经过慎重考虑,我们以中国现代化支付系统报文接口为蓝本,设计了接口标准;同时,采用C/S体系结构,
在各银行端放置前置机,人行端放置中心服务器。前置机与银行内部的综合业务处理系统连接,负责完成交易格式的转换,并与服务器通讯。前置机和服务器端采用BEA TUXEDO 交易中间件,保证交易的完整性和可靠性。 二、应用CMM思想进行软件过程管理 接到这个任务后,项目组进行了认真的讨论。由于我们原先的开发缺乏统一规范,基本上是处于一种手工作坊式的开发模式,开发出的软件产品带有很深的个人模式,需求提炼及分析不足,软件更改频繁,开发文档零散,缺乏统一规范,给后期的维护和更新带来了很大的不便。如果这一次不加以改进,很可能会走老路,辜负领导的信任,良好的机会。因此,我们经过项目分析和论证,决定在开发中引入CMM思想,用它来指导我们项目组的开发活动。作为工程组的负责人,我花了大力气学习CMM思想,并在项目组进行CMM基础培训,提高工程组的统一认识,建立统一的开发规范、采用标准的软件工具、加强测试管理和配置管理等方面加以实践。 1、统一认识,建立规范 开发团队的水平直接决定着系统建设的水平,因此开发人员的认识水平对软件过程改进起着非常关键的作用。在项目启动后,我们首先聘请了本地一个知名的IT企业专家,给我们培训基础的CMM知识。该企业目前已经通过CMM3,并正在向更高的级别努力。通过该企业专家结合实际的培训,使项目组成员对CMM有了一个初步的了解,对在项目管理中采用CMM做法表示理解和支持,表示要共同遵守和执行各类规范。 在此基础上,项目组根据这次项目建设的实际情况,确定了各主要过程中必须要遵守的统一规范,主要包括需求分析阶段、编码阶段和测试阶段各类规范和流程。我们详细制定了相关文档使用方法和规则,制作了统一的模版,既可以使文档便于书写、形式一致,又尽可能简洁明了,节省精力。 进一步提高软件过程改进的程度。考虑到在原先的软件开发,总是在软件版本控制上出现这样那样的问题,因此,在这次软件开发中,我们选择了开源SVN 作为软件配置管理工具。之所以选择它,主要因为其简单易用、功能强大,跨平台,支持并发版本控制,而且免费。 为了保证项目的按期有效进行,我们充分使用Microsoft Project进行项目管理,以求得工期、资源、成本的优化,并通过各种信息反馈,对开发过程进行有效的监督、控制和调整,能够保证按照预定目标的实现。 2、强化需求管理 在原先我们经历的项目建设中,需求管理是一个头痛的问题。一方面业务部门作为需求提出方,在提交的需求书中没有充分地表达出本意,且变化频繁;另一方面开发人员对业务需求的了解也不精深,写出的需求分析业务部门也未认真确认,就盲目开发,导致软件变动频繁,工期一拖再拖。在这次项目建设中,我们强化了需求管理,并主要采取以下措施:一是请业务部门负责人(营业部副主任)担任工程组副组长,并明确责任,主要负责需求的按期提交和确认。在整个项目开发阶段,我们安排了需求的分析1个多月的需求确认和分析时间,该负责
人也非常负责,按期完成了相关工作,确保了工程的按期进行;二是严格了需求变更的程序,需求分析须符合统一制定的规范要求并经工程组正副组长确认后才能进入下一阶段。该措施的实行减少了一些非必须的需求变更。三是实行需求封包机制,需求一旦封包就不能变动,今后改进版本时再考虑新需求;四是考虑到在一般情况下,包括业务人员在内,对业务需求的认识也是一个逐步深入的过程,一味要求需求不能变化也不切实际。为此,我们在最容易引起需求变化的报文接口部分进行冗余设计,增加了冗余字段设计。今后一旦需求需要变化,我们实行起来也容易。实施了以上措施后,项目的需求管理明显加强,需求分析质量显著提高,需求分析文档质量也同步提高。 3、加强规范执行,严格配置管理 在项目实施中,我们尽可能严格执行已经制定的各类规范。 我们切实加强了文档工作。在文档中,我们尤其强调了需求分析、详细设计、业务流程和测试方案的书写,要求务必详尽。项目组人员多有抱怨,认为繁琐,速度慢。但是事实证明,但是文档对保证项目的质量和工期起到了非常关键的作用。一方面是使我们能够更加充分而准确的理解和掌握需求,能够朝着正确的方向去实现需求,另一方面,高质量的文档能够起到很好的培训作用。在项目建设后期,我们工程组的骨干人员因某种原因离开了项目组,但是正是因为有充分而详细的文档,继任者通过阅读文档较快进入角色,保证了项目的按期进行。 我们建立了配置管理。在原先手工作坊模式的开发中,我们对软件过程的配置管理不是很重视,软件的版本控制不严格,出现过多人无秩序地修改同一软件的现象,导致软件版本众多,影响了软件开发的质量。在这次开发中,客观上软件规模较大,另一方面我们也要提升软件过程水平和能力,尽可能达到软件的共享与重用,因此决定采用工具软件加强软件配置管理,建立基本的软件配置管理机制,便于完成统一测试、组装产品等工作。经过比较,我们选择了SVN(SUBVERSION)软件。我们将程序的各类接口规范和程序员开发出的各类代码都放置于SVN的服务器上,并为每一位开发人员分配了相应的用户,同时要求,每位成员单元工作成果都要提交到服务器,测试阶段的各项代码都必须是从服务器中下载的。该软件的使用明显加强了我们在软件开发中的过程管理,该软件忠实记录了软件开发的各类过程,基本杜绝了版本引起的质量问题,而且,在很大程度上提高了软件开发的效率。 4、加强测试 我们在这个项目中尤其加强了测试工作。业务负责人亲自组织了测试团队。为了加强测试的效果,测试团队中既有客户方代表,又有其他项目组的骨干人员,而开发人员都没有参加到这个测试团队中来。测试团队从需求分析结束后就开始设计测试用例,由于项目前期的文档质量较高,测试团队很快设计了了大量的测试用例。我们在开发中,尽可能缩短中间版本的提供时间。我们基本上5天左右就会提供一个版本进行测试,并根据测试情况迅速进行修改。在测试中,发现了很多程序开发中的
BUG。但是,我们很快也发现,尽管如此,提交给用户的软件还是有测试中未发现的BUG。这说明,对于有一定规模的软件,仅靠传统人工进行测试是很难做到完备性要求的。 在测试中,实环境的测试给我们留下了深刻的印象。根据系统建设计划,我们在项目建设后期,组织了全市18家银行、约500个银行网点的联调测试,同时进行了压力测试。该次测试对我们的系统建设工作帮助非常大,发现了通存通兑业务流程设计的不合理之处:我们原先在设计交易时,流程时是银行受理客户业务后,先在银行综合业务处理系统记账,然后再通过前置机发到人行业务处理中心登记。日终时以人行业务处理中心的交易流水明细进行资金清算。结果在测试中我们发现,在网络繁忙或数据库繁忙,人行业务处理中心很可能会发生超时,业务处理不认可。银行就必须进行调账,很容易引发客户的投诉。因此,我们后来将流程进行了调整,先记人行服务流水,成功后再记银行综合业务系统,这样可以有效避免客户投诉,提高银行服务质量,效果很好。 三、体会和不足 经过近一年左右的工作,我们完成了项目的开发工作,软件投入使用后,运行稳定,银行评价良好。由于该软件在开发过程中引入了CMM管理的思想,用它来指导一些主要过程的开发,并且较系统的使用了相关CASE工具,较好地解决了我们处原来开发中存在的一些问题,而且软件开发中的可控性和可视明显加强,软件的质量得到了保证,领导很满意,我们部门的地位也得到了提升,项目组的开发管理水平也得到了很大提高。 然而,由于是初次使用CMM指导软件开发,我们还存在以下不足:一是开发人员观念上还有待进一步改进。尽管我们利用SVN进行软件版本管理,但是个别人员还是利用笔记本上存储的程序副本进行开发,而不是从服务器上下载相关的程序;二是我们感觉测试的环节还需要继续改进,最好是机器测试与手工测试相结合,利用相应的测试工具进行机器自动测试,以增强测试的全面性。为此,我们曾经在网络上下载了VISUAL UNIT试用,但是感觉不太适用,目前还在继续寻找合适的测试软件。 经过这个项目的实践,我们也深切感受到,软件过程改进是一个长期的过程,它需要我们从观念、管理、手段和工具方面都要有扎实的准备,需要我们继续努力。
因篇幅问题不能全部显示,请点此查看更多更全内容