首页 > 文章中心 > 正文

论述AFC应用软件的技术要求

论述AFC应用软件的技术要求

AFC数据传输软件是支持实时和准实时AFC数据传输的相关软件或中间件。AFC应用软件是指提供自动售检票,且用于相关票务和运乘数据处理和分析的相关应用软件,是AFC软件系统中与核心业务关系最为密切的部分。其他辅助软件是指保障AFC系统中软硬件设备正常工作的其他辅助性软件,如设备驱动、监控和警戒、网络和信息安全等相关软件。以上软件体系中,操作系统、数据库管理、网络管理和一些辅助软件一般直接采购相关的软件产品或使用成熟的开源软件以满足相关技术要求。AFC数据传输软件由于经过几代的开发,已经形成稳定的中间件软件,演化地相对成熟。AFC应用软件往往需要根据新线路的具体情况进行设计,并且涉及和已有线路之间的数据交换,因此是软件开发任务最为繁重的部分,也是容易产生软件质量问题的薄弱环节,是本文讨论的重点。

1AFC应用软件实施过程管理的必要性

软件过程管理是提高软件生产率和保证软件质量的一个重要方法。软件过程是为开发高质量软件所需要完成的任务框架。研究软件过程本质上是为了突出关键过程以改善软件的质量[2]。在地铁各系统中,AFC系统往往直接面对乘客服务,是体现地铁服务质量的重要窗口。为了保证AFC系统在地铁线网开通时能够为乘客提供安全、便捷和高效的服务,需要在设备样机生产到系统开通运营的各阶段对AFC系统设备的硬件功能、软件功能、技术性能、系统稳定性等进行测试,以保证AFC系统能够安全、稳定、高效的运行。为此,需要对AFC系统的应用软件实施过程管理,以保障提交运行的软件具有较高质量。

2AFC应用软件要求及过程管理措施

2.1软件成熟度模型

软件成熟度模型是软件过程管理的模型之一。软件能力成熟度模型是美国大学CamegieMellonUniversity软件工程研究所提出的一套系统、规范的对软件生产过程进行管理的模型,是指一个软件过程被明确定义、管理、度量和控制的有效程度。成熟度等级用来描述某一成熟度等级上的组织特征,每一等级都为下一等级奠定基础,过程的潜力只有在一定的基础之上才能充分发挥。CMM(CapabilityMaturityModel)将软件过程改进的优化步骤组织成5个成熟等级:初始级、可重复级、可定义级、已管理级、优化级[3]。CMM体现出对软件开发和维护进行过程监控,使其更加科学化、标准化。CMM日益在业界被广泛接受,成为软件开发管理的工业标准。企业实施CMM并评估可以指导软件组织提高软件开发管理能力,帮助软件企业识别开发和维护软件的有效过程和关键实践,降低软件承包商和采购者的风险,增加软件企业的市场竞争能力。CMM的有效性已为大量实践所证实,并已成为对一个软件企业的生产能力和产品质量进行衡量的事实标准。建立这样一个软件过程成熟度模型来对软件过程进行一个客观、公正的评价,以促进软件开发组织改进软件过程。

2.2AFC应用软件技术要求

AFC应用软件的开发应满足以下指标要求。模块化:应用软件的设计应采用如面向对象的设计方法,各层次的软件应按实现功能划分子模块,各模块应以插/控件的形式存在,降低由于强耦合导致的升级和再开发的困难。可扩展性:随着地铁运营发展的需要,当需要增加新的功能、新的设备、新的部件、新的车站时,新开发的应用模块可方便的加入到应用软件系统中,而不影响应用软件的正常运行。新模块的开发只需要知道与其相关的功能模块的外部接口即可实现。可维护性:包括软件配置管理、系统安全管理、软件开发接口、调试与测试、数据库性能和交易处理或网络性能监测功能。可移植性:提供一套标准的车站系统应用软件和车站各售检票设备应用软件,当系统安装或将来增加车站计算机系统或车站售检票设备等时,应能使用提供的同一套应用软件进行安装,设置相应的参数即可完成软件的移植。当硬件或软件平台升级时,应保证应用软件可快速移植。可重用性:应用软件应能共用相同功能的子程序,如安全管理模块和数据传输模块等。参数化:应用软件应尽量使用参数化设置完成功能需求及性能要求。实时性:应用软件应满足本系统实时监控和在线查询的要求。当程序因不明干扰而引起错误或死锁时,可以自动恢复。友好性:应用软件应为多用户系统,操作界面应采用图形界面方式、多文档窗口模式,具有较好的用户体验。

2.3AFC应用软件过程管理的步骤

AFC应用软件过程管理贯彻于软件开发和管理的整个生命周期,为保证软件的可靠性,应在软件生命周期的各个阶段尽可能地减少缺陷[5],具体内容如下。1)需求分析阶段:全面理解用户要求,与用户充分交换意见,制定详细、完整的用户需求书。AFC系统的最终使用者是地铁乘客。因此要在软件需求分析之初,就充分考虑到乘客在系统使用上的各项需求。AFC系统的操作者是运营公司相关部门人员。他们对于系统的日常操作、维护维修,有着各方面的需求和考虑。因而,在软件需求分析阶段,必须及时沟通,充分调研,全面了解各方面的需求。这方面工作决不能等到软件雏形出来后再去征询各方面意见,要确保用户需求的稳定、明确。2)设计阶段:特别要考虑,特殊情况及错误发生时的处理方案。要将乘客的各种使用习惯和非正常操作都纳入到软件设计者的设计考虑范围。3)编码阶段:要考虑到编码对于软件功能的覆盖,做到各大功能范围内的各项子功能全面覆盖。4)测试阶段:编制科学、合理、完整的测试用例。模块测试、系统测试,按顺序进行,要确认整个系统的各个功能均能完全实现,测试阶段是保障软件可靠性的重要阶段,将在本文第三部分详细介绍。5)维护阶段:在软件交付使用后对遗留问题或软件缺陷进行整改纠偏,这一阶段在AFC系统中非常重要。一般来说,地铁运营部门在使用中会提出一些修改意见或新需求。由于是对已正式上线运营系统的修改,必须要严格进行需求评审分析,确认对原程序的影响,待软件修改后必须反复、充分地进行系统测试,最终方能交付使用,正式上线。6)每个阶段均实行面向用户参与的原型演化。在每个阶段的后期,快速建立反映该阶段成果的原型系统,通过原型系统与用户交互,及时得到反馈信息,验证该阶段的成果并及时纠正错误,这一技术被称为“原型演化”。而不是等系统全部交付时才与用户交互。另外,每一个阶段都应严格提交与软件的每一阶段相匹配的全面文档资料,从而保证软件配置文件的完整性。

2.4软件过程管理工具的应用

为了提升软件的研制能力成熟度和企业的整体竞争力,有必要在软件过程管理上引入专业管理软件。南京地铁在新线AFC系统软件项目管理中,将引入软件过程管理工具,从项目启动、项目计划、项目执行与跟踪,到项目收尾,进行项目管理全生命周期的管理。

3AFC系统的软件测试

软件测试是减少软件错误、提高软件可靠性的有效方法和重要保证,在软件生命周期中有相当重要的地位。

3.1软件测试主要方法

软件测试从测试方法上可分为手动测试和自动测试。从源代码的角度可分为单元测试和功能测试。这里主要侧重于软件性能质量的测试方法[4]。功能测试:验证测试软件功能能否正常按照它的设计工作,验证软件的期望行为是否符合原设计。可接受性测试:是在把测试的版本交付测试部门大范围测试以前进行的对最基本功能的简单测试。用户界面测试:分析软件用户界面的设计是否合乎用户期望或要求。“探索或开放”型的测试:这种测试是测试人员在理解该软件功能的基础上运用灵活多样的想象力和创造力去模拟用户的需求来使用该软件的多种功能。边界条件测试:是环绕边界值的测试,通常意味着测试软件各功能是否能正确处理最大值,最小值或所设计软件能够处理最长的字符串等。性能测试:验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。回归测试:根据修复好的缺陷再重新进行的测试。目的在于验证以前出现过但已经修复好的缺陷不再重新出现。强力测试:它通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。其他还包括集成与兼容性测试及装配安装配置测试等。

3.2AFC系统软件测试的步骤

随着软件功能的强大,软件的复杂度也越来越高,这就对软件的可靠性提出更高要求,同时也对软件测试增加了难度。AFC软件需经历几大阶段的测试步骤才能最终通过软件验收。1)单元测试:对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。2)集成测试:各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关软件体系结构的有关问题。3)系统测试:将已确定的软件与其他系统元素结合在一起进行测试,以验证系统软件、硬件功能完全达到功能要求。其中还分为:单系统集成测试和联合系统集成测试。4)联调实验:除验证本系统内所有设备均能满足合同要求并协调运转,同时还验证与其他相关系统的接口功能。相对于地铁其他系统而言,考虑到AFC系统的特殊性,AFC软件测试要重点考虑以下问题。1)系统使用者的特殊性。AFC系统的使用者是年龄、习惯都不确定的地铁乘客。因而,软件测试时应充分考虑到使用者使用习惯的不确定性,甚至考虑个别乘客的违规操作等对系统的影响。2)大规模压力测试。AFC系统软件的稳定性如何,其最终检验方式是地铁开通后乘客的大客流使用。因此,在开通运营之前,要对AFC系统进行大规模的压力模拟测试,以检验压力测试下系统的各方面性能是否达到要求。只有经过反复多次的压力测试,系统软件的某些问题才会暴露出来,然后进行有针对性纠正,以使系统软件更加稳固。

3.3AFC系统软件项目管理中引入第三方检测的必要性

目前,软件第三方测试在国内刚刚起步,但随着信息化程度的不断提高,以及人们对软件测试重视程度增强,软件第三方测试正逐步被软件企业和软件最终用户所认可。第三方检测是促进软件发展、保证软件质量的重要技术支持。其优点主要表现在4个方面:客观性、专业性、权威性、独立性。正是意识到第三方测试在软件质量保证方面的重要性和体现出的优势,目前南京地铁已将第三方测试列入新线的合同范围,强制要求承包商开展第三方测试。这也是对AFC系统软件质量的一个保障措施,通过第三方的审查和监督来确保项目质量。值得一提的是,建议第三方测试介入到软件开发阶段,而不仅仅是软件交付前的测试。我们期待在这一期的项目建设中,看到第三方测试在软件质量保证上的成效。

4实施AFC软件过程管理主要工作措施

综上所述,AFC系统的软件过程管理应着重做好以下几点。1)实施基于CMM的软件企业过程管理制度。将CMM认证的级别作为对承包商在软件能力上的要求之一,列入招投标的资质要求。2)开发针对AFC系统应用软件的标准化测试平台,标准化和丰富测试用例,制定规范全面的测试流程。3)开展基于第三方检测的过程管理,通过合同规定作为项目验收的必要满足条件,以保证软件交付质量。4)加强地铁监理单位对AFC系统软件的监理职能。以往的地铁监理侧重于对土建或设备硬件的监理,随着网络化运营后,AFC系统软件重要性日益突出,应健全监理单位在软件方面的组织结构,建立软件项目监理相关工作制度,发挥地铁监理在软件过程管理方面的监督管理职能。只有做到上述几点,才能有效地抓好软件开发的过程管理,最大限度地降低甚至消除AFC系统的潜在缺陷,从而提升软件产品质量。

5结论

鉴于当前AFC应用软件项目管理存在的不足,探讨了AFC系统软件技术要求和过程管理步骤,介绍了实施软件测试的相关方法和步骤,明确了引入第三方测试的必要性,给出了AFC软件过程管理的主要工作措施,为AFC系统软件项目的管理提供了参考。在未来工作中,将进一步对本文提出的建立标准化测试平台,以及开展面向提高软件交付质量的相关管理制度和措施开展研究。

作者:吴娟徐钟全毛建单位:南京地铁建设有限责任公司北京全路通信信号研究设计院有限公司